有个需求,需要特定的2个ip才能访问指定域名,但是使用私有云的slb负载后透过的ip,指向nginx反向代理后,使用nginx的ip限制无法控制ip访问。
试了很多办法但是没有效果,后来尝试了以下方式,发现可以了。
server {
listen 80;
server_name xxx.xxx.xxx;
set $x $remote_addr;
if ($http_ali_cdn_real_ip) {
set $x $http_ali_cdn_real_ip;
}
#cms
location ^~ /cms {
proxy_pass http://pool_yyyy_8000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
client_max_body_size 100m;
set $allow true;
if ($http_x_forwarded_for !~ "xxx.xxx.xxx.xxx|yyy.yyy.yyy.yyy") {
set $allow false;
}
if ($allow = false) {
return 403;
}
}
}
本文转自 wangpengtai 51CTO博客,原文链接:http://blog.51cto.com/wangpengtai/2055573,如需转载请自行联系原作者