zoukankan      html  css  js  c++  java
  • nginx获取客户端请求的真实IP

    客户端通过nginx代理访问后端jetty服务器时,后端服务器收到的请求信息中只有nginx代理的IP信息,无法看到client的真实IP,

    所以nginx需要获取客户端请求头的真实IP地址进行传递,网上查资料一般配置如下:

    server {
        listen 8080 default_server;
        server_name test80;
        location / {
            proxy_pass https://192.168.10.3:443/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }                

    但是如上配置涉及jetty/tomcat/apache服务之后,客户端访问代理无法正常访问到服务,页面异常,去除proxy_set_header等配置则访问正常。
    于是修改配置如下,代理服务访问正常,且nginx能获取客户端请求的真实IP地址:

    location / {
        proxy_pass https://192.168.10.3:443/;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    

     参考:https://blog.csdn.net/xiao__gui/article/details/73733797 

  • 相关阅读:
    1052 卖个萌
    编程实现hdfs对文件的操作
    关于Eclipse编译运行MapReduce程序报错问题的解决
    用户模板和用户场景
    用户体验评价
    大二下学期软件工程课程总结
    教师派第二阶段10
    教师派第二阶段09
    教师派第二阶段07
    教师派第二阶段06
  • 原文地址:https://www.cnblogs.com/xiatian09/p/11245893.html
Copyright © 2011-2022 走看看