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
|