Заблокировать файл apc.php в nginx

Я пытаюсь заблокировать файл apc.php на своем веб-сервере. Если сделать следующее, это сработает, но я думаю, что есть лучший способ сделать это и поместить правило отказа/разрешения под блоком общего местоположения ~ .php$. Кажется неправильным иметь два блока с параметрами fastcgi.

#Block to apc.php
location ~ /apc.php {

    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;

    allow 192.168.3.0/24;
    deny all;
}

# use fastcgi for all php files
location ~ \.php$
{
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

person ipengineer    schedule 24.07.2013    source источник


Ответы (1)


Поскольку «запретить» в операторе if не разрешено, вы можете использовать вложенное местоположение, например location / { location /uri/ {} }, однако это не рекомендуется в руководстве Nginx:

«Хотя вложенные местоположения разрешены парсером файла конфигурации, их использование не рекомендуется и может привести к неожиданным результатам».

person TroyCheng    schedule 25.07.2013