当前位置: 首页 > 工具软件 > php-ws > 使用案例 >

2021-01-30 宝塔系统nginx 配置ws +ssl

夏英发
2023-12-01

记录一下微信小程序WSS配置的问题(服务器系统基于centos 7)

1.首先理解一个概念 wss =ws+ssl

因为小程序正式版连接必须是https。即http+ssl

ssl证书可以通过腾讯或者阿里巴巴的域名进行申请免费证书,免费证书三个月有效期。或者可以用宝塔系统生成。

https配置直接用宝塔生成的证书,然后启动https就OK这里不再叙述过程。

2.配置好https之后接下来

我用的是thinkphp5.1+gateway-wokerman做服务端。

composer 安装topthink/think-worker 2.0.*  

thinkphp5.1 好像只支持2.0版本,3++的会报错。

安装好之后需要配置端口。
thinkphp根目录下 的config的gateway_server.php 配置好端口默认是8082

在thinkphp根目录下运行 php think worker:gateway
-------------------------------------------- WORKERMAN ---------------------------------------------
Workerman version:3.5.30          PHP version:7.1.33
--------------------------------------------- WORKERS ----------------------------------------------
proto   user            worker            listen                      processes    status           
tcp     root            Register          text://127.0.0.1:1236       1             [OK]            
tcp     root            BusinessWorker    none                        1             [OK]            
tcp     root            thinkphp          websocket://0.0.0.0:8082   1             [OK]            
----------------------------------------------------------------------------------------------------
Press Ctrl+C to stop. Start success.
看见以上信息代表成功

3.接下来配置 nginx的配置文档

server{

 

..........

.......

#默认的一些设置已省略

#关键配置如下    代理端口转协议 (一下配置是将http升级为https,因为ws 和http的握手协议是相通的所以我们只需要完成http握手就OK了,然后通过一下代理升级为+SSL的协议)

    location /wss {
       proxy_pass http://websocket/; # 代理到上面的地址去
       proxy_read_timeout 60s;
       proxy_set_header Host $host;
       proxy_set_header X-Real_IP $remote_addr;
       proxy_set_header X-Forwarded-for $remote_addr;
       proxy_http_version 1.1;
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection 'Upgrade';
    }

}

upstream websocket {
    server www.youryuming.com:8082;# 远程websocket服务器地址为      你的服务器域名:端口 
}

 

 

 类似资料: