中转服

公司网络访问服务器A非常不稳定,那么就弄个中转服

中转服安装nginx,添加配置

server {
    listen my_port ssl; 
    server_name jump.server.com;
    ssl_certificate my_fullchain.pem;
    ssl_certificate_key my_privkey.pem;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers         HIGH:!aNULL:!MD5;
    location / {
       proxy_pass https://target.server.com:target_port;
       proxy_set_header Host $http_host;
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection upgrade;
       proxy_set_header Accept-Encoding gzip;
    }
}

服务器A上的服务配置为

服务器B(中转服)配置

客户端只需要访问新的 IP:PORT 即可,其他不用修改。

nginx配置解析

1. proxy_redirect off;

  • 关闭 代理重定向
  • 默认情况下,Nginx 会尝试修改目标服务器返回的重定向地址以匹配代理服务器。这里关闭这个行为,以确保重定向地址保持目标服务器原样。

2. proxy_http_version 1.1;

  • 设置与目标服务器通信时使用 HTTP/1.1 协议。
  • WebSocket 等功能需要 HTTP/1.1 支持。

3. proxy_set_header Upgrade $http_upgrade;

  • 添加或修改 HTTP 请求头部中的 Upgrade 字段,值为 $http_upgrade
  • $http_upgrade 是一个 Nginx 的变量,用于动态获取客户端请求头中的 Upgrade 字段值。
  • 用途: WebSocket 通信需要 Upgrade 头部来指示协议切换。

4. proxy_set_header Connection "upgrade";

  • 设置 HTTP 请求头部中的 Connection 字段为 "upgrade"
  • 这一配置与 Upgrade 头部配合,用于支持 WebSocket 协议。
  • 作用: 通知目标服务器,这次连接需要升级为 WebSocket 或其他协议。

5. proxy_set_header Host $host;

  • 设置 HTTP 请求头部中的 Host 字段为 $host,即客户端请求中的主机名。
  • 用途: 保持请求头的 Host 字段与客户端原始请求一致。
    • 例如:客户端请求 target.server.com 时,目标服务器接收的 Host 字段也将是 target.server.com,而不是目标地址 server.com
  • 好处: 有助于目标服务器根据 Host 字段进行正确的域名解析或虚拟主机分流。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容