加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

Nginx代理基于SNI而无需解密

发布时间:2020-12-13 21:08:07 所属栏目:Nginx 来源:网络整理
导读:我目前正在使用以下(简化)配置来代理同一端口上的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/

我目前正在使用以下(简化)配置来代理同一端口上的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)

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读