Jetty|Jetty websocket使用nginx 解决wss连接失败问题
??在使用jetty的websocket中遇到了一些问题,因为使用的是微信打开的页面,所以必须使用https和wss协议打开连接,websocket使用wss时连不上服务端的websocket,查阅了一些资料后使用了nginx去反向代理这个请求,解决了这个问题。
需要设置以下几个步骤:
- 1.Nignx SSL证书,并设置强制跳转Https访问(略)
- 2.在前端将ws协议请求更改为wss协议请求
【Jetty|Jetty websocket使用nginx 解决wss连接失败问题】wss://域名或者IP,根据实际情况填写/websocket/jetty启动时,websocket所在的webapplication内部对应的servlet
文章图片
部分代码
??如上图所示,在webSocket中创建好了之后,在ContextHandler(上下文句柄对象)添加该句柄对应的Path,如果不需要使用ssl加密访问,则使用ws访问即可,访问
ws://你的域名:jetty设置的监听端口/event/
- 3.在nginx中设置websocket代理
配置代理模块upstream wss_svr{
?服务端ip:jetty启动时,websocket监听的端口;
}
location /websocket/{
?proxy_pass http://wss_svr;
?proxy_set_header X-Real-IP $remote_addr;
?proxy_set_header X-Forward-For $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";
}
推荐阅读
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- iOS中的Block
- Linux下面如何查看tomcat已经使用多少线程
- 使用composer自动加载类文件
- android|android studio中ndk的使用
- 使用协程爬取网页,计算网页数据大小