[alibaba/tengine]tengine 四层代理多server配置不同server_name 同时监听443端口

2024-02-21 333 views
9

tengine 四层代理配置多server,配置不同server_name 同时监听443端口,配置了ssl证书,但是只有第一个生效。 设置了 upstream b { hash $remote_addr consistent; #远程地址做个hash server 10.33.240.15:443; } server { listen 443; ssl_sni_force on; server_name aa.com; proxy_timeout 6m; #后端连接超时时间 proxy_pass b; }

 upstream a {
 hash $remote_addr consistent;  #远程地址做个hash
 server 10.44.32.50:80; #sg2-ingress-nginx-test-inner内网负载均衡的IP地址

} server { listen 443 ssl; server_name bb.com; ssl_sni_force on; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM; ssl_certificate /usr/local/nginx/conf/ssl/xxx.crt; ssl_certificate_key /usr/local/nginx/conf/ssl/xxx.key; ssl_session_cache shared:SSL:10m; ssl_session_timeout 4h; proxy_timeout 6m; #后端连接超时时间 proxy_pass a; }

官方参考文档如下:http://tengine.taobao.org/document/stream_sni.html

如果配置不同端口可以生效。相同端口不行。

回答

6

确认下sni是否带了对应的server_name

8

请教下 sni是否带了server_name这个是如何设置?这个我不清楚,可能是这里的问题。

7

高版本的curl应该就支持,可以测测看,用wireshark抓包验证

2

如果没有携带呢?我怎么解决呢?

7

我编译安装的参数如下:

--prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_gzip_static_module --with-http_ssl_module --with-http_stub_status_module --with-pcre --with-http_realip_module --with-stream --with-stream_ssl_module --with-stream_sni --with-stream_ssl_preread_module

7

图片

7

如果你的请求不带sni,就没办法支持一个端口,多个证书了