502 网关错误 nginx 连接被对端重置

502 网关错误 nginx 连接被对端重置

我在某些 GET 请求上遇到由于 502 错误网关错误而导致的超时。

我尝试将这些行添加到我的 nginx 站点配置文件中:

server {
    client_max_body_size 500M;
    client_header_timeout 3000;
    client_body_timeout 3000;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_read_timeout 3000;
        fastcgi_send_timeout 3000;
        fastcgi_connect_timeout 3000;
        fastcgi_buffers 128 256k;
        fastcgi_buffer_size 256k;
    }
}

我还尝试通过以下方式调整缓冲区大小:

fastcgi_buffers 256 512k;
fastcgi_buffer_size 512k;

fastcgi_buffers 64 128k;
fastcgi_buffer_size 128k;

fastcgi_buffers 32 64k;
fastcgi_buffer_size 64k;

我还尝试将 PHP-FPM 配置值更改为这些:

max_execution_time = 3000
max_input_time = -1
memory_limit = 2048M
post_max_size = 500M
upload_max_filesize = 500M
opcache.memory_consumption = 1024

我也尝试禁用 OPCache。

到目前为止,这些都无法缓解 502 错误。根据 Chrome 开发工具,有时超时时间为 1 分钟,有时为 1.2 分钟。我无法解释超时的变化。

当我检查特定于站点的 nginx 错误日志时,我发现每次尝试访问 URL 时都会生成此错误:

[error] 20675#20675: *1 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 172.72.213.137, server: example.com, request: "GET /data/123 HTTP/2.0", upstream: "fastcgi://unix:/var/run/php/php7.1-fpm.sock:", host: "example.com"

我是否遗漏了一些关键设置?

PHP 7.1

nginx 1.13.3

相关内容