Re[4]: Вложенныедирективыилиобъединениеусловий

Константин kot at ereality.ru
Wed Apr 16 19:19:01 MSD 2008


Здравствуйте, 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 at gostats.ru
>>
>>


А никто не тестировал?
Ради интереса можно сделать два конфига и протестить с помощью ab ^_^

-- 
С уважением,
 Константин                          mailto:kot at ereality.ru






More information about the nginx-ru mailing list