Nginx WebSocket反向代理的配置指南

WebSocket是HTML5开始提供的一种在单个TCP连接上进行全双工通信的协议,使得客户端和服务器之间的数据交换更加简单,允许服务器主动向客户端推送数据。Nginx从1.3.13版本开始添加了对WebSocket反向代理的支持,大大提升了处理WebSocket的能力,Nginx的WebSocket代理配置简单实用,通过ngx_http_upstream_module模块,实现了服务器逻辑组,使架构更加灵活,下面是一个Nginx WebSocket反向代理的配置示例。

1. Nginx配置示例

# nginx.conf

worker_processes auto;
​
error_log /var/log/nginx/error.log info;
​
events {
   worker_connections 1024;
}
​
http {
   upstream backend {
       server 127.0.0.1:8000;
  }
​
   # 简单示例
   location /chat/ {
       proxy_pass http://backend;
​
       # 主要WebSocket代理配置
       proxy_http_version 1.1;
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
  }
​
   # 复杂示例
   map $http_upgrade $connection_upgrade {
       default upgrade;
       ''     close;
  }
​
   server {
       location /chat/ {
           proxy_pass http://backend;
           proxy_http_version 1.1;
           proxy_set_header Upgrade $http_upgrade;
           proxy_set_header Connection $connection_upgrade;
      }
  }
}

执行nginx -s reload命令即可将Nginx作为WebSocket反向代理服务器。主要关键在于server配置段中的proxy_http_versionproxy_set_header指令,分别用于设置HTTP版本、Upgrade和Connection头部,实现了HTTP到WebSocket的升级。

原创文章,作者:geeklinux.cn,如若转载,请注明出处:https://www.geeklinux.cn/jsjc/1345.html

(0)
geeklinux.cn的头像geeklinux.cn
上一篇 2024 年 3 月 29 日
下一篇 2024 年 4 月 3 日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注