[英]How to log the real client IP on embedded Tomcat access log on Spring Boot application with Nginx as reverse proxy?
我在啟用了Tomcat訪問日志的Spring Boot 1.3.3應用程序前面安裝了Nginx,但是該日志記錄始終寫入代理IP地址(127.0.0.1),而不是實際的客戶端IP。
我有這個配置:
application.properties
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_add_x_forwarded_for
變量中可用,即X-Forwarded-For
標頭。 它將有“,”分隔的條目。 第一個值是真實的客戶端IP。
要將真實的客戶端IP記錄在Tomcat的訪問日志中,請將AccessLog Valve中的模式值修改為:
%{X-Forwarded-For}i %l %u %t "%r" %s %b
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.