nginx配合gotty的websocket连接配置
由于gotty我作了url加密,
所以url在nginx里的前缀要能替换才行。
配置关键就在于有没有/
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; upstream k8s_gotty_log { ip_hash; server 1.2.3.4:8081; } upstream k8s_gotty_tty { ip_hash; server 1.2.3.4:8082; } server { listen 8080; server_name localhost; client_max_body_size 500m; proxy_connect_timeout 600; proxy_read_timeout 600; proxy_send_timeout 600; # add_header 'Access-Control-Allow-Origin' '*'; # proxy_set_header Connection ""; proxy_http_version 1.1; proxy_set_header Origin ""; proxy_set_header Host $host; proxy_set_header X-Real-Scheme $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; location /k8s_gotty_log/ { proxy_pass http://k8s_gotty_log/; } location /k8s_gotty_tty/ { proxy_pass http://k8s_gotty_tty/; } } }
其中涉及两个知识点,标红的。
1,在Nginx反向代理一个带有WebSocket功能的程序时,发现访问WebSocket接口时总是出现403响应。
查询相关解决办法,找到github上的这个issue,所以只需要修改Nginx的配置,添加proxy_set_header Origin "";
就行了:
2,在nginx中配置proxy_pass时,当在后面的url加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走;如果没有/,则会把匹配的路径部分也给代理走。
https://www.jb51.net/article/78746.htm
下面四种情况分别用http://192.168.1.4/proxy/test.html 进行访问。
第一种:
location /proxy/ { proxy_pass http://127.0.0.1:81/; }
会被代理到http://127.0.0.1:81/test.html 这个url
第二咱(相对于第一种,最后少一个 /)
location /proxy/ { proxy_pass http://127.0.0.1:81; }
会被代理到http://127.0.0.1:81/proxy/test.html 这个url
第三种:
location /proxy/ { proxy_pass http://127.0.0.1:81/ftlynx/; }
会被代理到http://127.0.0.1:81/ftlynx/test.html 这个url。
第四种情况(相对于第三种,最后少一个 / ):
location /proxy/ { proxy_pass http://127.0.0.1:81/ftlynx; }
会被代理到http://127.0.0.1:81/ftlynxtest.html 这个url
nginx配合gotty的websocket连接配置的更多相关文章
- 使用Nginx代理和转发Websocket连接
1.Websocket 简介 WebSocket协议是基于TCP的一种新的网络协议.它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端. 2.Nginx 简介 ...
- 在UWSGI和NGINX配合的情况下,配置个别目录上传及超时
笨办法就是多加一个LOCATION. 然后,自定义以下类似参数 client_max_body_size uwsgi_connect_timeout uwsgi_read_timeout server ...
- Nginx实战之反向代理WebSocket的配置实例
http://www.jb51.net/article/112183.htm 最近在工作中遇到一个需求,需要使用 nginx 反向代理websocket,经过查找一番资料,目前已经测试通过,所以这篇文 ...
- Nginx 支持websocket的配置
Nginx 支持websocket的配置server { listen 80; server_name 域名; location / { proxy_pass http://127.0.0.1:808 ...
- Nginx与Tomcat、Client之间请求的长连接配置不一致问题解决[转]
http://bert82503.iteye.com/blog/2152613 前些天,线上出现“服务端长连接与客户端短连接引起Nginx的Writing.Active连接数过高问题”,这个是由于“服 ...
- Nginx 核心配置-长连接配置
Nginx 核心配置-长连接配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.长连接配置参数说明 keepalive_timeout number; 设定保持连接超时时长,0 ...
- nginx反向代理 支持WebSocket
WebSocket(简称WS)协议的握手和HTTP是兼容的,通过HTTP/1.1中协议转换机制,客户端可以传递名为“Upgrade” 头部信息将连接从HTTP连接升级到WebSocket连接 那么反向 ...
- websocket连接的后台反向代理问题
今天要介绍的问题,是一个相对来说比较经典的问题,问题表面看不是很复杂的问题,但是反映出的背后通信逻辑,其实还是比较有意义的. websocket协议是当前绝大部分浏览器都支持的长连接协议,是HTTP协 ...
- Nginx高级应用之Location Url 配置
原文地址:https://www.linuxidc.com/Linux/2017-03/141910.htm 基本配置 为了探究nginx的url配置规则,当然需要安装nginx.我使用了vagran ...
随机推荐
- 在 .NET Core 3.0 中支持 Newtonsoft.Json 的使用
.NET Core 3.0 已经使用了一整套内置的 Josn 序列化/反序列化方案,而且看上去效率还不错.但对于某些项目必须使用到 Newtonsoft.Json 的时候,就会抛出如下异常: Syst ...
- day 27-1 反射、内置方法
反射 反射:通过字符串来映射到对象的属性 class People(): def __init__(self, name, age): self.name = name self.age = age ...
- [springMvc]常见配置
[springMvc]常见配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&qu ...
- CSS入门(定位之浮动定位、伪类之鼠标悬停、光标修改和透明度修改和列表样式)
一.定位 所为定位,实际上就是定义元素框相对于其正常位置,应该出现在哪儿 定位就是改变元素在页面上的默认位置 分类: 普通流定位(元素默认的定位方式) 浮动定位 相对定位 绝对定位 固定定位 1.普通 ...
- [转载]——Full UNDO Tablespace In 10gR2 and above (文档 ID 413732.1)
最近遇到了这个案例,官方文档已有详尽的分析.介绍,特转载在此,方便以后查看! Full UNDO Tablespace In 10gR2 and above (SQL> select count ...
- [PHP] 编译安装swoole
不知道为啥,家里的网访问不了pecl.php.net,这也就没有办法直接使用pecl install swoole安装swoole,也可以直接进行编译安装 在git仓库下载源码 https://git ...
- Mac下搭建Cocos2d-x-3.2的开发环境
配置:OS X 10.9.4 + Xcode 6.0 + Cocos2d-x-3.2 摘要:本文目标为在Xcode成功运行HelloWorld程序. 一.下载必要项 1.从官网下载Cocos2d-x- ...
- JVM基础回顾记录(二):垃圾收集
垃圾收集流程&HotSpot对该流程的实现方式 上一篇介绍了jvm的内存模型,本篇将介绍虚拟机中最为复杂的一部分:垃圾收集,本篇会从垃圾回收前的准备工作到后面的收集阶段的方式以及HotSpot ...
- a是什么??
//解决Linux下默认中文字体乱码问题 QFont font("simsun", 11, QFont::Normal, false); a.setFont(font);
- 10 个提升效率的Linux小技巧
您是否曾经惊讶于看到某人在 UNIX 中非常快速地工作,触发命令并快速地执行操作?是的,我碰到过几次,并且我一直都在向那些超级巨星开发者学习.在本文中,我想分享一些 UNIX 命令实践,这些实践是我在 ...