加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

Nginx:什么是X-Forwarded-For WebSockets的替代品?

发布时间:2020-12-13 21:31:20 所属栏目:Nginx 来源:网络整理
导读:在使用WebSockets时,有没有办法将客户端身份传递给Nginx(以获得粘性会话)?类似于HTTP的“X-Forwarded-For”标题? 最佳答案 Websockets在HTTP升级握手下开始他们的生活.握手成功完成后,您将获得长时间运行的双向websocket连接. 如果您使用Nginx作为websocke

在使用WebSockets时,有没有办法将客户端身份传递给Nginx(以获得粘性会话)?类似于HTTP的“X-Forwarded-For”标题?

最佳答案
Websockets在HTTP升级握手下开始他们的生活.握手成功完成后,您将获得长时间运行的双向websocket连接.

如果您使用Nginx作为websockets的代理,那么您也可以使用“X-Forwarded-For”,但仅限于握手.参见例如this simple configuration:

# WebSocket Proxy
#
# Simple forwarding of unencrypted HTTP and WebSocket to a different host
# (you can even use a different host instead of localhost:8080)

server {
    listen 80;

    # host name to respond to
    server_name ws.example.com;

    location / {
        # switch off logging
        access_log off;

        # redirect all HTTP traffic to localhost:8080
        proxy_pass http://localhost:8080;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        # WebSocket support (nginx 1.4)
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

……以及this page的一些参考资料.

您可以配置Nginx应该在升级请求中发送的内容(用于标识客户端的信息),并且后端服务器的工作是使用握手中的信息来标识客户端,然后将websocket连接关联到客户端.基于该关联,该websocket连接上的任何消息都属于先前标识的客户端.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读