Py学习  »  NGINX

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

Sunny • 5 年前 • 1384 次点击  

我使用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
 
1384 次点击  
文章 [ 1 ]  |  最新文章 5 年前
miknik
Reply   •   1 楼
miknik    6 年前

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

the docs :

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