ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re[2]: Синтаксис конфигурационного файла



Title: Re[2]: Синтаксис конфигурационного файла

Здравствуйте, Gena.


Вы писали 16 марта 2009 г., 23:52:57:


> On Monday, March 16, 2009 at 21:11:52, Denis V. Roghnovskiy wrote:


DVR>> Мне потребовалось реализовать в конфиге nginx проверку реферала,

DVR>> все хорошо, но вот не найду нигде как оформить синтаксис.


> http://sysoev.ru/nginx/docs/http/ngx_http_referer_module.html


> ?


Ага, спасибо, буду пробовать.


DVR>> Сейчас все выглядит так:


DVR>>                 if ($http_referer ~ .some_value.){

DVR>>                     return 403;

DVR>>                 }

DVR>>                 if ($http_referer ~ .some_value_2.){

DVR>>                     return 403;

DVR>>                 }

DVR>>                 if ($http_referer ~ .some_value_3.){

DVR>>                     return 403;

DVR>>                 }


DVR>> В итоге количество вхождений увеличивается ровно на количество

DVR>> if`ов, возможна ли реализация "в одну строку" и проверкой

DVR>> в одном if`е но с оператором подобным 'or' ?


> если надо блокировать только адреса из определенного списка

> в referer - подозреваю, что проверку можно написать так:


> if ( $invalid_referer = 0 ) {

>      return 403;

> }


> PS можно было бы слегка доработать напильником модуль

>    http_referer, добавив директиву invalid_referers,

>    когда все остальные referers будут считаться valid,

>    а только для referes из даного списка $invalid_referer

>    будет не равно 0. одновременное присутствие в конфиге

>    директив valid_referers и invalid_referers - это ошибка,

>    потому что может быть задана только какая-то одна директива.


Ложкой дегтя является большое количество значений. Затеял я это для того, что бы запретить отдачу графики для более чем 40 серверов которые с наглым видом тянут ее от меня - трафик то покупается, да и других дел у сервера очень много. До использования nginx все решалось в .htacsess - файле для Апача, теперь же графикой заведует nginx.



-- 

С уважением,

 Denis                          mailto:sudo@xxxxxxxxxx



 




Copyright © Lexa Software, 1996-2009.