Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: limit req на статику и нет
- To: nginx-ru@xxxxxxxxx
- Subject: Re: limit req на статику и нет
- From: proforg <proforg@xxxxxxxxxxxx>
- Date: Sat, 9 Jan 2010 13:04:38 +0700
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:received:in-reply-to :references:from:date:x-google-sender-auth:message-id:subject:to :content-type:content-transfer-encoding; bh=+j8XZghul3rBHH/1NcmeHaheG1U6q1Mqb1a+5dkZQsY=; b=PG2oHUb/MHCS0fxTEXv9M4wwtxDhhOUooFxuAYp5Mxvj9DcXup1OWjdhdDi9GnSaxV d7GQEw8t3ju8Y/7sUTYErJQngiS94m5TV6iusmT9xvqY0XbVwAfJ+rPBpLT54U3eHms4 jnH/2/ZqjBEgq2Fm8+sTVO37/OIRfJIfoAgAs=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:content-type :content-transfer-encoding; b=ad4TkBroF6vCwM+r0auZO1iGwgsy+yqARMFP6Y23s84wW4m87CvhkkZMiy4uP9h4i1 tvp9xm+DHa8CACDx5yjqY60qRpws25O2CwKyPq8QD6F2oS/a7pGzvMnnxoKO7/QN51xE OwGXD9dJstyLEL+RlbTDnq/zKpUp0K/J5X+n8=
- In-reply-to: <c1e29770c4c554504cbabad70750517a.NginxMailingListRussian@xxxxxxxxxxxxxxx>
- References: <c1e29770c4c554504cbabad70750517a.NginxMailingListRussian@xxxxxxxxxxxxxxx>
Прощще и эффективнее всего, если известна структура сайта (а это
условие, я так понимаю, выполнено),
разнести статику и динамику на уровне location'ов, с регекспами или
без оных, как уж получится
Тогда такие проблемы отпадут как бэ сами собой :)
Если же возникают проблемы с "приоритетами" - то вдумчиво читать
документацию,
http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#location
Имеющихся средств "приоритезации" хватает за глаза для абсолютного
большинства ситуаций.
Или, если хочется/неободимо проверять наличие файлов - то try_files
http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#try_files
что по сути всё равно сведётся к 2м локейшнам и решит проблему
2010/1/9 Vanya <nginx-forum@xxxxxxxx>:
> Продолжаем разговор о невозможном (а может и возможном?)
>
> стоит apache, спрятанный за nginx`ом (проапгрейдил до 0.7.64)
>
> на сервере есть куча статики (ее отдает nginx) и куча нестатики, которую
> обрабатывает апач.
>
> фильтрация запросов и отделение статики от нестатики реализовал в конфиге при
> помощи чудовищной, на первый взгляд, конструкции в виде двух if
>
>
> if (!-e $request_filename) {
> proxy_pass <апач>
> }
> if (-e $request_filename) {
> expires 14d;
> }
>
>
> Возможно есть более правильные варианты (если не лень, подскажите, буду рад),
> но в любом случае по производительности этот вариант меня пока устраивает .
> Вернее устраивал.
>
> Устраивал, пока я не захотел прикрутить limit_req. (любители скачать сайт на
> свой компьютер при помощи всяких телепортов невольно ддосят его:)
>
> Собственно задача: я хочу задать разные ограничения на количество соединений.
> Чтобы статика, к примеру, лимитировалась 20 r/s, а динамика - 1r/s (ибо апач
> тянет за собой мускул, а сервер всего один и ресурсы его не безграничны)
>
> Проблема в том, что limit_req не умеет жить в if`е, по определению. Как
> решить мою задачу, есть идеи?
--
Aleksej Besciokov
EMail/JID: proforg@xxxxxxxxxxxx
phone: +7 495 7853149
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|