我在Nginx服务器上有一个在Drupal 7中构建的站点.每周几次编辑任何内容并按保存,或者当我登录网站时,或者当我更改某些配置时,我会看到一个带有“502 Bad gateway”消息的白色屏幕.只有在登录并保存更改时,才会向匿名访问者显示错误.我做什么样的改变似乎并不重要.我可以按浏览器中的后退按钮,这会将我带回编辑屏幕并再次按保存,然后成功保存更改.
2016/10/20 08:09:00 [error] 20703#20703: *3297348 recv() Failed (104: Connection reset by peer) while reading response header from upstream,client: 195.198.76.66,server: www.example.com,request: "POST /node/88/edit HTTP/1.1",upstream: "fastcgi://unix:/run/PHP/PHP-fpm.sock:",host: "www.example.com",referrer: "http://www.example.com/node/88/edit"
这是同一时间的Nginx日志:
[20-Oct-2016 08:09:00] WARNING: [pool www0] child 10909,script '/srv/www/example/public_html/index.PHP' (request: "POST /index.PHP") execution timed out (8189.954999 sec),terminating
[20-Oct-2016 08:09:00] WARNING: [pool www0] child 10909 exited on signal 15 (SIGTERM) after 19080.476683 seconds from start
[20-Oct-2016 08:09:00] NOTICE: [pool www0] child 13002 started
谁能看到这里发生了什么?
最佳答案
我在使用Nginx& amp;的设置上遇到了HTTP 502问题. PHP-FPM.似乎很多超时&必须根据数据传输时间修改限制.在这种情况下发生的事情是keepalive超时太短.
>在Nginx.conf中:keepalive_timeout
>在站点的配置文件中(位于可用站点文件夹中):
> send_timeout
> fastcgi_connect_timeout
> fastcgi_send_timeout
> fastcgi_read_timeout
>在PHP.ini中:
> max_execution_time
> max_input_time
问题的真正根源可能是这些设置中的任何一个.