我有一个 URL,可以根据下面给出的 IP 地址对其进行限制。但是,我想做的是将规则应用于所有 URL(未包含在下面的规则中),这样如果 URL 请求与这些 URL 不匹配,则应用 whitelist.conf 中的允许/拒绝。
**Current rule in default file in sites-available:**
## restrict admin access to IP address in whitelist.conf file
location ^~ /admin {
proxy_pass http://127.0.0.1:9000;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header X-Forwarded_For $proxy_add_x_forwarded_for;
proxy_read_timeout 240;
proxy_connect_timeout 120;
include whitelist.conf;
}
白名单配置文件
##assuming 127.0.0.1 is the only ip address I want with access to the url '/admin'
allow 127.0.0.1;
deny all;
我想改变这一点,如果 URL 不是“/admin”,那么我“允许”流量,但如果不是,那么我限制对我想要访问的 IP 地址的访问。提前致谢
答案1
您可以根据目录编写限制。使用类似下面的内容来管理它。如果您使用 php,则可能需要嵌套块。并且 /admin 不应该只是出现在 uri 中的任何地方:
# everything that starts with /admin is handled,
# and regex location will not override it
location ^~ /admin {
allow 1.2.3.4;
deny all;
# Inherits the allow/deny from the outer location
location ~ \.php$ {
include fastcgi.conf;
fastcgi_pass backend;
}
}