我一直在获取超时导致某些GET请求502错误的网关错误。
我已经尝试将这些行添加到我的nginx站点conf文件中:
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的conf值改为:
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