weixin_45840746 2024-05-20 12:08 采纳率: 35.6%
浏览 17
已结题

nginx代理报502的错误

在页面上报502的错误

目标地址:https://dashscope.aliyuncs.com/api/1/services/aion
请求地址:https://xiaohu.com/api/1/services/aion

代理是这么处理的:


location /api {
        proxy_ssl_name xiaohu.com;
        proxy_ssl_server_name on;
        proxy_pass https://dashscope.aliyuncs.com;
    }   

查看日志报:

2024/05/20 11:43:50 [error] 181249#181249: *138254 peer closed connection in SSL handshake (104: Connection reset by peer) while SSL handshaking to upstream, client: 117.26.10.18, server: xiaohu.com, request: "POST  /api/1/services/aion HTTP/1.1", upstream: "https://17.13.23.31:443 /api/1/services/aion", host: "xiaohu.com", referrer: "https://xiaohu.com/models/"
2024/05/20 11:43:50 [error] 181249#181249: *1382354 connect() to [2131:3000:210::30c]:443 failed (101: Network is unreachable) while connecting to upstream, client: 117.26.10.18, server: xiaohu.com, request: "POST /api/1/services/aion HTTP/1.1", upstream: "https://[2131:3000:210::30c]:443 /api/1/services/aion", host: "xiaohu.com", referrer: "https://xiaohu.com/models/"

请问一下该怎么解决哎,我会一个个尝试,解决才会结单

  • 写回答

19条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-20 12:08
    关注

    引自免费微信小程序:皆我百晓生

    看起来你的Nginx服务器在尝试转发到https://dashscope.aliyuncs.com时遇到了问题,返回了502 Bad Gateway错误。根据提供的日志信息,存在两种不同的错误情况:

    1. peer closed connection in SSL handshake (104: Connection reset by peer)
    2. connect() to [2131:3000:210::30c]:443 failed (101: Network is unreachable)

    第一种错误可能是上游服务器(dashscope.aliyuncs.com)在SSL握手过程中关闭了连接,这可能是因为证书验证失败、网络问题或者服务器过载。

    第二种错误表明Nginx试图通过IPv6地址连接到上游服务器,但没有成功,因为网络不可达。这可能是因为你的服务器配置错误,或者上游服务器不支持IPv6访问。

    为了解决这些问题,可以尝试以下步骤:

    第一步:检查上游服务器

    确保dashscope.aliyuncs.com能正常访问,并且你的Nginx服务器可以从当前IP地址访问它。你可以在命令行中使用curl工具测试:

    curl --insecure -v https://dashscope.aliyuncs.com/api/1/services/aion
    

    如果返回状态码不是200,或者有证书警告,那么你需要检查上游服务器的配置。

    第二步:确认DNS解析

    确保你的Nginx服务器正确地解析dashscope.aliyuncs.com到正确的IP地址。你可以使用nslookupdig命令进行检查:

    nslookup dashscope.aliyuncs.com
    

    第三步:检查Nginx配置

    确保Nginx配置中的proxy_pass指向正确的IP地址,而不是IPv6地址。如果上游服务器只接受IPv4连接,你应该去掉proxy_ssl_nameproxy_ssl_server_name配置,因为它们可能导致Nginx尝试使用服务器名称进行SNI(Server Name Indication),这可能会导致IPv6的尝试。修改后的配置如下:

    location /api {
        # Remove these lines if IPv6 isn't needed or supported
        # proxy_ssl_name xiaohu.com;
        # proxy_ssl_server_name on;
    
        proxy_pass http://dashscope.aliyuncs.com;  # Use HTTP instead of HTTPS here for troubleshooting purposes
    }
    

    第四步:排查SSL问题

    如果问题仍然存在,可能是SSL证书的问题。你可以尝试禁用SSL验证以排除这个可能性:

    location /api {
        proxy_pass http://dashscope.aliyuncs.com;  # Use HTTP instead of HTTPS here for troubleshooting purposes
        proxy_ssl_verify off;
    }
    

    然后再次尝试访问。如果这样可以正常工作,那么可能需要更新Nginx的SSL证书或者信任阿里云的CA证书。

    第五步:重新加载Nginx配置

    应用更改后,记得重启或重新加载Nginx服务以使新配置生效:

    sudo nginx -t  # Test the configuration
    sudo systemctl reload nginx  # Reload Nginx
    

    第六步:检查日志

    在每次更改后,继续监控Nginx的日志,看是否有新的错误或警告出现。一旦问题解决,再逐步恢复之前的配置,例如启用HTTPS和SSL验证。

    如果你按照上述步骤操作后问题仍未解决,可能需要进一步调查Nginx与上游服务器之间的网络问题,或者联系阿里云支持获取更详细的帮助。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月27日
  • 创建了问题 5月20日

悬赏问题

  • ¥15 ros的rviz仿真机器人
  • ¥15 关于#linux#的问题(输入输出错误):出现这个界面接着我重新装系统,又让修电脑的师傅帮我扫描硬盘(没有问题)用着用着又卡死(相关搜索:固态硬盘)
  • ¥15 cv::resize不同线程时间不同
  • ¥15 web课程,怎么做啊😭没好好听课 根本不知道怎么下手
  • ¥15 做一个关于单片机的比较难的代码,然后搞一个PPT进行解释
  • ¥15 python提取.csv文件中的链接会经常出现爬取失败
  • ¥15 数据结构中的数组地址问题
  • ¥15 maya的mel里,怎样先选择模型A,然后利用mel脚本自动选择有相同名字的模型B呢。
  • ¥15 Python题,根本不会啊
  • ¥15 会会信号与系统和python的来