宝塔nginx环境如何配置 wss WebSocket 连接

本文档介绍了如何在宝塔面板中申请并配置SSL证书,解决访问HTTPS失败的问题,以及如何通过Nginx配置WebSocket服务,并提供了一个测试用例。关键步骤包括关闭防火墙以解决问题,设置Nginx代理传递,以及启动PHP服务器。

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

1、需要一个备案域名,在宝塔可申请免费ssl证书,ssl 证书这里有个大坑,为何宝塔申请成功总是访问https失败,我发现关闭防火墙就行了。

2、开放端口,宝塔环境新开放一个端口 

nginx 配置

location /wss {
      proxy_pass http://127.0.0.1:2022;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      rewrite /wss/(.*) /$1 break;
      proxy_redirect off;
    } 

3、宝塔终端启动:php server.php start -d

4、测试:

<!DOCTYPE html>

<html>

<head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>Title</title>

</head>

<body>

<script>

    var ws = new WebSocket("wss://www.xxx.com/wss");

    ws.onopen = function() {

        alert("连接成功");

        ws.send('tom');

        alert("给服务端发送一个字符串:tom");

    };

    ws.onmessage = function(e) {

        alert("收到服务端的消息:" + e.data);

    };

</script>

</body>

</html>

### 配置宝塔面板中 Nginx 的 HTTPS 反向代理 要在宝塔面板中设置 Nginx 的 HTTPS 反向代理,可以按照以下方法完成配置: #### 1. 安装并启用 SSL 证书 如果需要使用 HTTPS 协议,则必须先申请并安装 SSL 证书。可以通过宝塔面板内置的功能来快速申请免费的 Let's Encrypt 证书[^4]。 - 登录到宝塔面板,在左侧菜单栏选择 **网站**。 - 找到目标站点,点击右侧的 **设置** 按钮。 - 进入 **SSL** 设置页面,选择合适的证书类型(推荐 Let's Encrypt),然后点击 **申请证书** 并绑定到该域名下。 #### 2. 修改 Nginx 配置文件 进入宝塔面板中的 **网站 -> 设置 -> 配置文件** 页面,手动编辑 Nginx 配置以支持反向代理功能。 以下是标准的 HTTPS 反向代理配置模板: ```nginx server { listen 443 ssl; server_name yourdomain.com; # SSL 配置部分 ssl_certificate /path/to/certificate.crt; ssl_certificate_key /path/to/private.key; # 转发规则 location / { proxy_pass https://target-domain-or-ip:port/; 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; # 支持 WebSocket proxy_set_header Connection "Upgrade"; # 支持 WebSocket proxy_http_version 1.1; # 使用 HTTP/1.1 版本协议 } # 处理静态资源缓存 location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ { expires 7d; access_log off; } } ``` 上述代码片段展示了如何通过 `location` 块实现基本的 HTTPS 反向代理,并且包含了对 WebSocket (`wss`) 的支持以及静态资源的优化处理[^1]。 #### 3. 开放必要的端口 为了确保外部能够访问被代理的服务,需确认防火墙已允许相关端口通行。这不仅涉及本地服务器上的端口开放,还可能包括云服务商的安全组策略调整。 - 在宝塔面板里依次点击 **安全 -> 添加放行端口** 来开启所需的 TCP 或 UDP 端口号。 - 如果是在阿里云、腾讯云等平台部署的应用程序,请同步前往对应控制台添加相应的出入方向规则。 #### 4. 测试与验证 保存更改后的 Nginx 配置之后重启服务生效。接着利用浏览器或者命令行工具测试连接情况是否正常工作。 --- ### 注意事项 - 当前示例假设所有流量都经过 `/` 路径转发给后台服务器;实际应用当中可以根据业务需求自定义更复杂的匹配模式。 - 对于某些特殊场景比如跨域资源共享(CORS),还需要额外考虑 Access-Control-Allow-Origin 等头部字段设定[^5]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值