Passenger+nginx: Размещение приложения Rails в подкаталоге

Я пытаюсь развернуть приложение в подкаталоге /a под www.myserver.com, следуя инструкциям в документации Passenger здесь: http://www.modrails.com/documentation/Users%20guide.html#deploying_rails_to_sub_uri

Кажется, это работает, но все маршруты Rails теперь ожидают дополнительный подкаталог /a, так что попытка доступа к корню www.myserver.com/a выдает RoutingError. Я пытался установить relative_url_root, но это ничего не меняет. Нужно ли добавлять префикс /a к каждому маршруту в моем файле маршрутов?


person jogloran    schedule 03.02.2010    source источник
comment
Я знаю, знаю, это элементарно, но перезапускали ли вы nginx после добавления 'relative_url_root'?   -  person wesgarrison    schedule 03.02.2010
comment
Инструкции btelles действительно работают: в конце концов, проблема была вызвана нежелательным взаимодействием между гемом «reverse_proxy_fix» и Rails.   -  person jogloran    schedule 19.02.2010


Ответы (1)


Хм... у меня вроде все нормально. Только что попробовал.

Вы уверены, что следовали инструкциям Nginx, а не инструкциям Apache?

Убедитесь, что вы делаете мягкую ссылку и меняете «корневое» приложение... в инструкциях говорится, что это абсолютный путь за вычетом «общедоступной» части:

http {...

server {
    listen 80;
    server_name g.local;
    root /home/bernie/development/test;  <- forgot to change this the first time I tried
    passenger_enabled on;   
    passenger_base_uri /rails; 
}

...

}

Вот изображение конечного результата... никаких изменений маршрута не требуется:

замещающий текст http://img190.imageshack.us/img190/8898/32380822.png< /а>

Вот инструкции Nginx:

http://www.modrails.com/documentation/Users%20guide%20Nginx.html#deploying_rails_to_sub_uri

person btelles    schedule 03.02.2010
comment
Если я понял его вопрос, он хочет, чтобы приложение rails в корневом приложении не меняло корневое приложение пути, добавляя лишнее имя каталога. Например, если вы хотите разместить несколько разных приложений на www.myhost.com, таких как www.myhost.com/app1, www.myhost.com/app2, www.myhost.com/app3, которые являются разными приложениями rails. Ваш ответ не касается этого, но вместо этого без необходимости добавляет дополнительный путь к корневому URL-адресу. - person ; 10.09.2010