账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    关于nginx proxy_pass的报错recv() failed
    30
    0

    nginx中的配置如下:

    server {
        listen 80;
        server_name www.test1.com;
        location / {
            proxy_pass  http://test2.com/;
        }
    }
    

    配置很简单,就是用nginx的proxy_pass来做转发。

    但是却报502 Bad Gateway,查nginx的error log:

    2018/09/12 11:10:14 [error] 2570#0: *5 recv() failed (104: Connection reset by peer) while reading response header from upstream
    1. 这个报错有点奇怪,我查了很久, recv() failed应该是php-fpm超时之类引起的报错。但是在这里只用nginx的proxy_pass,跟php-fpm之类没有什么关系。

    nginx里的各种时间已经加长,不过都没什么用。

    client_header_timeout 300s; 默认为60秒
    client_body_timeout 300s; 默认为60秒
    proxy_connect_timeout 300s; #连接超时 默认为60秒
    proxy_read_timeout 300s; #读取超时 默认为60秒
    proxy_send_timeout 300s; #发送超时 默认为60秒
    1. 另一个奇怪的问题,这是一台美国的服务器。

    我用一台国内的服务器,用同样的配置的就是正常的。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 后来你不在 普通会员 1楼

      "recv() failed" 通常意味着你在尝试通过代理服务器向目标服务器发送数据时遇到了问题。这种错误通常是由于代理服务器的性能不足、网络问题或者代理服务器本身的问题引起的。

      以下是一些可能的原因和解决方案:

      1. 代理服务器性能不足:如果你的代理服务器的 CPU 或内存资源不足,可能会导致 "recv() failed"。你可以在代理服务器上增加更多的资源,或者优化你的请求。

      2. 网络问题:如果你的网络连接不稳定或者速度过慢,可能会导致 "recv() failed"。你可以尝试更换一个网络环境,或者优化你的网络配置。

      3. 代理服务器本身的问题:如果你的代理服务器本身有问题,例如有故障、崩溃或者损坏,也可能导致 "recv() failed"。你可以在代理服务器上重启或者进行更深入的故障排查。

      4. 目标服务器的问题:如果你的目标服务器有问题,例如服务器繁忙、负载过大、服务器内部错误等,也可能导致 "recv() failed"。你可以在目标服务器上进行负载测试,或者优化你的请求。

      请根据你的实际情况和错误信息,找出问题的原因并进行相应的解决。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部