Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re[5]: Вложенныедирективыилиобъединениеусловий
Hello Константин,
Wednesday, April 16, 2008, 10:19:01 PM, you wrote:
> Здравствуйте, Alexey.
> Вы писали 16 апреля 2008 г., 16:58:14:
>> думаю location-ы с include-ами будут быстрее ифов ...
>> On 16.04.2008, at 17:25, Denis F. Latypoff wrote:
>>> Hello Larry,
>>>
>>> Wednesday, April 16, 2008, 7:55:13 PM, you wrote:
>>>
>>>> On Wednesday 16 April 2008 20:28, Andrey Ignatov wrote:
>>>>> On Wed, Apr 16, 2008 at 11:57:17AM +0000, Larry Gingras wrote:
>>>>>> Переписываю очень сложную и навороченную конфигурацию apache под
>>>>>> nginx
>>>>>> (для реализации связки nginx+apache).
>>>>>> И вот например мне нужно тут в одной штуке нужно проверить
>>>>>> несколько
>>>>>> условий. В apache я просто писал несколько RewriteCond подряд.
>>>>>> Тут в
>>>>>> одном if несколько условий поставить нельзя. И, как оказалось,
>>>>>> вложенные
>>>>>> if не поддерживаются тоже. Так что же делать в таком случае?
>>>>>> Вот один из примеров, который не знаю как расписать правильно:
>>>>>> if ($request_uri ~* \.(jpg|gif|wmv|flv)$) {
>>>>>> if ($request_uri !~ ^/webmasters/) {
>>>>>> if($invalid_referer) {
>>>>>> return 403;
>>>>>> }
>>>>>> }
>>>>>> }
>>>>>
>>>>> Можно попробовать что-нибудь в таком духе:
>>>>>
>>>>> if ($request_uri ~* \.(jpg|gif|wmv|flv)$) {
>>>>> set $i "a";
>>>>> }
>>>>>
>>>>> if ($request_uri !~ ^/webmasters/) {
>>>>> set $i "a$i"
>>>>> }
>>>>>
>>>>> if ($invalid_referer) {
>>>>> set $i "a$i"
>>>>> }
>>>>>
>>>>> if ($i = "aaa") {
>>>>> return 403;
>>>>> }
>>>>>
>>>>> Не красиво, но др. вариантов не знаю.
>>>> Вот это я думаю наиболее изящное и хорошее решение
>>>> Потому что мне тут предлагают разбивать всё на отдельные локейшены,
>>>> а учитывая
>>>> что там помимо этого примера ещё мама не горюй таких вещей, то там
>>>> ужас что
>>>> было бы. А с таким подходом очень много локейшенов удастся
>>>> сэкономить.
>>>
>>> либо красивый конфиг, либо скорость.
>>> Вы выбрали первое.
>>>
>>> --
>>> Best regards,
>>> Denis mailto:denis@xxxxxxxxxx
>>>
>>>
> А никто не тестировал?
> Ради интереса можно сделать два конфига и протестить с помощью ab ^_^
скорее всего скорость будет примерно одинаковая, но cpu usage будет отличаться.
--
Best regards,
Denis mailto:denis@xxxxxxxxxx
|