关于自己部署服务部署的一个人人可能都会遇到的问题

在有nginx的情况下我们的服务是通过ng 代理后访问到真实的服务地址的。

那么在我们的接口调用中有遇到wss://服务器:端口号/xx/xxx/xxx 导致页面上会报奇怪的无法访问

为什么会出现这样的问题呢?

1.  nginx 代理的地址没有找到你的相关路由的服务。那么怎么办呢?

   答:你需要检查你的conf 文件 是否有配置正确。 

2. 我的nginx 明明配置了相关的路径转发。可是为什么还会报failed 相关或者404 大红字呢? 

  wss 是什么呢? 是WebSocket 协议且与 HTTP 协议不同,但 WebSocket 握手与 HTTP 兼容,使用 HTTP 升级工具将连接从 HTTP 升级到 WebSocket。这允许 WebSocket 应用程序更容易地适应现有的基础架构。例如,WebSocket 应用程序可以使用标准 HTTP 端口80和443,从而允许使用现有的防火墙规则。nginx 也是可以识别的。

那么 通过ng 为什么还是转发失败呢?

 答:客户机和后端服务器之间建立隧道,需要经过 Nginx,那么nginx也是支持 WebSocket。对于 Nginx 将升级请求从客户端发送到后台服务器,前提是必须明确设置 Upgrade  Connection 标题。这里很重要。 也很关键 ,就是使用 Nginx 反向代理 WebSocket 服务时需要设置 Upgrade 和 Connection 的 header

  正确配置应该是这样的。 

location /ws {
    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_set_header  X-Forwarded-Proto   $scheme;
    proxy_pass        http://127.0.0.1:9000/ws;
    
    # 关键配置 start
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    # 关键配置 end
} 

 完美的解决完美解决报错问题(WebSocket connection to "wss:/xxxxxxxxx.com/xxx/xxx" failed) 访问错误的问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值