小编dav*_*say的帖子

使用$ remote_addr的Nginx proxy_pass

我试图在我的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

nginx proxypass

36
推荐指数
3
解决办法
5万
查看次数

标签 统计

nginx ×1

proxypass ×1