nginx反向代理https域名时,请求报错502 & 多个域名和服务使用同一个公网IP解决方案 您所在的位置:网站首页 netty配置多个ssl证书 nginx反向代理https域名时,请求报错502 & 多个域名和服务使用同一个公网IP解决方案

nginx反向代理https域名时,请求报错502 & 多个域名和服务使用同一个公网IP解决方案

#nginx反向代理https域名时,请求报错502 & 多个域名和服务使用同一个公网IP解决方案| 来源: 网络整理| 查看: 265

nginx报错日志如下: 2023/06/18 12:09:24 [error] 24993#0: *17967 SSL_do_handshake() failed (SSL: error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error) while SSL handshaking to upstream, client: 10.xxx, server: localhost, request: "POST /bapi/ HTTP/1.1", upstream: "https://xxx/b", host: "xxx", referrer: "http://xxx/screen/"

报错分析: 在本地环境直接请求域名正常;但使用了nginx反向代理,在请求时DNS域名进行解析,真正请求出去的为IP与端口,但对方系统是多个域名对应一个公网ip,这个一个公网IP下映射到了多个项目和服务,通过nginx的server_name进行区分,故直接请求不通。

所以能成功请求方式有两种:1、直接域名请求;2、IP端口请求,但请求时需添加host;

即在nginx配置项中增加

        proxy_ssl_server_name on;

(当你的nginx服务器作为反向代理,将client的请求转发到一个SSL服务器时,需要在HTTP请求头中包含SSL服务器的名称,这样SSL服务器才能正确地响应该请求。proxy_ssl_name指令就是设置proxy_pass指令所代理的SSL服务器的名称,即www.example.com。这样,在转发请求时,nginx就会在请求头中添加"Host: www.example.com"的参数,保证请求被正确地路由到目标SSL服务器。)

小知识: 1.多个域名访问不同系统,使用同一个公网IP的情况;可以多个域名配置同一个公网IP和端口,映射到不同服务的nginx代理上,通过nginx配置server_name识别源域名,判定访问来源,进行请求处理。 2.反向代理https请求,nginx编译安装时需要增加配置模块--with-http_ssl_module 3.使用阿里云的SLB作为负载均衡,证书可以配置在SLB上,但是要选择七层负载均衡。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有