nginx 代理 WebSocket 配置
Nginx 代理 WebSocket 配置
1. 配置文件位置
- Nginx 配置文件通常位于
/etc/nginx/nginx.conf
,也可以在/etc/nginx/conf.d/
下创建新的配置文件,例如websocket.conf
。
2. 基本配置结构
http {
upstream websocket {
server localhost:9301; # 定义上游 WebSocket 服务器
}
server {
listen 9300; # 监听 9300 端口
location / {
proxy_pass http://websocket; # 将请求代理到上游服务器
proxy_http_version 1.1; # 使用 HTTP/1.1
proxy_set_header Upgrade $http_upgrade; # 设置 Upgrade 头
proxy_set_header Connection "upgrade"; # 设置 Connection 头
proxy_set_header Host $host; # 设置 Host 头
proxy_set_header X-Real-IP $remote_addr; # 设置真实 IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 设置转发的 IP
proxy_set_header X-Forwarded-Proto $scheme; # 设置转发的协议
}
}
}
3. 配置说明
- upstream websocket: 定义名为
websocket
的上游服务器,指定 WebSocket 服务器的地址(localhost:9301
)。 - server: 创建一个 Nginx 服务器块,监听来自客户端的 WebSocket 连接请求。
- location /: 匹配所有请求,将其代理到上游服务器。
- proxy_pass: 将请求转发到定义的上游服务器。
- proxy_http_version: 指定使用 HTTP/1.1,以支持 WebSocket。
- proxy_set_header: 设置请求头,以支持 WebSocket 协议。
4. 配置步骤
- 编辑 Nginx 配置文件,添加上述配置。
- 测试配置是否正确:
sudo nginx -t
- 重新加载 Nginx 使配置生效:
sudo systemctl reload nginx
5. 注意事项
- 确保
upstream
和server
块都在同一个http
块内。 - 确保 WebSocket 服务器(9301端口)正常运行。
总结
通过上述配置,Nginx 可以成功代理 WebSocket 请求,将来自 ws://localhost:9300
的连接转发到 ws://localhost:9301
。
分类:
nginx
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 超详细,DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方Dee
· 用 DeepSeek 给对象做个网站,她一定感动坏了
· .NET 8.0 + Linux 香橙派,实现高效的 IoT 数据采集与控制解决方案
· DeepSeek处理自有业务的案例:让AI给你写一份小众编辑器(EverEdit)的语法着色文件
2022-10-29 js中.?、??、??=的用法和含义