Re: Ограничение доступа по IP + php-fcgi

Igor Sysoev igor на sysoev.ru
Пн Май 24 12:23:38 MSD 2010


On Mon, May 24, 2010 at 11:47:03AM +0400, Алексей Сундуков wrote:

> 18 мая 2010 г. 12:49 пользователь Igor Sysoev <igor at sysoev.ru> написал:
> 
> > location /administrator/ {
> >    allow 192.168.0.0/24;
> >    deny all;
> > }
> >
> > location ~ ^/administrator/.+\.php$ {
> >    allow 192.168.0.0/24;
> >    deny all;
> >    fastcgi_pass   127.0.0.1:8000;
> >    fastcgi_param  SCRIPT_FILENAME
> >                   /www/beta.autocentre.ua/html$fastcgi_script_name;
> >    include        fastcgi_params;
> > }
> 
> 
> А есть смысл в таком дублировании директив? Если придется изменить
> адреса, то придется помнить, что править их нужно в двух местах.

Я сторонник сделать внутри сервера десять, а то и двадцать только
статических location'ов вместо пяти с регулярными выражениями. Да,
писать побольше, зато потом проще добавлять новое и, сурприз, изменять
старое. Да, изменить придётся в нескольких местах, но все эти места
видны при беглом взгляде (особенно, если разместить их рядом - для статики
не критичен порядок) и не нужно проверять - а как это изменение отразится
на остальной функциональности.

Хотя в данном случае это не подходит. Ну, если только не описать пять (или
сколько там) адмнистративных скрипта точными location'ами:

location = /administrator/login.php { ...
location = /administrator/logout.php { ...
...

Можно сделать вложенные location'ы:

location /administrator/ {
    allow 192.168.0.0/24;
    deny all;

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:8000;
        fastcgi_param  SCRIPT_FILENAME
                       /www/beta.autocentre.ua/html$fastcgi_script_name;
        include        fastcgi_params;
    }
}

Наверное, стоит их починить для alias и ему подобного.


-- 
Игорь Сысоев
http://sysoev.ru



Подробная информация о списке рассылки nginx-ru