最近有一个需求,如何禁用ssl证书,只用于Nginx 443端口转发流量?https服务器A和B 有 https 服务并提供两个 IP 以实现高可用。 例如https服务器 A[ip1:443] 和 B[ip2:443] 被路由到Nginx代理服务器上。 Nginx代理服务器没有 ssl_certificate
和 ssl_certificate_key
使用 Nginx 代理模块将请求代理到实际的https服务器上。如何在没有SSL验证的情况下将443端口流量简单转发到后端。
--with-stream
、--with-stream_ssl_preread_module
。stream {
upstream default_backend_traefik_tls {
server 10.1.1.100:30443 max_fails=3 fail_timeout=10s;
server 10.1.1.120:30443 max_fails=3 fail_timeout=10s;
server 10.1.1.130:30443 max_fails=3 fail_timeout=10s;
}
# 根据不同的协议走不同的upstream
map $ssl_preread_protocol $upstream{
"TLSv1.0" default_backend_traefik_tls;
"TLSv1.1" default_backend_traefik_tls;
"TLSv1.2" default_backend_traefik_tls;
"TLSv1.3" default_backend_traefik_tls;
}
server {
listen 443;
ssl_preread on;
proxy_ssl_server_name on;
proxy_pass $upstream;
proxy_ssl_verify off;
proxy_ssl_name default_backend_traefik_tls;
}
}
{% note info flat %} stream
是在根这一层的,和什么 http
、events
是一个层级的。{% endnote %}
在 nginx.conf 插入 stream 代码的时候报错, 显示的是nginx: [emerg] "stream" directive is not allowed here in /usr/local/nginx/conf/nginx.conf:86
解决办法:
# 安装相关依赖
yum -y install nginx-mod-stream
# 如果安装了则需要
find / -name "ngx_stream_module.so"
cat /etc/nginx/nginx.conf
load_module /usr/local/nginx-1.18.0/modules/ngx_stream_module.so; # 在nginx.conf第一行添加。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。