我目前正在使用以下(简化)配置来代理同一端口上的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 举报,一经查实,本站将立刻删除。