首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nginx ssl_preread无法处理SOCKS 5代理协议

Nginx ssl_preread无法处理SOCKS 5代理协议
EN

Stack Overflow用户
提问于 2020-05-05 17:02:40
回答 1查看 345关注 0票数 0

我正在尝试在Nginx 1.17的同一端口上运行SSL和非SSL(在我的例子中是SOCKS 5代理)协议。根据Nginx document的说法,这在SSH上工作得很好。但它对Socks代理不起作用,而且超时。我认为问题出在ssl_preread on上,因为当我删除它并将所有流量转发到上游的socks时,它可以正常工作。Nginx在使用ssl_preread时处理Socks 5代理有问题吗?

代码语言:javascript
复制
stream {
    upstream socks {
        server 127.0.0.1:1080; #SOCKS 5 proxy server
    }

    upstream https {
        server 127.0.0.1:8443;
    }

    map $ssl_preread_protocol $upstream {
        default socks;
        "TLSv1.2" https;
        "TLSv1.3" https;
        "TLSv1.1" https;
        "TLSv1.0" https;
    }

    server {
        listen 443;
        proxy_pass $upstream;
        ssl_preread on;
    }
}
EN

回答 1

Stack Overflow用户

发布于 2020-09-15 18:20:43

我认为您必须将标头升级和连接传递到代理服务器,请参阅https://nginx.org/en/docs/http/websocket.html

代码语言:javascript
复制
  ...
  map $http_upgrade $connection_upgrade {
      default upgrade;
      ''      close;
  }

  server {
     listen 443;
     proxy_pass $upstream;
     ssl_preread on;
     proxy_http_version 1.1;
     proxy_set_header Upgrade $http_upgrade;
     proxy_set_header Connection $connection_upgrade;
  }
  ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61609484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档