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   域名等等