Я думаю, у вас та же проблема, что и у меня. Вы хотите использовать один и тот же физический каталог для размещения экземпляров приложения, но вы хотите взаимодействовать с приложением в разных средах (разработка / производство), используя разные записи DNS (redmine.development / redmine.production) ???
Проблема в том, что пассажир распознает входящий запрос как приложение rails, находящееся в каталоге выше root. Если вы используете одну и ту же буквальную ссылку для root в нескольких конфигах nginx, пассажир отправит запрос на единственный запущенный экземпляр, найденный в root. То есть, если вы сначала запустите свое приложение для разработки, а затем попытаетесь получить доступ к продукту через redmine.production, вы в конечном итоге будете взаимодействовать со средой разработки. Однако если вы сначала запустите свое производственное приложение, а затем попытаетесь получить доступ к redmine.development, вы в конечном итоге будете взаимодействовать с производством.
Ответ заключается в том, чтобы создать символическую ссылку на каталог вашего приложения для каждой среды, которую вы хотите запустить. Пассажир смотрит только на буквальный путь к корню - если он не соответствует запущенному в данный момент экземпляру, он создаст новый.
ех.)
Физический корень - ~/rails_apps/myserver
(где myserver содержит приложение, общедоступный и т. Д.)
Создайте символическую ссылку с именем ~/rails_apps/dev.myserver
на ~/rails_apps/myserver
, а другую ссылку с именем ~/rails_apps/pro.myserver
на ~/rails_apps/myserver
.
Теперь внутри вашей конфигурации nginx используйте расположение символических ссылок в общедоступной папке как root.
напр., Если symlink /home/user/rails_apps/[dev|pro].redmine указывает на / home / user / rails_apps / redmine)
server {
listen xxxx;
server_name redmine.development;
root /home/user/rails_apps/dev.redmine/public;
passenger_enabled on;
rails_env development;
}
server {
listen xxxx;
server_name redmine.production;
root /home/user/rails_apps/pro.redmine/public;
passenger_enabled on;
rails_env production;
}