nginx搭配php-fpm504问题解决【大文件上传-请求超时】

4 篇文章 0 订阅

nginx搭配php-fpm504问题解决【大文件上传-请求超时】

使用Nginx网络服务器看到504网关超时错误是很常见的。在服务内容的后端连接上,由于多种原因,通常会生成此超时错误。要修复504网关超时,您必须确定使用的配置。

您将如何看到504 Gateway Timeout错误

不同的网站可以自定义504网关超时错误消息。以下是最常见的504错误消息:

  • “504网关超时”
  • “504网关超时”
  • “504 Gateway Timeout NGINX”
  • “Nginx 504网关超时”
  • “HTTP 504网关超时”
  • “HTTP 504错误”
  • “HTTP 504”
  • “网关超时(504)”

Nginx + FastCGI上的504网关超时错误(php-fpm)

思路:

  • fastcgi_pass 利用sock文件代替tcp端口通信【nginx.conf】
  • 让fastcgi_read_timeout我们在Nginx虚拟主机配置中添加 变量:【nginx.conf】
  • 尝试提高文件 php.ini 中的max_execution_time【php.ini】
  • 增大nginx与php-fpm通信时的缓存文件大小与个数【php-fpm.conf】
  • 静态绑定5个php-fpm进程,减少频率启动进程的开销【php-fpm.conf】
  • php-fpm.conf 设置request_terminate_timeout的值 等于 max_execution_time【php-fpm.conf】
  • 注意:如果是大文件上传 还需要改上传文件大小限制 nginx: client_max_body_size = 0 [不限制];php.ini 上传大小限制

现在让fastcgi_read_timeout我们在Nginx虚拟主机配置中添加 变量:

location ~ \.php$ {
    try_files $uri /index.php =404;
    fastcgi_split_path_info ^(.+.php)(/.+)$;
    fastcgi_pass unix:/var/run/php-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param HTTP_PROXY ""; # Fix for https://httpoxy.org/ vulnerability
    fastcgi_read_timeout 300;
    include fastcgi_params;
}
  # nginx.conf location段
unix:/usr/local/php/var/run/php-fpm.sock

# fastcgi.conf 修改内容
fastcgi_buffers 32 128k;
fastcgi_buffer_size 128k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
#大文件上传配置,不限制上传大小
client_max_body_size = 0;

fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
#php-fpm.conf
listen = /usr/local/php/var/run/php-fpm.sock
#提醒:别忘给php-fpm.sock加读写权限

pm = static # 静态绑定5个进程
pm.max_children = 5

#然后将变量设置为相同的值max_execution_time
request_terminate_timeout = 300
#php.ini
#大文件上传配置,不限制上传大小
upload_max_filesize = 0
post_max_size = 0
memory_limit= 2048M //根据服务器配置来
#尝试提高文件中的max_execution_time设置php.ini(CentOS路径是/etc/php.ini):
max_execution_time = 300
#建议通过代码 @set_time_limit(0);动态设置为0;不建议直接修改php.ini参数。

然后重启nginx:重启php-fpm

服务nginx重新加载 ./nginx -s reload

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小猪@笨笨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值