gpt4 book ai didi

nginx - Nginx 可以使用 SSL 终止进行 TCP 负载平衡吗?

转载 作者:可可西里 更新时间:2023-11-01 02:33:19 24 4
gpt4 key购买 nike

由于某些原因,我需要设置 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;
}
}

在本例中,SSL 终止由 backend1/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;
}
}

在这种情况下,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;
}
}

因此,客户端在没有 SSL 的情况下连接到我们的 nginx,并且此流量使用 SSL 加密代理到后端 1/2。

关于nginx - Nginx 可以使用 SSL 终止进行 TCP 负载平衡吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39420613/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com