解决 Nginx + PHP-FPM 环境下 WordPress 出现 504 网关超时错误
解释:
HTTP 504 错误是一个服务器端响应错误,表明网关(在这种情况下是 Nginx)在作为代理尝试访问上游服务器(PHP-FPM)时,没有在指定时间内收到一个有效的响应。这通常意味着 PHP-FPM 没有在预定时间内处理完请求,或者 Nginx 与 PHP-FPM 之间的通信出现了问题。
解决方法:
增加 Nginx 的 proxy\_read\_timeout 设置。打开 Nginx 配置文件(例如
/etc/nginx/nginx.conf
或/etc/nginx/sites-available/your_site
),找到相关的 server 块,增加或调整proxy_read_timeout
的值。例如:location ~ \.php$ { ... fastcgi_read_timeout 600; ... }
将
fastcgi_read_timeout
设置为更长的时间,如上例中的 600 秒。增加 PHP-FPM 的
max_execution_time
设置。编辑 PHP-FPM 配置文件(例如/etc/php/7.x/fpm/php.ini
),增加或调整max_execution_time
的值。例如:max_execution_time = 300
将
max_execution_time
设置为更长的时间,如上例中的 300 秒。- 检查系统资源。如果服务器资源不足(如 CPU 或内存负载过高),可能导致 PHP-FPM 处理请求的速度变慢。确保服务器有足够的资源来处理请求。
- 检查网络问题。确保 Nginx 和 PHP-FPM 之间的网络连接没有问题。
- 查看 PHP-FPM 和 Nginx 的日志文件。分析请求失败的原因,可以从日志中找到线索。
- 调整系统的文件描述符限制。过低的文件描述符限制可能会导致 PHP-FPM 无法打开足够的文件描述符,从而导致超时。
- 如果以上方法都不能解决问题,考虑优化 WordPress 的性能,比如使用缓存插件或者优化数据库查询。
在进行任何更改后,记得重启 Nginx 和 PHP-FPM 服务以使更改生效。
评论已关闭