由于某种原因,我需要设置nginx tcp负载均衡,但是使用ssl终止.我不确定Nginx能否做到这一点.由于tcp是第4层,ssl是第5层,SSL传递绝对有效.但是SSL终止?谢谢你的建议.
Nginx可以作为流模块的L3/4平衡器:https://www.nginx.com/resources/admin-guide/tcp-load-balancing/
因为SSL仍然是tcp - Nginx可以代理SSL流量而不会终止.
流模块也可以终止SSL流量,但它是可选的.
示例1:没有SSL终止的用于IMAP over SSL的TCP隧道
stream {
upstream stream_backend {
server backend1.example.com:993;
server backend2.example.com:993;
}
server {
listen 993;
proxy_pass stream_backend;
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,SSL终止由后端1/2处理.
示例2:具有SSL终止的IMAP的TCP隧道.
stream {
upstream stream_backend {
server backend1.example.com:443;
server backend2.example.com:443;
}
server {
listen 993 ssl;
proxy_pass stream_backend;
ssl_certificate /etc/ssl/certs/server.crt;
ssl_certificate_key /etc/ssl/certs/server.key;
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,nginx和backend1/2之间的流量未加密(使用IMAP 443端口).
示例3:接收未加密并加密
stream {
upstream stream_backend {
server backend1.example.com:993;
server backend2.example.com:993;
}
server {
listen 443;
proxy_pass stream_backend;
proxy_ssl on;
proxy_ssl_certificate /etc/ssl/certs/backend.crt;
proxy_ssl_certificate_key /etc/ssl/certs/backend.key;
}
}
Run Code Online (Sandbox Code Playgroud)
因此,客户端连接到我们的nginx而没有SSL,并且此流量使用SSL加密接近后端1/2.
归档时间: |
|
查看次数: |
4620 次 |
最近记录: |