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

Alexey V. Karagodov kav at karagodov.name
Wed Apr 16 17:58:14 MSD 2008


думаю 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
>
>






More information about the nginx-ru mailing list