Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Nginx作为反向代理在Spring引导应用程序的嵌入式Tomcat访问日志上记录真正的客户端IP?_Spring_Tomcat_Nginx_Spring Boot_Http Headers - Fatal编程技术网

如何使用Nginx作为反向代理在Spring引导应用程序的嵌入式Tomcat访问日志上记录真正的客户端IP?

如何使用Nginx作为反向代理在Spring引导应用程序的嵌入式Tomcat访问日志上记录真正的客户端IP?,spring,tomcat,nginx,spring-boot,http-headers,Spring,Tomcat,Nginx,Spring Boot,Http Headers,我在Spring Boot 1.3.3应用程序前面安装了Nginx,启用了Tomcat访问日志,但是日志总是写入代理IP地址(127.0.0.1),而不是真正的客户端IP X-Real-IP头是否用于获取真正的客户端IP tomcat是否使用此头在访问日志中写入IP地址 我有以下配置: location / { proxy_pass http://127.0.0.1:8091; proxy_set_header X-Real-IP $remote_addr; proxy_

我在Spring Boot 1.3.3应用程序前面安装了Nginx,启用了Tomcat访问日志,但是日志总是写入代理IP地址(127.0.0.1),而不是真正的客户端IP

  • X-Real-IP头是否用于获取真正的客户端IP
  • tomcat是否使用此头在访问日志中写入IP地址
  • 我有以下配置:

    location / {
        proxy_pass http://127.0.0.1:8091;
        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 https;
        proxy_set_header X-Forwarded-Port 443;
        proxy_set_header Host $host;
    }
    
    应用程序属性

    server.use-forward-headers=true
    server.tomcat.internal-proxies=127\\.0\\.0\\.1
    server.tomcat.accesslog.enabled=true
    
    Nginx配置:

    location / {
        proxy_pass http://127.0.0.1:8091;
        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 https;
        proxy_set_header X-Forwarded-Port 443;
        proxy_set_header Host $host;
    }
    

    真正的客户端IP在
    $proxy\u add\u x\u forwarded\u for
    变量中可用,即
    x-forwarded-for
    头。它将有单独的条目。第一个值是真正的客户端IP

    要在Tomcat的访问日志中记录真实的客户端IP,请将AccessLog阀中的模式值修改为:

    %{X-Forwarded-For}i %l %u %t "%r" %s %b
    

    真正的客户端IP在
    $proxy\u add\u x\u forwarded\u for
    变量中可用,即
    x-forwarded-for
    头。它将有单独的条目。第一个值是真正的客户端IP

    要在Tomcat的访问日志中记录真实的客户端IP,请将AccessLog阀中的模式值修改为:

    %{X-Forwarded-For}i %l %u %t "%r" %s %b
    

    通常情况下,不使用
    X-Forwared-For
    one。您是否也在使用外部客户端,还是从同一台服务器调用它?不,通常是
    X-Forwared-For
    one。您是否也在使用外部客户端,还是从同一台服务器调用它?谢谢@nidhi!成功了!现在我有了客户端IP。我在文档中发现,这个%{…}我从标题中获取值。谢谢你谢谢你@nidhi!成功了!现在我有了客户端IP。我在文档中发现,这个%{…}我从标题中获取值。非常感谢。