nginx拦截指定的url
在配置nginx规则拦截的时候我们要清楚自己的需求
需求如下:
外网地址:不能被访问
内网地址:能访问
外网地址如下:外网ip+端口/pac/pul/check (这里域名ip都可以)
内网地址如下:内网ip+端口/pac/pul/check (内网ip不做拦截)
nginx配置如下:
location /pac {
if ( $request_uri = /pac/pul/chec) {
return 404;
}
root html;
index index.html index.htm;
proxy_set_header X-real-ip $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header CLOUD-FORWORD-CLENT-IP-REMOTADDR $http_x_forwarded_for;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE_PORT $remote_port;
proxy_set_header Host 内网域名或者ip;
proxy_pass 内网域名或者ip/gate/pac;
client_max_body_size 30m;
}
上面的配置和需求这里简单说明一下:
1、我们的环境有内网和外网之分,但是有些请求只能内网访问 外网不能访问
2、所有通过nginx localtion 配置添加判断条件 当外网访问等于我设定条件时返回指定错误响应码
此方法也可以用来判断 ip 域名等等