【问题标题】:Nginx deny/allow IP access to file dynamically - on the flyNginx 动态拒绝/允许 IP 访问文件 - 动态
【发布时间】:2016-03-18 15:54:13
【问题描述】:

我有一个目录 (/var/www/private/)。此目录中有三个文件(1.txt、2.txt、3.txt)。

我想拒绝每个人访问整个目录和这三个文件,但有时我想授予对该目录中特定 IP 和特定文件的访问权限。

在“block.conf”文件中,我将列出授予访问权限的文件和 IP 地址。我需要 nginx 读取此文件并相应地拒绝/允许访问(无需在每次更改文件时重新加载 nginx)。

例如在block.conf中:

#denies access to all files in private directory
location /private { 
   deny all;
}

#allows below IP access to 2.txt
location /private/2.txt {
   allow 5.3.7.0;
}

#allows below IP addresses access to 1.txt
location /private/1.txt {
   allow 3.5.7.2;
   allow 9.7.2.2
}

block.conf 文件中的位置和 IP 地址会经常用 PHP 编辑,我希望 nginx 相应地拒绝/允许对该文件的访问。

我认为这很容易实现,但存在一些问题:

  • nginx 在启动时只读取一次 block.conf,不允许我 动态修改访问(无需重新加载 nginx)
  • location 指令不能在 block.conf 文件中,不是 允许我设置对特定文件的访问权限

如果 nginx 的 access mod 无法做到这一点,那我该怎么做呢?如果nginx做不到,还有其他软件可以吗?

【问题讨论】:

标签: php security http nginx server


【解决方案1】:

我能想到的唯一方法是创建一个 nginx 配置 sn-p,对其进行更新,并以 root 身份运行一个 cron 脚本,该脚本偶尔会轮询此 sn-p 并在它发生更改时重新加载 nginx。

与 Apache 不同,nginx 配置不会根据每个请求重新构建。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-20
    • 2012-09-18
    • 1970-01-01
    • 2011-01-09
    • 1970-01-01
    • 2016-02-02
    • 2015-01-14
    • 2012-11-19
    相关资源
    最近更新 更多