重写规则有效。
location ^~ /freegeoip/ {
rewrite ^ http://freegeoip.net/json/$remote_addr last;
}
没有$remote_addr的proxy_pass可以正常工作,但freegeoip无法读取x-Real-IP。
location ^~ /freegeoip/ {
proxy_pass http://freegeoip.net/json/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
然后,我会把 IP 地址添加到请求的末尾,就像这样:
location ^~ /freegeoip/ {
proxy_pass http://freegeoip.net/json/$remote_addr;
}
但是nginx报告了这个错误:没有定义解析器来解析freegeoip.net