微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Nginx代理基于SNI而无需解密

我目前正在使用以下(简化)配置来代理同一端口上的http和https连接(aws elastic beanstalk所需):

server {
    listen 777 ssl;
    server_name foo.com;
    ssl_certificate /etc/Nginx/ssl/foo.crt;
    ssl_certificate_key /etc/Nginx/ssl/foo;

    root /usr/share/Nginx/www;
    index index.html index.htm;

    error_page 418 = @upstream;
    error_page 497 = @upstream;

    location / {
        return 418;
    }

    location @upstream {
        proxy_set_header  X-Forwarded-Proto  $scheme;
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:8080;
    }
}

我想将上游更改为uwsgi并让uwsgi处理ssl,因为它可以简化部署.

如何在没有Nginx解密ssl流量的情况下调整我的配置以适用于SNI HTTPS和HTTP?

最佳答案
不,你不能用Nginx.认情况下,Nginx始终在解密内容,因此Nginx可以应用请求路由.一些可以尝试的解决方案:

>有第三方模块叫nginx_tcp_proxy_module.我还没有尝试过.因为该模块在网络层上执行代理,所以它将在不解密的情况下传递请求.
>首选解决方案是使用HAProxy. This tutorial建议你可以使用SNI功能进行TCP代理.

边注

认情况下,Nginx始终充当代理上的SSL卸载/解密过程.这里有一些做SSL卸载的优点(取自here)

>提高性能
>更好地利用后端服务器
>智能路由
>证书管理
>安全补丁

原文地址:https://www.jb51.cc/nginx/435069.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐