资讯专栏INFORMATION COLUMN

Note: 基本的 WebSocket 的 Nginx 配置

tinylcy / 2510人阅读

摘要:觉得很容易用到从开始支持现在已经是了相对看过例子发现配置其实比较简单先用模块写一个简单的服务器然后修改添加比如指向然后是配置然后从浏览器控制台尝试链接或者通过的写法先是通过建立连接然后通过状态码表示切换协议在配置里是不清楚具体里边发生了什

觉得很容易用到.. Nginx 从 1.3 开始支持 WebSocket, 现在已经是 1.4.4 了
相对 HTTP, 看过例子发现配置其实比较简单,

先用 ws 模块写一个简单的 WebSocket 服务器:

Server = require("ws").Server

wss = new Server port: 3000

wss.on "connection", (ws) ->
  console.log "a connection"
  ws.send "started"

console.log "server started"

然后修改 Hosts, 添加, 比如 ws.repo, 指向 127.0.0.1
然后是 Nginx 配置:

server {
  listen 80;
  server_name ws.repo;

  location / {
    proxy_pass http://127.0.0.1:3000/;
    proxy_redirect off;

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
  }
}

Reload Nginx 然后从浏览器控制台尝试链接, OK

new WebSocket("ws://ws.repo/")

或者通过 Upstream 的写法:

upstream ws_server {
  server 127.0.0.1:3000;
}

server {
  listen 80;
  server_name ws.repo;

  location / {
    proxy_pass http://ws_server/;
    proxy_redirect off;

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
  }
}

WebSocket 先是通过 HTTP 建立连接,
然后通过 101 状态码, 表示切换协议,, 在配置里是 Upgrade
不清楚具体里边发生了什么... 求指点...

具体 HTTP Header 上的参数参考 SegmengFault 上的文章:
http://segmentfault.com/a/1190000000382788

参考的相关文章:
nginx and WebSockets
WebSocket connection failed with nginx, nodejs and socket.io
Proxying WebSockets with Nginx
zhangkaitao/websocket-protocol
细说WebSocket - Node篇


返回博客首页: http://blog.tiye.me

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/39064.html

相关文章

  • websocket pc端调试成功,手机端不可通信

    摘要:反向代理简单解释,用户访问页面,由转接,转到服务器端的内部开放端口不对外。 刚接触的一个涉及实时通信的h5项目,前期开发没遇到什么大问题,在pc端chrome调试都一切正常,用手机访问页面时,却出现了一个问题,node启动服务的命令行界面并没有打印出用户访问页面的信息,也就是说手机端的页面没有连接到websocket服务,且本地计算机和手机是连的是同一个wifi,也就是说网络环境相同,...

    lovXin 评论0 收藏0
  • WebSocket协议 8 问

    摘要:是个不太干净协议。目前此协议的受众的也不仅仅是开发者。借助协议进行握手,握手成功后,就会变身为通道,从此与不再相见。如此操作,可以尽量避免普通请求被误认为协议。它包含四个事件和两个动作发送和关闭。有类似协议的帧格式,在此不做过多解释。 WebSocket是一种比较新的协议,它是伴随着html5规范而生的,虽然还比较年轻,但大多主流浏览器都已经支持。它使用方面、应用广泛,已经渗透到前后端...

    jaysun 评论0 收藏0

发表评论

0条评论

tinylcy

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<