Настройка nginx + passenger с разными production environments

malphunction nginx-forum на nginx.us
Вт Июл 5 09:50:53 MSD 2011


У меня несколько проектов на базе redmine
(около десятка), использую следующий
конфиг:

location / {
    passenger_enabled on ;
    passenger_base_uri /aaa ;
    passenger_base_uri /bbb ;
    passenger_base_uri /ccc ;
    if ($uri ~* "^/aaa/") {
        rails_env "aaa" ;
    }
    if ($uri ~* "^/bbb/") {
        rails_env "bbb" ;
    }
    if ($uri ~* "^/ccc/") {
        rails_env "ccc" ;
    }
}

Как видите, для десяти таких конфигов
будет очень много дублирования.

В связи с чем несколько вопросов:
1. Как можно сделать установку RAILS_ENV в
зависимости от пути (sub-uri)?
2. Пытаюсь написать так:
    if ($uri ~* "^/(aaa|bbb|ccc)/") {
        rails_env "$1" ; # или $1 или '$1'
    }
все эти варианты не проходят :(
Почему-то вместо $1 не подставляется
совпадение и $1 так и остается $1; из-за
чего passenger ищет environments/$1.rb. Как
правильно задать подстановку?

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,211947,211947#msg-211947




Подробная информация о списке рассылки nginx-ru