nginx代理websocket详细讲解

location /ws {
	proxy_ssl_verify off;
    proxy_pass https://xxx/ws;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header X-Forwarded-Proto $scheme;
}
  1. location /ws {

    • 这行定义了一个新的 location 块,用于匹配所有以 /ws 开头的请求。
  2. proxy_ssl_verify off;

    • 这行关闭了代理服务器与后端服务器之间 SSL 证书的验证。这意味着即使 SSL 证书无效或过期,Nginx 仍然会允许连接到后端服务器。
  3. proxy_pass https://xxx/ws/;

    • 这行指定了所有匹配此 location 的请求都将被转发到指定的 URL。在这个例子中,请求会被转发到 https://xxx/ws
  4. proxy_http_version 1.1;

    • 这行设置代理服务器使用的 HTTP 版本为 1.1。HTTP/1.1 支持持久连接,这可以提高性能。
  5. proxy_set_header Upgrade $http_upgrade;

    • 这行设置了 Upgrade HTTP 头。如果原始请求中包含这个头,它将被转发到后端服务器。这在 WebSocket 和其他协议升级中很重要。
  6. proxy_set_header Connection "upgrade";

    • 这行设置 Connection 头为 “upgrade”,这也是处理 WebSocket 或其他需要升级现有连接的协议时必需的。
  7. proxy_set_header X-Forwarded-Proto $scheme;

    • 这行设置了 X-Forwarded-Proto 头,它通常用于告诉后端服务器原始请求是使用 HTTP 还是 HTTPS 协议。$scheme 变量包含了原始请求的协议。

这个配置主要用于将特定路径的请求代理到另一个服务器,同时处理一些与 HTTP 升级和头部相关的特殊情况。它对于处理 WebSocket 或类似协议的请求特别有用。

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值