websocket 遇上nginx负载均衡时 error 400 1C

项目中有一个用websocket实现的即时聊天服务,然后使用nginx做负载均衡服务器之后,websocket便再也无法建立连接,连接报400 bad request ,websocket 和nginx都只是入门,不太懂,求大萝卜指导!!!

0

2个回答

nginx负载均衡时 error 400 1C
nginx负载均衡bad requestwebsocket
项目中有一个用websocket实现的即时聊天服务,然后使用nginx做负载均衡服务器之后,websocket便再也无法建立连接,连接报400 bad request ,websocket 和nginx都只是入门,不太懂,求大萝卜指导!!!

0

加配置试试
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
加到 location 里面

    location / {
      proxy_pass http://websocket;
      proxy_pass_header Date;
      proxy_pass_header Server;
      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_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
    }
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
websocket 连通 握手失败 400错误 nginx代理
原因可能是:1、web.xml中未加映射<servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param&g...
nginx 反向代理,400 bad request 解决记录(websocket)
上篇文章提到了实现nginx的反向代理。 nginx.conf中的配置如下:location / {        proxy_http_version                1.1;        proxy_set_header Host             $host;        proxy_set_header X-Real-IP        $remote_addr; ...
Nginx实现websocket负载均衡
目录rnNginx实现websocket负载均衡...rn1rn软件版本:...rn1rn实验过程:...rn1rnNginx参考代码(nginx.conf):1rn参考资料:...rn3rn注意事项:...rn3rn rnNginx实现websocket负载均衡rn软件版本:rn实验平台:windowsrnNginx版本:nginx-1.12.2rnTomcat: apache-tomcat-8
nginx 反向代理报400错误与Host关系
如果后端真是的服务器设置有类似防盗链或者根据http请求头中的host字段来进行路由或判断功能的话,如果反向代理层的nginx不重写请求头中的host字段,将会导致请求失败,报400错误,解决办法:location中设置proxy_set_header Host $http_host;将头信息返回服务器...
初学websocket错误总结
1.404报错:错误:url写错了,正确的写法是ws://localhost:8080/+项目名
nginx下websocket报错解决方法
在eginx中server里加上nnnproxy_set_header X-Real-IP $remote_addr;nproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;nproxy_set_header Host $http_host;nproxy_set_header X-NginX-Proxy true;nnproxy_s...
web集群部署(实例大于等于2个),nginx作为中间件时候,后端websocket有时候消息无法传递给客户端
最近公司有一个需求:新订单需要及时提醒到后台管理者,基于这一点我决定采用Websocket来实现。rn当我把项目部署到生产环境的时候发现一个问题:rn建立了Websocket连接后,每当有新的订单发起,客户端都会受到新订单提醒。这时候就遇到一个问题,新订单进来之后 客户端有时候会有提醒 有时候却没有提醒,并且 Websocket 状态一直是开启。rnrnrn经过一系列排查发现,我的web项目做了
Django问题解决:域名访问出现『bad request』解决
问题阐述当访问自己网站的域名:kohang.com时候没有问题,但是访问www.kohang.com时候,出现”bad requests”.经过反复设置域名解析之后,问题依然如故; nNginx 的 conf 文件直接设置的 IP;问题解决网站部署过程中,涉及到的配置文件有: n* Nginx 配置文件, 没有涉及到域名. 排除; n* uWSGI 配置文件, 同上; n* Django 的项目配置
使用loadrunner12录制websocket协议的问题
使用loadrunner12录制websocket协议,目前能录制下来,如下代码,但是需要关联sessionid,不知道使用什么关联函数,试了好几个都不好使rnrnrnAction()rn{rnrn    web_url("index.html", rn        "URL=http://172.16.161.72:8090/iwc/index.html?xeguid=B3845F0D5C15
websocket 协议 error 和 close 事件的一处细节
往往事件监听都有close和error2个事件,我们都需要处理吗? 经过我的实践,发现其实不用处理error事件,因为客户端的websocket连接 服务器的ws服务器模块, 当发生close之类的。nn不管是:1.服务器挂掉,客户端被迫掉线 2.客户端网络断开,最终都会触发 close事件。 因此在这里给客户端提示:你断开连接了就行了。 而不用像之前的,在error就断开连接,没必要,搞得代...
nginx配置 +负载均衡+https协议
nginx配置 +负载均衡+https协议 完整的配置以及nginx 启动 停止 重新加载
解决socket负载均衡集群方案和代码实现
有一段时间,在考虑下socket 之间集群 可以在Nginx 下可以 但是不同服务器之间怎么通讯呢 后来自己也想可不可以用什么东西或者中间件来通讯 ,后来在百度之下 发现果然就是按照我所想的 ,在网上看了一个方案,架构如下:nnnn说一下这个方案他们之间的作用nnredis : 存取用户和服务器的关系,如果A想发一条数据,是发给B ,这时A发起一个mq订阅模式推送的数据 ,然后B收到数据处理好 ,...
nginx支持websocket及websocket部分原理介绍
nginx支持websocket及websocket部分原理介绍最近ipc通过websocket与server进行通行,经过无法通过nginx进行反向代理,只有直连nodejs端口。而且部署到阿里云用了slb之后同样存在该问题。因为部署为了规避风险不宜暴露nodejs端口,所以尝试解决这个问题。1.本地nginx 支持websocket在实际的生产环境中,要求多个WebSocket服务器必须具有高性
Bmob插入数据显示Error400错误的原因剖析
解决方法:n增加一个文件:BmobApplication.javanpackage com.example.foolishfan.user_v10;nnimport android.app.Application;nnimport cn.bmob.v3.Bmob;nn/**n * @author zhangchaozhoun */npublic class BmobApplication exte...
mac下编译mosquitto支持websockets遇到的坑
n n n 编译编译真是浪费生命!nmosquitto真是坑,官方对于编译开启websockets支持只有短短一句话:nnlibwebsockets (libwebsockets-dev) - enable with make WITH_WEBSOCKETS=yesnn但其实你先要安装libwebsockets,简单一点使用:nbrew install libwebs...
Netty协议开发(WebSocket)
WebSocket是H5开始提供的一种游览器与服务器间进行双全工通信的网络技术,WebSocket通信协议与2011年被IETF定义为标准RFC6455,WebSocket API被W3c定义为标准。nn其特点如下:nn单一的TCP连接,采用双全工模式通信;n 对代理、防火墙和路由器透明;n 无头部信息、Cookie和身份验证;n 无安全开销;n 通过“ping/pong”帧保持链路激活;n 服务...
地图打印出现400错误,是由于ArcGIS Server发布服务命名的Bug造成
 nn       最近在利用arcgis api for js开发一个打印的功能,起初为了服务名称能规范点,发布的服务都是带后缀MapServer,如在这个项目上命名为GridMapServer,就会出现地图打印功能出现400错误,只要重新起一个名字就行了,希望能帮到大家。这个错误花了几天的时间排查最后才发现,神坑......nn"Error executing tool.: Layer "gr...
Tengine 添加配置支持Websocket
后端使用Netty搭建Websocket服务器,前端可以用Nginx代理Websocket流量。并且配置SSL,Client与Nginx通过SSL加密传输,Nginx卸载SSL, Nginx与Netty内网明文传输,下面给出关键配置。nnnnn //普通Web代理n upstream favtomcat {n server 192.168.80.112:80;n ...
WebSocket实现在线聊天及常见BUG解决[图文详解]
前言nn       最近在开发时碰到这样一个需求:用户浏览我们的官网时,存在一个问题反馈的入口,当管理员在PC端的时候可以直接回复,当管理员不在的时候,进行微信推送,管理员在微信端和客户进行一对一的在线问题解答,由于这个功能块的收益客户较小,最终技术选型采用WebSocket实现在线聊天,同时监控管理员是否在线,以便进行微信推送。nn正文nn后台源码n 前台源码n 成果展示n 常见BUG及解决方...
Websocket————错误总结
n n 
n websocketn一、需要注意的是,js建立连接处完整的js代码要执行完成退出后才会真正发起建立连接请求,如果在此之前发送消息则会报错如下:nnInvalidStateError: An attempt was made to use an object that is not, or is no longer, usablenn解决办法:在websocket已...
WebSocket(1) 简单介绍及握手连接
n n n 一、WebSocket的简单介绍nWebSocket是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术。依靠这种技术可以实现客户端和服务器端的长连接,双向实时通信。n双工(duplex)是指两台通讯设备之间,允许有双向的资料传输。全双工的是指,允许两台设备间同时进行双向资料传输。这是相对于半双工来说的,半双工不能同时进行双向传输。HTTP是...
django项目使用dwebsocket案例
此为dwebsocket在django项目中的简单结合使用。django后端给web前端发送数据,前端可以持续接收
Nginx实现websocket代理的方式
Nginx实现websocket代理与负载均衡
QWebSocket连接状态码
ConstantrnValuernDescriptionrnrnrnQAbstractSocket::UnconnectedStatern0rnThe socket is not connected.rnrnrnQAbstractSocket::HostLookupStatern1rnThe socket is performing a host name lookup.rnrnrnQAbstra
nginx 解决400 bad request 的方法(转载)
rnnginx的400错误比较难查找原因,因为此错误并不是每次都会出现的,另外,出现错误的时候,通常在浏览器和日志里看不到任何有关提示。 经长时间观察和大量试验查明,此乃request header过大所引起,request过大,通常是由于cookie中写入了较大的值所引起。 所幸在nginx中是有办法解决这个问题: 在nginx.conf中,将client_header_buffer_size和...
nginx负载均衡下Socket共享问题
1.今天项目中遇到一个问题nginx下两台服务器作为socket的服务端,当客户端创建与服务端连接(只是与其中一台服务器),那么问题来了,如果页面与另外一台没有创建连接的服务器交互,如何实现socket通信呢。rn2.我的socket连接被我存放在静态的ConcurrentHashMap中,只能在本服务器中取到(我在Controller中取)1号服务器,如果页面访问被分配到另外一台服务器2号服务器,...
nginx代理WebSocket时自动断开连接
前阵子小编刚做好了一个websocket项目,可以实现实时聊天,但是最近两天小编突然发现了一个问题,由于我这个项目放到了nginx上做了反向代理,websocket协议连接上后隔一段时间之后会自动断开连接(nginx上一分钟自动快开,本地用外网穿透natapp五分钟自动断开)。刚开始小编并不知道有这么一回事,后来经过各种网上翻找才知道,接下来给大家写出俩解决方法~nn1、nginx配置反向代理时会...
Django2 dwebsocket 基于web消息传递 例子代码
Django2 dwebsocket 基于web消息传递 例子代码 环境: python 3.6 Django 2.1 dwebsocket 从下面地址下载并安装 dwebsocket https://github.com/duanhongyi/dwebsocket dwebsocket 目录下执行安装命令: python setup.py install
nodejs websocket 事件中传递的参数不对导致nodejs崩溃
今天在写subscribe的事件时,发现nodejs端总是上报callback不是function,在调用callback时程序崩溃,一直耽误了很长时间。rnnodejs的服务端的代码是rnrnsocket.on('subscribe',rnfunction (options, sdp, callback) {rnrn后来测试发现,原来是ios端发送的subscribe事件携带的参数只有optio
个人Websocket学习使用总结
主要参考了这篇文章:https://www.cnblogs.com/freud/p/8397934.html1.客户端var websocket = null;nvar host = document.location.host;nvar userid = "${user.id}"; // 获得当前登录人员的idn//判断当前浏览器是否支持WebSocket nif ('WebSocket' in...
HTML5 WebSocket实例(一)
1.实例1:nHTMLnnnnJSnvar url = 'ws://localhost:55373/upload1.ashx';nvar ws = null;n//打开链接nfunction openClick() {n ws = new WebSocket(url);n ws.onopen = function (e) {n console.log('链接打开')
学习SSM框架时前端jsp页面遇见了http400的错误
400的错误码说明前后端input格式不一致导致的,找了很久发现是一个日期输入框的格式是自定义的格式类型而后台没有接收此类型的日期格式转换器。于是到后台添加日期格式转换器开启自动加载转换服务<mvc:annotation-driven conversion-service="conversionService"/>添加自定义的转换器 <bean id="conversion...
关于七牛云上传400的错误
n n n 上传图片到七牛云存储 Error Domain=QiniuErrorDomain Code=400会有提示让你更换地区, 可是一脸懵逼不知道哪里更改地区是吧nnnnn这是七牛云的podsdd而文件夹n修改第一个zone0 改成图中的样子就行了, 如果你选择的是华北的话, 如果你选择的是华南地区的bucket, 你就要把z2改成z1最后重新运行工程吧, 就能...
使用Nginx对Websocket进行反向代理
使用Nginx对Websocket进行反向代理背景Nginx配置示例Vue配置示例n背景n在Vue项目中,开发websocket时,将IP和端口号固定,或者根据NODE_ENV判断环境,修改IP和端口,相当不可取。当环境地址变更时,就需要重新打包,再发布版本,很是麻烦。使用Nginx对WebSocket进行反向代理,就会解决这一痛点问题。nNginx配置示例n<html>n<bo...
利用nginx实现负载均衡 | 哈希算法,sticky模块实现session粘滞
一,普通的负载均衡nn1,启动nginx服务器nn之前已经把/usr/local/nginx/sbin/nginx链接到/sbin下,所以直接使用nginx命令打开nn2,修改主配置文件/usr/local/nginx/conf/nginx.confnnuser  nginx nginx; #原来的nobody设置为nginx和nginx组nn# 需要创建用户nn[root@server4 con...
http 400错误解决
产品上线后,在试单过程中,出现一个硬bug,我们系统接入的是百度系统,出现一个http 400错误,这硬bug难倒10几个英雄汉。接下来描述下问题,及我们解决问题的方法及教训:rn我们的系统与百度系统是专线访问通道,在上线前肯定确保应用系统是没问题的。双方的访问时基于http协议,接口对接。rn访问流程是:百度应用发出一条命令,经过百度网关,然后到达我们的负载,然后是网关,最后转发到应用系统。rn
通过Apache访问WebSocket的配置方法
通过Apache访问WebSocket的配置方法n在apache的目录下找到conf/httpd.conf 文件,用可编辑工具打开n在最下方添加n<Location /sq1/websocket/chat>n ProxyPass ws://127.0.0.1:8080/sq1/websocket/chatn ProxyPassReverse wss://127.0.0.1:8080...
WebSocket的SSL认证失败问题记录
一、问题背景n线上服务器程序使用的是swoole框架,由主进程直接监听8008端口,然后在使用过程中概率性会出现连接失败的情况,观察报错主要为nWebSocket connection to 'wss://XXX:8008/' failed: Error in connection establishment: net::ERR_SSL_PROTOCOL_ERRORn二、排查原因n在网上查找资料的...
状态码: 400 / Bad Request解决方案
 nn今天做项目的时候,需要向服务器接口 传递 json参数nn nn请求 URL: http://localhost:8080/zjmarket55/gridturnpage?action=refresh&pk=-1&condition=aCondition%3D{"REQUEST_NAME":"1"}%26cond1%3D%257b%2522REQUEST_NAME%2522:...
【完整教程】nginx反向代理wss,实现不修改服务器端websocket代码加密通讯请求
最近在用go语言的leaf框架开发H5游戏的服务器端,用websocket的方式进行服务器与客户端之间的通讯。然后之前都是本地websocket开发,要部署到facebook平台的时候,平台要求与第三方服务器通讯需要有ssl证书。微信小程序同理。nn所以决定用nginx进行反向代理,将websockets(wss)请求转发到原来服务器的websocket请求。这样可以不用修改服务器端的代码,同时后...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 学习java基础语法时 学习java时