websocket在线测试:http://www.blue-zero.com/WebSocket/,可以使用这个工具测试:

需求:大数据项目开开放2个端口8080和7398,一个走http协议,一个走tcp,也就是访问socket。当client访问这个项目socket会把client的信息抛出到web页面。现在要用nginx做代理,把这2个端口映射到内网,提供内网访问。

nginx代理http协议当然很好解决,

server {

listen 80;

server_name  z.exam.com;

access_log  /var/log/nginx/rdp.elenet.me_access.log main;

error_log /var/log/nginx/rdp.elenet.me_error.log;

location / {

proxy_http_version 1.1;

proxy_set_header Connection "";

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 http_502 http_504 http_404 http_503 error timeout invalid_header;

proxy_pass http://11.1.250.241:8080;

}

error_page 404 /404.html;

location = /40x.html {

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

}

}

tcp端口的代理用nginx,上面这段肯定是不行的。nginx官网参考文档:http://nginx.org/en/docs/http/websocket.html

其实只需要在nginx的http块和server分别加几行就可以了:

http块加以下几行:

map $http_upgrade $connection_upgrade {

default upgrade;

'' close;

}

server块加以下2行:

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection $connection_upgrade;

配置如下,http块文件较大,就不展示了:

server {

listen 7398;

server_name  z.exam.com;

access_log  /var/log/nginx/rdp.elenet.me_access.log main;

error_log /var/log/nginx/rdp.elenet.me_error.log;

location / {

proxy_http_version 1.1;

proxy_set_header Connection "";

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 http_502 http_504 http_404 http_503 error timeout invalid_header;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection "upgrade";

proxy_pass http://11.1.250.241:7398;

}

error_page 404 /404.html;

location = /40x.html {

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

}

}

以上配置可以贴在同一个conf配置文件中。

本文转自青衫解衣 51CTO博客,原文链接:http://blog.51cto.com/215687833/1854040

nginx websocket 代理相关推荐

  1. 【详细说明】nginx反向代理wss websocket

    [Nginx那些事]系列 [Nginx那些事]nginx 安装及常用指令 [Nginx那些事]Nginx 配置文件说明 [Nginx那些事]nginx原理解析 [Nginx那些事]nginx配置实例( ...

  2. 【完整教程】nginx反向代理wss,实现不修改服务器端websocket代码加密通讯请求

    最近在用go语言的leaf框架开发H5游戏的服务器端,用websocket的方式进行服务器与客户端之间的通讯.然后之前都是本地websocket开发,要部署到facebook平台的时候,平台要求与第三 ...

  3. nginx反向代理websocket 小坑

    nginx 反向代理websocket 的小坑 现象 第一坑 第二坑 小结 现象 因为小程序,有域名有个websocket 需要做个反向代理,按照需求测试和生产都给做了反向代理. 给他们配置过测试环境 ...

  4. Nginx反向代理WebSocket服务连接报错:WebSocket connection to “wssxxxxxx“ failed

    最近使用 node.js 搭建 WebSocket 服务,在本地测试 connection 都是正常,于是部署到 Linux 服务上,需要用 Nginx 来反向代理 WebSocket 服务.浏览器控 ...

  5. windows Nginx WebSocket ws协议反向代理

    Nginx WebSocket ws协议反向代理 正常连接WebSocket 使用Nginx反向代理 正常连接WebSocket 未使用nginx反向代理 var ws = new WebSocket ...

  6. nginx解决浏览器跨域问题_前端通过Nginx反向代理解决跨域问题

    在前面写的一篇文章SpringMVC解决跨域问题,我们探讨了什么是跨域问题以及SpringMVC怎么解决跨域问题,解决方式主要有如下三种方式: JSONP CORS WebSocket 可是这几种方式 ...

  7. nginx反向代理,隐藏服务IP

    1.配置nginx.conf添加如下代理设置: proxy_connect_timeout 300s; proxy_read_timeout 300s; proxy_send_timeout 300s ...

  8. nginx 反向代理 常见错误处理

    由内外网分离,只有某台服务的某几个端口是外网可以访问,若需要从外网访问我内网的搭建的服务,此时我们需要借助nginx反向代理功能,nginx作为反向代理服务,通过外网指定端口透射到内网,并代理内网的服 ...

  9. nginx反向代理原理及配置详解

    nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行网站的发布处理,另外 ...

最新文章

  1. 7个值得推荐的优质软件,让人忍不住体验!
  2. pt-online-schema-change中update触发器的bug
  3. C#二进制文件编程实践
  4. VS 中配置使用Visual SVN系列 一:SVN Server下载和安装
  5. kafka单机安装(版本kafka_2.11-2.2.0.tgz)
  6. ITK:创建一个高斯分布
  7. 与传统的计算机硬件系统相比,计算机一级名词解释
  8. 安卓系统应用启动流程分析
  9. c语言课设报告时钟vc环境,C语言课程设计报告模拟时钟转动程序.doc
  10. 从0到1,手把手教你如何使用哈工大NLP工具——PyLTP
  11. 【源码】otter工程结构
  12. SpringBoot整合Shiro实现权限管理,经典实战教程
  13. OpenSCAD设计的3D打印智能路由器盒子(V1.1)
  14. 通过isapi协议抓拍图片
  15. 微信文件没下载过期了
  16. 白杨SEO:淘宝客、淘客是什么、赚钱方式及怎么入门和推广引流?
  17. 小程序全局拖动悬浮球插件
  18. C# 操作Word书签(二)——读取、替换Word书签
  19. VS code编辑器出现open a floder or workspace... (File -> Open Folder)错误
  20. 山东计算机技能高考试题,(完整版)2016山东春季高考技能考试-信息技术类专业试题...

热门文章

  1. 如何高效学习web_使用高效的Web工具改善您的业务
  2. 更换map的遍历顺序优先级_树的级别顺序遍历或宽度优先遍历
  3. Android嵌套式ViewPager,垂直ViewPager
  4. python3 super_Python super()– Python 3 super()
  5. [转]深入理解C/C++ [Deep C (and C++)]
  6. 简述线程、程序、进程的基本概念。以及他们之间关系是什么?
  7. Mac下Intellij IDea发布JavaWeb项目 详解一 (1、新建JavaEE Project并进行相应设置 2、配置tomcat)...
  8. swoole 安装测试
  9. Django实战(6):对比RoR和Django的模板系统
  10. 程序员,请远离拖延症!