NGINX-proxy_pass根仅允许访问特定IP

时间:2019-04-15 08:23:41

标签: nginx nginx-location

我只允许流量从10.10.10.94起

如果我浏览

http://IP/api:5006(从允许以外的任何计算机)我拒绝访问并且它应能正常工作

http://IP:5007我得到一个网页(尽管WEB页中没有显示任何数据,这些图形只应来自允许的主机)

问题:

对于/api位置访问来说,它可以正常工作,仅允许从允许的IP访问,但是对于/无限制,可以从任何IP访问。

server {
    listen 80;
    listen [::]:80;
    server_name site.com;
    client_max_body_size 16M;
    return 301 https://$host$request_uri;
}

server {
  listen 443 http2 ssl;
  listen [::]:443 http2 ssl;

  server_name site.com;
  client_max_body_size 16M;
  ssl_certificate /etc/ssl/certs/star.pem;
  ssl_certificate_key /etc/ssl/private/star.key;

  location / {

      allow 10.10.10.94;
      deny 10.10.0.0/16;
      proxy_pass http://127.0.0.1:5007/;
  }
  location /api/ {

       allow 10.10.10.94;
      deny 10.10.0.0/16;
      proxy_pass http://127.0.0.1:5006/;
  }
}

1 个答案:

答案 0 :(得分:0)

尝试此位置:

 位置/ {
      允许10.10.10.94/32;
      否认一切;
      proxy_pass http://127.0.0.1:5007/;
  }
  位置/ api / {
      允许10.10.10.94/32;
      否认一切;
      proxy_pass http://127.0.0.1:5006/;
  }