Ubuntu 14+;Nginx+;PHPMyAdmin:我如何通过IP地址限制访问?

Ubuntu 14+;Nginx+;PHPMyAdmin:我如何通过IP地址限制访问?,ubuntu,nginx,phpmyadmin,Ubuntu,Nginx,Phpmyadmin,我尝试过谷歌搜索,但似乎找不到Nginx的答案。我如何通过IP地址限制对PHPMyAdmin的访问?我找到了答案。我只需要像这样编辑我的默认文件: sudo nano /etc/nginx/sites-available/default location /phpmyadmin { allow 127.0.0.1; deny all; } 然后按如下方式编辑文件: sudo nano /etc/nginx/sites-available/default location

我尝试过谷歌搜索,但似乎找不到Nginx的答案。我如何通过IP地址限制对PHPMyAdmin的访问?

我找到了答案。我只需要像这样编辑我的默认文件:

sudo nano /etc/nginx/sites-available/default
location /phpmyadmin {
    allow 127.0.0.1;
    deny  all;
}
然后按如下方式编辑文件:

sudo nano /etc/nginx/sites-available/default
location /phpmyadmin {
    allow 127.0.0.1;
    deny  all;
}
然后我重新启动应用设置

sudo service nginx restart
请注意,第二个位置是嵌套的,是阻止执行/phpmyadmin/index.php脚本所必需的


geo块根据IP地址设置$admin的值。

关于/phpmyadmin/index.php呢?正如@TimMiller提到的,这不会保护/phpmyadmin/index.php,因为*.php location指令将接收请求。这可以通过使用嵌套位置来解决,这意味着一些fastcgi配置行的重复。请参阅:另请参阅类似问题的这个问题和答案:@TimMiller和@jeffmcneill提到过,我遇到了这个问题(使用htpasswd进行安全保护)。许多教程只是建议保护/phpmyadmin位置。但这显然是不够的。您仍然可以访问
index.php
甚至
server\u privileges.php
。它需要一个与
~phpmyadmin
匹配的regex子位置(into.php位置),并将
fastcgi
配置复制到其中以真正保护它。