解决 nginx 反向代理时的 upstream timeout 问题

  • 有时候我们用 nginx 做反向代理的时候会遇到如下报错:

    "[error] 11618#0: *324911 upstream timed out (110: Connection timed out) while reading response header from upstream, "
    复制代码
  • 这种情况多发生在用 nginx 做反向代理的时候,例如用 nginx 做反向代理转发某一个 swagger 接口,当访问接口时报错,状态码一般为 504 ,也就是代理超时的问题。

  • 其实这是由于超时问题造成的,解决方案如下:

Proxy 方式

  • 一般我们用的是 nginx 的 proxy 机制做反向代理,此时我们需要修改 nginx 配置文件 nginx.conf ,在 http 或者 server 段添加如下内容:

    large_client_header_buffers 4 16k;
    client_max_body_size 30m;
    client_body_buffer_size 128k;
    
    proxy_connect_timeout 300;
    proxy_read_timeout 300;
    proxy_send_timeout 300;
    proxy_buffer_size 64k;
    proxy_buffers   4 32k;
    proxy_busy_buffers_size 64k;
    proxy_temp_file_write_size 64k;
    复制代码
  • 然后重启 nginx ,一般超时问题就会解决了。

Fastcgi 方式

  • 大多数情况下我们用的是 proxy 方式,但是有时候我们还会遇到 fastcgi 的方式,例如用 nginx 处理 php 页面的场景。其实处理方式类似,同样是修改 nginx 配置文件 nginx.conf ,在 http 或者 server 段添加如下内容:

    large_client_header_buffers 4 16k;
    client_max_body_size 30m;
    client_body_buffer_size 128k;
    
    fastcgi_connect_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_buffer_size 64k;
    fastcgi_buffers   4 32k;
    fastcgi_busy_buffers_size 64k;
    fastcgi_temp_file_write_size 64k;
    复制代码
  • 然后重启 nginx ,一般超时问题就会解决了。

    上述配置的具体参数还需根据实际情况而定,不能一味的复制粘贴,希望能帮到大家处理对应的问题。

转载于:https://juejin.im/post/5b472b785188251b134e6459

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值