如何使用Nginx作为反向代理在Spring引导应用程序的嵌入式Tomcat访问日志上记录真正的客户端IP?
我在Spring Boot 1.3.3应用程序前面安装了Nginx,启用了Tomcat访问日志,但是日志总是写入代理IP地址(127.0.0.1),而不是真正的客户端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_
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。我在文档中发现,这个%{…}我从标题中获取值。非常感谢。