社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  NGINX

如何将自定义头从nginx反向代理传递到服务器中的sockjs-websocket连接?

Sunny • 5 年前 • 1280 次点击  

我使用nginx作为反向代理。以下是nginx.conf文件中的设置。我想将自定义头从代理传递到后端HTTP服务器。我确实在HTTP服务器中获得了自定义头,但在sockjs连接中没有得到它。

   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-RealIPRemote $realip_remote_addr;
   proxy_set_header X-RemoteAddr $remote_addr;
   proxy_set_header Host $host;
   proxy_set_header mycustomhdr customname;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_pass http://192.168.1.1:18000;

   # WebSocket support
   proxy_http_version 1.1;
   proxy_set_header mycustomhdr customname;
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "upgrade";

在将连接代理到的HTTP服务器中:

sockServer = sockJs.createServer(
... 
 sockServer.on('connection', function (conn) {
      console.log("conn.headers")
      console.log(conn.headers)

我得到的是:

{ 'x-forwarded-for': '192.168.1.222',
        'x-real-ip': '192.168.1.222',
               host: 'example.com',
       'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36',
  'accept-language': 'en-GB,en-US;q=0.9,en;q=0.8' }

我没有得到自定义标题 MyCuffHDR .

~

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/37993
 
1280 次点击  
文章 [ 1 ]  |  最新文章 5 年前
miknik
Reply   •   1 楼
miknik    6 年前

是的,你不会的。你会注意到你的其他头也丢失了。并非所有的收割台都暴露。

the docs :

包含从上一个复制的各种头的头(对象)哈希 正在接收该连接的请求。露头包括: origin , referer x-forwarded-for (还有朋友)。我们明确地 不允许访问 cookie 头,因为使用它很容易导致 安全问题(有关详细信息,请参阅“授权”一节)。