Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re[4]: Вложенныедирективыилиобъединениеусловий
Здравствуйте, 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 ^_^
--
С уважением,
Константин mailto:kot@xxxxxxxxxxx
|