Nginx拒绝/允许动态IP访问文件 - 即时

时间:2015-12-12 22:01:32

标签: php security http nginx server

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

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

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

例如在block.conf中:

public static void main(String[] args) 
{
    ordersForFirstFit = createCustomerOrders(1000);
    ordersForBestFit = ordersForFirstFit;// using same data as first fit for best fit
    stocksForFirstFit = createStockOfRope();
    stocksForBestFit = stocksForFirstFit;// using same data as first fit for best fit
    manufacturer = new Random();

    supplyCounter = 0;
    bestFitAlgorithm(stocksForBestFit, ordersForBestFit);
}

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

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

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

如果使用nginx的访问mod无法做到这一点,那该怎么办呢?如果nginx不能这样做,还有其他软件可以吗?

1 个答案:

答案 0 :(得分:1)

我能想到的唯一方法是创建一个nginx配置片段,更新它,并让一个以root身份运行的cron脚本偶尔会轮询这个片段并重新加载nginx(如果它已被更改)。

与Apache不同,nginx配置不会在每次请求时重建。