我试图在我的 proxy_pass 中包含 $remote_addr 或 $http_remote_addr 但没有成功。
重写规则有效
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