07月23, 2024

nginx报错 peer closed connection in SSL handshake (104: Connection reset by peer) while SSL handshaking to upstream

nginx报这个错误 这个错误通常表示客户端与服务器进行SSL握手时出现了问题。SSL握手是SSL/TLS协议中的一个阶段,用于在通信开始前确立安全的连接。如果在这个阶段出现问题,可能是由于多种原因导致的,比如证书问题、协议不匹配、加密套件不兼容等。

在做反向代理转发时,如果目标服务ssl版本较高,可能出现这个问题

location /api {
            proxy_pass https://target.com; # 目标地址
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_ssl_session_reuse off;
            proxy_ssl_server_name on;
            proxy_ssl_name $proxy_host;
            proxy_ssl_protocols TLSv1.2;
            proxy_connect_timeout  180s;#nginx跟后端服务器连接超时时间(代理连接超时)
            proxy_send_timeout  180s;#后端服务器数据回传时间(代理发送超时)
            proxy_read_timeout  180s;#连接成功后,后端服务器响应时间(代理接收超时)
            fastcgi_connect_timeout 180s;#指定nginx与后端fastcgi server连接超时时间
            fastcgi_send_timeout 180s;#指定nginx向后端传送请求超时时间(指已完成两次握手后向fastcgi传送请求超时时间)
            fastcgi_read_timeout 180s;#指定nginx向后端传送响应超时时间(指已完成两次握手后向fastcgi传送响应超时时间)
            proxy_http_version 1.1;
            error_page 502 /updating.json;
        }

关键是 proxy_ssl_protocols 和 proxy_ssl_session_reuse 这两个决定了转发过去时使用哪个版本TLS 爬坑2天记录

本文链接:https://587v5.com/post/nginx-bao-cuo- peer closed connection in SSL handshake (104: Connection reset by peer) while SSL handshaking to upstream.html

Comments