php网关超时,Nginx + PHP-FPM 7.1-504网关超时

  • Post author:
  • Post category:php

我在synology nas上将nginx 1.12和php-fpm 7.1作为单独的docker容器运行,并且如果php-

script运行时间超过60s,则会收到504 Gateway错误。我已经尝试了几个nginx配置参数,但是错误仍然存​​在。

这是我实际的nginx配置:

#user www-data;

#group http

worker_processes 1;

error_log /opt/data/logs/nginx_error.log notice;

events {

worker_connections 1024;

}

http {

include mime.types;

default_type application/octet-stream;

#keepalive_timeout 30s;

sendfile on;

#tcp_nopush off;

tcp_nodelay on;

#gzip off;

send_timeout 300

server {

listen 80;

server_name “”;

root /opt/php;

index index.php;

location /data/ {

sendfile on;

root /opt;

}

location ~ \.php$ {

include fastcgi_params;

fastcgi_split_path_info ^(.+?\.php)(/.*)$;

if (!-f $document_root$fastcgi_script_name) {

return 404;

}

# Mitigate https://httpoxy.org/ vulnerabilities

fastcgi_param HTTP_PROXY “”;

fastcgi_pass php:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_read_timeout 300;

#fastcgi_buffering off;

#fastcgi_keep_conn on;

#fastcgi_intercept_errors on;

#fastcgi_cache off;

#fastcgi_ignore_client_abort on;

}

location ~ ^/(status|ping)$ {

access_log off;

include fastcgi_params;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_pass php:9000;

}

}

}

php-testscript:

sleep(65);

echo “done!”;

file_put_contents(“/opt/data/timetest.txt”, “\nEnd”, FILE_APPEND);

60秒后,浏览器显示504网关超时。php脚本仍在运行,并且还在将文本写入文件。

Nginx错误日志:

2017/07/22 08:16:32 [error] 8#8: *10 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 172.17.0.1, server: , request: “GET /timetest.php HTTP/1.1”, upstream: “fastcgi://172.17.0.3:9000”, host: “192.168.0.100:8081”

有人知道吗?