nginx websocket 代理
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配置文件中。
nginx websocket 代理相关推荐
- 【详细说明】nginx反向代理wss websocket
[Nginx那些事]系列 [Nginx那些事]nginx 安装及常用指令 [Nginx那些事]Nginx 配置文件说明 [Nginx那些事]nginx原理解析 [Nginx那些事]nginx配置实例( ...
- 【完整教程】nginx反向代理wss,实现不修改服务器端websocket代码加密通讯请求
最近在用go语言的leaf框架开发H5游戏的服务器端,用websocket的方式进行服务器与客户端之间的通讯.然后之前都是本地websocket开发,要部署到facebook平台的时候,平台要求与第三 ...
- nginx反向代理websocket 小坑
nginx 反向代理websocket 的小坑 现象 第一坑 第二坑 小结 现象 因为小程序,有域名有个websocket 需要做个反向代理,按照需求测试和生产都给做了反向代理. 给他们配置过测试环境 ...
- Nginx反向代理WebSocket服务连接报错:WebSocket connection to “wssxxxxxx“ failed
最近使用 node.js 搭建 WebSocket 服务,在本地测试 connection 都是正常,于是部署到 Linux 服务上,需要用 Nginx 来反向代理 WebSocket 服务.浏览器控 ...
- windows Nginx WebSocket ws协议反向代理
Nginx WebSocket ws协议反向代理 正常连接WebSocket 使用Nginx反向代理 正常连接WebSocket 未使用nginx反向代理 var ws = new WebSocket ...
- nginx解决浏览器跨域问题_前端通过Nginx反向代理解决跨域问题
在前面写的一篇文章SpringMVC解决跨域问题,我们探讨了什么是跨域问题以及SpringMVC怎么解决跨域问题,解决方式主要有如下三种方式: JSONP CORS WebSocket 可是这几种方式 ...
- nginx反向代理,隐藏服务IP
1.配置nginx.conf添加如下代理设置: proxy_connect_timeout 300s; proxy_read_timeout 300s; proxy_send_timeout 300s ...
- nginx 反向代理 常见错误处理
由内外网分离,只有某台服务的某几个端口是外网可以访问,若需要从外网访问我内网的搭建的服务,此时我们需要借助nginx反向代理功能,nginx作为反向代理服务,通过外网指定端口透射到内网,并代理内网的服 ...
- nginx反向代理原理及配置详解
nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行网站的发布处理,另外 ...
最新文章
- 7个值得推荐的优质软件,让人忍不住体验!
- pt-online-schema-change中update触发器的bug
- C#二进制文件编程实践
- VS 中配置使用Visual SVN系列 一:SVN Server下载和安装
- kafka单机安装(版本kafka_2.11-2.2.0.tgz)
- ITK:创建一个高斯分布
- 与传统的计算机硬件系统相比,计算机一级名词解释
- 安卓系统应用启动流程分析
- c语言课设报告时钟vc环境,C语言课程设计报告模拟时钟转动程序.doc
- 从0到1,手把手教你如何使用哈工大NLP工具——PyLTP
- 【源码】otter工程结构
- SpringBoot整合Shiro实现权限管理,经典实战教程
- OpenSCAD设计的3D打印智能路由器盒子(V1.1)
- 通过isapi协议抓拍图片
- 微信文件没下载过期了
- 白杨SEO:淘宝客、淘客是什么、赚钱方式及怎么入门和推广引流?
- 小程序全局拖动悬浮球插件
- C# 操作Word书签(二)——读取、替换Word书签
- VS code编辑器出现open a floder or workspace... (File -> Open Folder)错误
- 山东计算机技能高考试题,(完整版)2016山东春季高考技能考试-信息技术类专业试题...
热门文章
- 如何高效学习web_使用高效的Web工具改善您的业务
- 更换map的遍历顺序优先级_树的级别顺序遍历或宽度优先遍历
- Android嵌套式ViewPager,垂直ViewPager
- python3 super_Python super()– Python 3 super()
- [转]深入理解C/C++ [Deep C (and C++)]
- 简述线程、程序、进程的基本概念。以及他们之间关系是什么?
- Mac下Intellij IDea发布JavaWeb项目 详解一 (1、新建JavaEE Project并进行相应设置 2、配置tomcat)...
- swoole 安装测试
- Django实战(6):对比RoR和Django的模板系统
- 程序员,请远离拖延症!