zoukankan      html  css  js  c++  java
  • 关于使用nginx后,在获取ip上的问题

    项目部署使用nginx配置转发后,会导致获取服务器本身ip和,客户端ip都会有异常

    需要配置下面三个proxy_set_header:

      location / {
                proxy_set_header Host $host;
                proxy_set_header        X-Real-IP       $remote_addr;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass http://127.0.0.1:8077;
                # root   html;
                # index  index.html index.htm;
            }
    

    根据没设置proxy_set_header的情况来说说:

    • 不设置 proxy_set_header Host $host; 会导致项目获取服务器本身ip为 127.0.0.1:8080(加项目端口)
    • 不设置proxy_set_header X-Real-IP $remote_addr; ,proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 会导致获取客户端的ip时为127.0.0.1

    为什么要获取服务器端ip: 要获取项目外部资源文件
    为什么要获取客户端ip:看看是谁登录了~

    nginx配置详解:

    location /mineproxypass/ {  
        proxy_pass   http://localhost:10086/nookblog/; 
        #保留代理之前的host 默认值为 $proxy_host
        #proxy_set_header Host $host;
        #保留代理之前的真实客户端ip
        proxy_set_header X-Real-IP $remote_addr; 
        #在多级代理的情况下,记录每次代理之前的客户端真实ip
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
        #指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值
        #proxy_redirect             default ; 
        #default等效于下述配置,但是当设置proxy_set_header Host $host后,该配置失效    
        proxy_redirect   http://localhost:10086/nookblog/ /mineproxypass/;
        #cookie转发相关
        proxy_cookie_path  /nookblog /mineproxypass;
    }
    

    参考:地址

  • 相关阅读:
    QML控件设置style样式
    QML:ListElement: cannot use script for property value
    内存更换乌龙事件
    服务器的寿命到底有多长
    这些年渠道管理系统上发生的那些事
    IT囧事之误删测试环境的生产库
    旁观一个软件产品的终结
    一根网线引发的血案
    论代码规范命名的重要性
    服务器故障之内存损坏
  • 原文地址:https://www.cnblogs.com/famine/p/13815637.html
Copyright © 2011-2022 走看看