upstream websocket {
#ip_hash;
server ivcp-api.ttt.com;
}
#For WebSocket define server
server {
listen 9999;
server_name localhost;
location / {
proxy_pass http://ivcp-api.ttt.com/;
#proxy_pass http://websocket;
proxy_read_timeout 300s;
#proxy_set_header Host $host;
proxy_set_header Host "ivcp-api.ttt.com";
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 $connection_upgrade;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
项目Websocket服务的外暴,使用Ingress实现,外部请求通过Nginx转发给Ingress再给具体服务 。
项目正式环境使用kubesphere部署应用,项目测试环境使用原生K8S部署应用,蓝色是测试环境的配置,使用upstream实现请求转发,但通过kubesphere的ingress转发时,这个配置不好使了,总是转发到Jaeger页面上去了,修改Nginx,使用红色字体配置后,好使了,具体原因未知,有大神可以帮忙分析下不?
【Nginx转发K8S、kubesphere的Ingress的WebSocket 请求时的不同配置】
推荐阅读
- nginx反向代理后,刷新页面无法访问,404错误,解决方法
- k8s部署 微服务从代码到k8s部署应有尽有大结局
- Nginx 基础入门
- Nginx负载均衡+转发策略
- Nginx高可用HA
- Nginx vs. HAProxy
- nginx离线安装
- nginx实现TCP转发
- kubernetes ingress配置转发端口
- 前端开发之动态管理Nginx集群的方法