zoukankan      html  css  js  c++  java
  • nginx通过多级代理获得真实用户IP的方法

    nginx的default.nginx中添加
    location ~ ^/mqtt {
            proxy_pass http://emqttd:8083;
            proxy_redirect    off;
            proxy_set_header X-Real-IP $remote_addr; 
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     
            # nginx支持websockets
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }
     
    说明:
    1. 如果使用了多个代理,不能 使用proxy_set_header X-Real-IP $remote_addr直接得到用户真实IP,需要使用命令 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for
    1)X-real-ip是一个自定义的变量名,名字可以随意取,这样做完之后,用户的真实ip就被放在X-real-ip这个变量里了,然后,在web端可以这样获取:request.getAttribute("X-real-ip")
    2)$remote_addr用于获取到上一级代理的IP
    3)$proxy_add_x_forwarded_for变量包含客户端请求头中的"X-Forwarded-For",与$remote_addr两部分,他们之间用逗号分开,例如:(223.104.6.125, 10.10.10.45),第一个是用户的真实IP,第二个是一级代理的IP,依此类推
     
    2. Nginx通过在客户端和后端服务器之间建立隧道来支持WebSockets通信。为了让Nginx可以将来自客户端的Upgrade请求发送到后端服务器,Upgrade和Connection的头信息必须被显式的设置
  • 相关阅读:
    客户主数据批导
    update module (更新模块)
    关于SAP的编码范围
    MV45AOZZ 销售订单增强点
    BAPI list
    sap crm 常用表
    ME01 创建货源清单
    SAP采购寄售业务操作步骤
    让APK 成功在 Windows 运行并可以设置本地文件
    FastAdmin 学习线路 (2018-06-09 更新)
  • 原文地址:https://www.cnblogs.com/regit/p/13674096.html
Copyright © 2011-2022 走看看