Nginx反向代理https和wss

博客提及https网上有很多模板不再赘述,重点介绍了wss的两条关键配置,即在https基础上的server配置里添加两条header,分别是proxy_set_header Upgrade $http_upgrade;和proxy_set_header Connection \upgrade\;。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.https不赘述,网上一大堆模板

2.wss重点说两条关键配置

在https基础上server配置里加两条header 

        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

### 配置 Nginx 实现 HTTPSWSS反向代理 为了使 Nginx 能够将 HTTPS 请求反向代理WSS (WebSocket Secure),需要特别注意 WebSocket 协议的升级机制以及 SSL/TLS 加密的支持。以下是详细的配置方法: #### 1. 基本配置结构 Nginx 中处理 WebSocket WSS 连接的关键在于 `proxy_http_version` 设置为 `1.1`,并正确传递 `Upgrade` `Connection` 头部字段。 ```nginx server { listen 443 ssl; server_name yourdomain.com; # SSL 配置 ssl_certificate /path/to/certificate.crt; ssl_certificate_key /path/to/private.key; location /ws/ { proxy_pass https://backend_server:port/; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; } } ``` 上述配置中: - `listen 443 ssl;` 表明此服务运行在 HTTPS 上[^1]。 - `ssl_certificate` `ssl_certificate_key` 定义了证书路径,用于启用加密通信[^2]。 - `location /ws/ {}` 是指定的 WebSocket 接入路径,可以根据实际需求调整。 - `proxy_pass` 指定目标 WebSocket 后端地址端口号[^3]。 - `proxy_http_version 1.1;` 支持 HTTP/1.1 版本协议,这是 WebSocket 所需的基础版本[^4]。 - `proxy_set_header Upgrade $http_upgrade;` `proxy_set_header Connection "Upgrade";` 确保客户端发起的 WebSocket 握手能够被正确识别并完成升级过程。 #### 2. 测试与验证 完成配置后,可以通过以下方式测试连接是否正常工作: - 使用浏览器开发者工具查看网络请求状态码是否返回 `101 Switching Protocols`,这表明握手成功。 - 或者通过命令行工具如 `wscat` 来模拟 WebSocket 连接: ```bash wscat -c wss://yourdomain.com/ws/ ``` 如果一切配置无误,则可以建立安全的 WebSocket 连接。 --- ### 注意事项 - 如果遇到无法连接的情况,请确认防火墙规则允许相关端口访问,并检查后端服务器是否已启动监听。 - 对于更复杂的场景(例如负载均衡或多实例部署),可能还需要引入会话保持策略或其他高级功能来保障稳定性。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值