请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

为什么我的$http_x_forwarded_for是空的,

if ( $http_x_forwarded_for !~* "^116\.62\.103\.228") {
            return 403;
        }

通过日志打印是空值,按照老师讲解应该包含,代理+客户端的ip。

正在回答 回答被采纳积分+3

4回答

醉李白 2019-08-06 21:17:37

同问,我的是$remote_addr后正确了,很奇怪

0 回复 有任何疑惑可以回复我~
Jeson 2017-10-23 08:37:34

如果走正向代理访问,后端服务remote_addr为正向代理的ip地址,对客户端限制其不到作用。
那先看看access日志,查下xforword和 remote都打印的什么内容

0 回复 有任何疑惑可以回复我~
  • 提问者 冼星扉 #1
    remote ip可以打印是代理服务器的ip,xfoward就空值。难道代理服务器上还有什么我没配置的?
    回复 有任何疑惑可以回复我~ 2017-10-23 21:02:19
Jeson 2017-10-22 23:23:50

是这样的:代理+客户端的ip  是请求通过代理的情况下会,但如果直接访问后端服务(没有通过代理转发),xforwarded为空。

0 回复 有任何疑惑可以回复我~
  • 提问者 冼星扉 #1
    但我也是正向代理过去的。
    参考
        location / {
            if ( $http_x_forwarded_for !~* "^116\.62\.103\.228") {
                return 403;
            }
            root   /opt/app/code;
            index  index.html index.htm;
        }
    
    我看项目课件代码,也没有设置什么proxy_set_header 之类。nginx版本也是1.12.x ,老师你的配置是怎样的。
    回复 有任何疑惑可以回复我~ 2017-10-22 23:52:47
  • 提问者 冼星扉 #2
    如果我将http_x_forwarded_for改为$remote_addr倒是可以实现。不过就不完美。
    回复 有任何疑惑可以回复我~ 2017-10-22 23:53:50
  • 慕用8338351 回复 提问者 冼星扉 #3
    同样的问题
    回复 有任何疑惑可以回复我~ 2018-01-26 20:06:11
提问者 冼星扉 2017-10-22 23:06:16

补充是3-14

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信