Развертывание нескольких приложений на одном сервере с Phusion Passenger

В настоящее время я запускаю простое приложение Meteor.js на сервере, используя Phusion Passenger + Nginx.

Что я хотел бы сделать, это настроить его так, чтобы у меня было одно основное приложение на www.example.com и дополнительные приложения на www.example.com/app1, www.example.com/app2 и так далее. Как я могу достичь этой конфигурации, используя вышеупомянутые инструменты? Я знаю, как это сделать, используя только nginx, но, похоже, для пассажира требуется дополнительная настройка.

Моя текущая конфигурация nginx выглядит следующим образом:

server {
  listen 80;
  server_name example.com;

  # Tell Nginx and Passenger where your app's 'public' directory is
  root /var/www/app1/bundle/public;

  passenger_friendly_error_pages on;

  # Turn on Passenger
  passenger_enabled on;
  # Tell Passenger that your app is a Meteor app
  passenger_app_type node;
  passenger_startup_file main.js;

  # Tell your app where MongoDB is
  passenger_env_var MONGO_URL mongodb://127.0.0.1:27017/app1;
  # Tell your app what its root URL is
  passenger_env_var ROOT_URL http://www.example.com/app1;
}

Это подает заявку на www.example.com/, но я хотел бы переместить его в www.example.com/app1/,

1 ответ

Я пытаюсь сделать то же самое. Это работает, но у меня все еще есть небольшая проблема с моими активами (я использую рельсы)

В вашем блоке сервера вы хотите добавить блок местоположения.

Вот как я это делаю:

location ~ ^/app1(/.*|$) {
    root /srv/www/app1/current/public;

    passenger_base_uri /app1;
    passenger_app_root /srv/www/app1/current;
    passenger_document_root /srv/www/app1/current/public;
    passenger_enabled on;
}

И теперь example.com/app1 обслуживает ваше приложение.

Добавьте столько блоков местоположения, сколько вы хотите в одном шаблоне для большего количества приложений.

Другие вопросы по тегам