nginx可以通过SSL终止来实现TCP负载平衡吗

nginx可以通过SSL终止来实现TCP负载平衡吗,nginx,tcp,load,Nginx,Tcp,Load,由于某些原因,我需要设置nginx-tcp负载平衡,但需要使用ssl终止。我不确定Nginx能否做到这一点。由于tcp是第4层,ssl是第5层,ssl传递肯定能工作。但是使用SSL终止?感谢您的建议。Nginx可以作为L3/4平衡器,并带有流模块: 因为SSL仍然是tcp-Nginx可以代理SSL流量而不终止 stream { upstream stream_backend { server backend1.example.com:443; server

由于某些原因,我需要设置nginx-tcp负载平衡,但需要使用ssl终止。我不确定Nginx能否做到这一点。由于tcp是第4层,ssl是第5层,ssl传递肯定能工作。但是使用SSL终止?感谢您的建议。

Nginx可以作为L3/4平衡器,并带有流模块:

因为SSL仍然是tcp-Nginx可以代理SSL流量而不终止

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;
    }
}
流模块也可以终止SSL通信,但它是可选的

示例1:IMAP over SSL的TCP隧道,无SSL终止

stream {
    upstream stream_backend {
        server backend1.example.com:993;
        server backend2.example.com:993;
    }
    server {
        listen 993;
        proxy_pass stream_backend;
    }
}
在这种情况下,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;
    }
}
在这种情况下,nginx和后端1/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。

如果执行tcp负载平衡,我不确定是否可以终止SSL。你有关于它的链接或信息吗?thxWell,如果您谈论的是balance HTTPS,那么nginx上不需要tcp ssl终止。您可以使用tcp代理(由上游终止的HTTPS流量)。或者,您可以在nginx上终止HTTPS,并使用HTTP反向代理。我关心的是,如果我执行第4层tcp负载平衡,是否可以在nginx级别终止SSL?当然,我可以通过后端终止ssl。由您决定:)您可以在不终止的情况下平衡ssl流量。SSL流量仍然是tcp流量,带有流模块的nginx充当tcp隧道。在这种情况下,SSL将由后端终止。我惊讶地看到nginx终止SSL,即使它实现了tcp负载平衡。我之所以说tcp是第4层,ssl是第5层。我在谷歌上搜索了很多,我得到的是如果我做tcp负载平衡,那就是ssl通过模式。