当前位置: 首页 > news >正文

nginx代理webSocket链接响应403

一、场景

使用nginx代理webSocket链接,nginx响应403

1、nginx访问日志响应403

[18/Aug/2023:09:56:36 +0800] "GET /FS_WEB_ASS/webim_api/socket/message HTTP/1.1" 403 5 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"

2、浏览器链接失败

在这里插入图片描述


二、nginx配置

	## 云ASS集群upstream cloud_ass {#ip_hash;server 192.168.1.233:8087;server 192.168.1.243:8087;}server {listen       8600;server_name  localhost;location / {root   html;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}## 云ASSlocation ~* /FS_WEB_ASS/* {proxy_pass http://cloud_ass;# WebScoket Supportproxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_set_header Origin xxx;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Host $http_host;proxy_set_header X-NginX-Proxy true;break;}}

三、原因

proxy_set_header Origin xxx导致的

Origin xxx的具体作用不明确,有知道的欢迎留言


四、解决

方式1:proxy_set_header Origin xxx改为proxy_set_header Origin ""

最终配置如下

	## 云ASS集群upstream cloud_ass {#ip_hash;server 192.168.1.233:8087;server 192.168.1.243:8087;}server {listen       8600;server_name  localhost;location / {root   html;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}## 云ASSlocation ~* /FS_WEB_ASS/* {proxy_pass http://cloud_ass;# WebScoket Supportproxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";# 就改了这一行proxy_set_header Origin "";proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Host $http_host;proxy_set_header X-NginX-Proxy true;break;}}

方式2:修改代码

//任何ip都可以使用websocket环境
webSocketHandlerRegistry.addHandler(WebSocketHandler的实现类(),"websocket的访问地址").addInterceptors(new HandshakeInterceptor的实现类()).setAllowedOrigins("*");//不可以使用websocket环境
webSocketHandlerRegistry.addHandler(WebSocketHandler的实现类(),"websocket的访问地址").addInterceptors(new HandshakeInterceptor的实现类()).withSockJS();
http://www.lryc.cn/news/133644.html

相关文章:

  • websocker无法注入依赖
  • 如何进行无线网络渗透测试?
  • 【Python机器学习】实验15 将Lenet5应用于Cifar10数据集(PyTorch实现)
  • Jeep车型数据源:提供Jeep品牌车系、车型、价格、配置等信息
  • clickhouse-备份恢复
  • (2018,ProGAN)渐进式发展 GAN 以提高质量、稳定性和变化
  • 负载均衡下的 WebShell 连接
  • Postman的高级用法—Runner的使用​
  • spring如何进行依赖注入,通过set方法把Dao注入到serves
  • Python使用图像处理库PIL(Python Imaging Library)和NumPy库来比较两副图像的相似度
  • clickhouse扩缩容
  • 动漫3D虚拟人物制作为企业数字化转型提供强大动力
  • 数据同步工具比较:选择适合您业务需求的解决方案
  • Python中数据结构列表详解
  • 引领行业高质量发展|云畅科技参编《低代码开发平台创新发展路线图(2023)》
  • Ubuntu22.04编译Nginx源码
  • 视频上传,限制时长,获取视频时长
  • Open3D 进阶(5)变分贝叶斯高斯混合点云聚类
  • 5、css学习5(链接、列表)
  • Synchronized与Java线程的关系
  • 使用本地电脑搭建可以远程访问的SFTP服务器
  • 批量修改文件名怎么操作?
  • 【LeetCode】538.把二叉搜索树转换为累加树
  • linux 安装 kibana
  • STM32入门——IIC通讯
  • DTC 19服务学习2
  • 【腾讯云 TDSQL-C Serverless 产品体验】基于腾讯云轻量服务器以及 TDSQL-C 搭建 LNMP WordPress 博客系统
  • 【vue3】对axios进行封装,方便更改路由并且可以改成局域网ip访问(附代码)
  • Java IO流(三)线程模型
  • string(模拟实现与深拷贝)