我试图在我的proxy_pass上包含$ remote_addr或$ http_remote_addr但没有成功.
重写规则有效
location ^~ /freegeoip/ {
rewrite ^ http://freegeoip.net/json/$remote_addr last;
}
Run Code Online (Sandbox Code Playgroud)
没有$ 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;
}
Run Code Online (Sandbox Code Playgroud)
然后,我将ip添加到请求的末尾,如下所示:
location ^~ /freegeoip/ {
proxy_pass http://freegeoip.net/json/$remote_addr;
}
Run Code Online (Sandbox Code Playgroud)
但是nginx报告此错误:没有定义解析器来解析freegeoip.net