apache 搭建wss服务流程解析

使用welive 搭建在线客服系统,过程中根据教程总是遇到各种的 握手错误代码,后来想了想,如果能够了解这个过程的原理,就可以完全可以避免


流程

   1.如果搭建好ssl证书,那么通过https访问域名时是走443端口的,在该域名下,前端建立websocket 是需要使用wss://访问的。但是用PHP在服务器搭建websocket只能由ws://访问.此时,就需要使用apache 的代理功能

   2.开启apache的代理,需要开启apache的几个mod_proxy_*模块,对于一般的框架项目中,可以在443端口下的虚拟主机中创建代理格式为域名/wss(或者/+任何内容),将这个新增的转发到ws://  我们php建立的websocket服务的对应端口下。

3.对于welive,需要额外注意的是,项目在443端口下,而前端请求一般是到8430端口端口,因为一个端口不能同时使用ws和wss协议,所以,就需要新增一个端口来为后台PHP的websocket 服务使用。而新增端口和8430之间,就需要一个转发的机制

4.实际操作中,apache的httpd-ssl.conf中,我们listen 8430,然后创建一个虚拟主机,然后增加ssl证书和设置,这些可以参照443端口的设置,然后增加端口转发的规则

5.测试的时候,需要测试ws:// 下php创建的websocket服务,和wss:// 下创建的8430端口的服务。前者是检查php后台逻辑,后者是检查apache 的代理配置。

6.需要注意的是

   1.apache 转发设置中,转发到php端口写法,最好写成 ws://域名+端口 形式,不要抄网上的写成0.0.0.0或者localhost或者127.0.0.1。因为如果用的是vpn 主机名是不一样的,很可能就映射不到本地的端口。

   2.如果提示  address already in use, 直接netstat -tunlp|grep ws的端口号.然后kill掉即可。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  •   今天是2018年04月21日。   过去的这一个多月里,我的工(开)作(发)任务转战回了游戏。短短的一个月里,...
    happyJared阅读 8,411评论 3 27
  • 战斗,是每一个血性男儿,热血分子追捧的对象,是他们热血翻涌的原动力。勇夺第一,是每一个小人物成就大人物的捷径。 之...
    虚无0阅读 217评论 0 1
  • 通透,清新,这样的一抹绿色,有没有给劳累了一天的你带来些清爽的感觉呢?关心它的朋友看见第一眼就会问“这盆绿...
    小妖贝儿阅读 967评论 0 0
  • 房地产销售技巧: 一、客户经常约、反复约,会“死”吗? 紧跟 坚持不懈地电约客户,了解其动态,找出影响购买的真正动...
    职场的风云阅读 559评论 0 0
  • 前天从福州回来,娜说了两件事。第一件事,她的作息规律和习惯。中午她是要休息,所以手机是静音,不会接电话。另外,她有...
    江南无雪10阅读 117评论 0 0