我有一个带有 nginx 和 php-fpm 的测试服务器。
网站上的页面可以正常打开,但当我想发送 POST 请求(例如“网站授权”)时,我收到“504 网关超时错误”。Nginx 和 php-fpm 使用默认设置配置。
504 的原因可能是什么?
答案1
这似乎是一个非常常见的问题,正如 StackOverflow 过去所显示的那样:
无论如何,对于您的具体问题,我认为答案在于 PHP-FPM 配置。也许您应该检查您的 php-fpm.conf(如果您有 PHP5-FPM,则应检查/etc/php5/fpm/pool.d/www.conf
或/etc/php5/fpm/php-fpm.conf
)并设置此参数:
request_terminate_timeout = 30s
如果事情不起作用,将其改为更低或更高的值也可能有用。
答案2
如果在执行 fastcgi 传递时 nginx 超时,您也可以在 nginx 端处理此问题,方法是在 fastcgi_pass 的节中使用以下指令:
fastcgi_connect_timeout 60;
fastcgi_read_timeout 60;
这些会将连接和响应超时设置为 60 秒,之后 nginx 就会给你 504。