1.首先要明确504错误是Nginx配置问题,所以调试PHP等其他配置是木有用的.这样目标已经缩小很多了.
2.其次, 明确这个Nginx是做什么, 一般有两种:
a. 只是将请求代理转发, 在配置我们能看到proxy_pass ip 字眼
b. 将请求通过fastcgi转发给PHP-fpm, 在配置有fastcgi_pass ip:port 字眼
3. 最后,对于以上不同的分类对症配置:
a情况加上 : proxy_read_timeout 3600s;
b情况加上: fastcgi_read_timeout 3600s;
其实很多网上说a情况还要再加上 proxy_connect_timeout 3600s; proxy_send_timeout 3600s;配置
b情况要再加上fastcgi_connect_timeout 3600s; fastcgi_read_timeout 3600s; 配置
但是实质上最关键的是read_timeout参数, 其他两个一般是不怎么会超时, 可配可不配.
note: 有些情况一条请求链路上可能有多层Nginx, 所以必定会a,b两种情况都存在的情况,具体哪个Nginx是哪种情况,对应的Nginx配置认证看下就知道了.
做了如上配置后,Nginx504错误是可以解决的, 但如果在以上问题解决完后,xdebug出现过了一段时间就会自动断开并跳出调试的问题.因为是Nginx+PHP-fpm模式, 那么这个问题只能是PHP的问题.这个是PHP的脚本执行超时限制. 如果你用的fpm模式, 那么只要修改PHP-fpm的配置, 找到其中request_terminate_timeout字段设置一个较大的值, 或者设置为0表示永不超时,fpm的默认值就是永不超时.然后重启你pph-fpm以便生效修改的配置.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。