您好,我尝试使用 nginx 拒绝外部 IP 访问我的网站的 URL admin.php。
我有一个 jirafeau 服务器,上面有 example.com/admin.php 我尝试拒绝访问此页面,但没有成功。我是 nginx 新手,这是我的配置:
位置 / { try_files $uri $uri/ /admin.php; 全部拒绝; 允许 XXXX/24; }
这将拒绝我网站的所有外部 IP,我只需要拒绝对 admin.php 的访问
谢谢您的帮助!
答案1
NGINX 简短解决方案:
您可以使用以下任一方式:
- 示例 1(应该有效)
location = /admin.php {
deny all;
allow 10.0.0.0/8; }
- 示例 2(我不确定这是否适合这种情况)
location ~* admin.php {
deny all;
allow 10.0.0.0/8; }
- 示例 3 与 Basic-Auth 结合
location = /admin.php {
deny all;
allow 10.0.0.0/8; }
auth_basic "restricted area";
auth_basic_user_file /etc/nginx/htpw/.htpasswd;
- 示例 4 仅限 Basic-Auth。
location = /admin.php {
auth_basic "restricted area";
auth_basic_user_file /etc/nginx/htpw/.htpasswd;
提醒一下,如果您的浏览器缓存不能直接工作,它可能会欺骗您自己(当然,如果您没有忘记重新加载 nginx)。
参考: