应用(Docker)使用WAF接入internet,nginx log 查不到用户的真实IP地址,于是修改nginx 设置,以下都是在linux下操作:
由于没有WAF权限,所以在 docker上启动了两个container,一个模拟WAF(r-proxy),一个模拟应用(webapp)。
docker上如何启动container,查看另一篇文章:How to start a docker container on Linux?-CSDN博客
1.r-proxy (nginx下的 default.config, /etc/nginx/conf.d/default.conf)
location /ui/ {
proxy_pass http://127.0.0.1:8001/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
2.webapp (无需设置)
$remote_addr: 172.17.0.1 (WAF/R-PROXY IP)
$http_x_forwarded_for: 10.47.24.87 (end user IP)