Linux+Nginx+PHP 宝塔配置GetwayWorker 踩过的坑
1、下载GetwayWorker包:下载workerman及相关应用
把解压好的文件放在服务器上(本人放在了项目里)
2、开始之前请先仔细看GetwayWorker手册:序言 · GatewayWorker手册 · 看云
红框圈出来的必看
3、创建wss服务(示例一):
文档地址:创建wss服务 · GatewayWorker手册 · 看云
- 前端链接WebSocket:
// 链接 GetWayWorker var ws = new WebSocket('wss://www.xxxx.cn:8282');
- GatewayWorker\Applications\YourApp\start_gateway.php配置:
$context = array(// 更多ssl选项请参考手册 http://php.net/manual/zh/context.ssl.php'ssl' => array(// 请使用绝对路径'local_cert' => '磁盘路径/server.pem', // 也可以是crt文件'local_pk' => '磁盘路径/server.key','verify_peer' => false,// 'allow_self_signed' => true, //如果是自签名证书需要开启此选项) );// gateway 进程,这里使用Text协议,可以用telnet测试 $gateway = new Gateway("Websocket://0.0.0.0:8282",$context);// 设置transport开启ssl,websocket+ssl即wss $gateway->transport = 'ssl';
- 启动GetwayWorker:
以debug(调试)方式启动:php start.php start
以daemon(守护进程)方式启动: php start.php start -d
4、创建wss服务(示例二):
- 前端链接WebSocket:
var ws = new WebSocket('wss://www.xxxx.com/wss'); ws.onopen = function() {alert("连接成功");};
- GatewayWorker\Applications\YourApp\start_gateway.php配置:
// $gateway = new Gateway("tcp://0.0.0.0:8282"); // tcp改成Websocket $gateway = new Gateway("Websocket://0.0.0.0:8282");
- Nginx配置如下(因为我start_gateway.php 中用的是8282端口,所以下方配置的时候也要是8282端口)别忘记开放8282端口:
server {listen 443 ssl;ssl_session_timeout 5m;ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;location /wss {proxy_pass http://127.0.0.1:8282;proxy_redirect off;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_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;proxy_max_temp_file_size 0;proxy_connect_timeout 90;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";add_header Cache-Control no-cache;add_header X-Cache $upstream_cache_status;}}
- 伪静态配置如下(和上方Nginx配置相同):
- 启动GetwayWorker:
以debug(调试)方式启动:php start.php start
以daemon(守护进程)方式启动: php start.php start -d
报错信息汇总:
- 启动GetwayWorker时报类似错误:需要在php中取消禁用的函数相关函数:上图取消禁用函数 pcntl_signal_dispatch
- Error during WebSocket handshake: Unexpected response code: 502
没有启动GetwayWorker - Error during WebSocket handshake: Unexpected response code: 200
Nginx配置有问题,或者是前端链接WebSocket时路径有问题,返回看上方的配置是否一样 - Error during WebSocket handshake: Unexpected response code: 404
Nginx配置有问题,网站的伪静态是否配置 - Error in connection establishment: net::ERR_CONNECTION_REFUSED
没有启动GetwayWorker - 关于停止失败,手册里面列举了几种可能性:停止失败 · workerman手册 · 看云
Linux+Nginx+PHP 宝塔配置GetwayWorker 踩过的坑相关推荐
- linux nginx反向代理配置
linux nginx反向代理配置 location ^~/api/ {proxy_pass http://192.168.1.50:82/; }
- 关于Redis配置主从复制踩到的坑,主机不显示从机的连接信息
关于Redis配置主从复制踩到的坑!!! 设置单机集群的时候,两台从机都显示连接到主机,但是主机显示连接到的从机数量为0: 主机信息: 从机80: 从机81: 查看从机log日志文件发现错误信息: M ...
- linux nginx安装以及配置
一.Nginx简介 Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由Igor Sysoev为 ...
- linux nginx rpm 安装配置,Centos下安装nginx rpm包
1 在nginx官方网站下载一个rpm包,下载地址是:http://nginx.org/en/download.html wget http://nginx.org/packages/centos/6 ...
- 超详细Linux -- nginx负载均衡配置
Nginx 负载均衡应用配置 Nginx实现负载均衡的方式 1.轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,后端服务器宕机时,能被自动删除,且请求不会受影响. 2.weight权重 指 ...
- linux nginx部署项目配置域名
一.把项目打包(jar) 二.把jar包通过xshell上传 三.编辑nginx.conf文件,配置域名,每配置一个域名就复制一份里面的server 1 代表你所要配置的域名 2 代表你项目浏览器访问 ...
- linux nginx 安装 及 配置
一:下载nginx(下载可能会有点慢,耐心等待) 官网地址:http://nginx.org/en/download.html 二:解压并安装 安装依赖(安装过的跳过) yum -y install ...
- Nginx Sticky的使用及踩过的坑(nginx-sticky-module)
#什么是Sticky?# 为了理解Sticky的工作原理,我们可以先考虑一个问题:负载均衡怎么做? DNS解析,在域名解析时分配给不同的服务器IP: IP Hash,根据客户端的IP,将请求分配到不同 ...
- Unity2020打包安卓时配置环境踩过的坑(JDKSDKNDKGradle详解)
之前的打包环境都是吃现成的, 这次新公司需要自己配置,踩了坑记录一下,以防之后遗忘. 如果是 用Hub管理的项目 可以通过Hub 去下载 安装内置的Open JDK ,SDK 等很方便也稳定. 没有用 ...
最新文章
- 设计模式在工作中的实践
- PHP mac xdebug配置
- mysql-sql命令
- C++中动态定义一维数组,二维数组,三维数组的方法
- [******] 链表问题:将单向链表按某值划分成左边小、中间相等、右边大的形式...
- NeurIPS'21|MixSeq:从微观数据到宏观时序预测的桥梁
- java蓝牙开发_Android蓝牙开发全面总结
- 手机怎么打开psd文件(实用方法)
- [深度学习] 自然语言处理 ----- Attention机制中的Q,K,V介绍
- 采用卡尔曼滤波计算电池SOC
- JavaWeb——动态 web 资源开发
- 八爪鱼怎样导入mysql_八爪鱼采集数据导出sqlserver数据库(手动、自动两种方式) - 八爪鱼采集器...
- 银行业智能运维的探索与实践
- Python学习知识清单(基础+进阶)
- 计算机内存条多大容量,电脑内存条到底怎么选?选多大容量最合适?
- 06-08 无人机怎么拍摄VR全境图?
- 零基础学C语言(C语言入门)
- mysql 全角空格_数据库使用技巧――SQL全角与半角切换_MySQL
- 英特尔前高管的IC职业生涯分享(文字版)写给想进入IC设计的同学们!
- opencv c++ 图像噪声及去噪