В настоящее время я запускаю простое приложение Meteor.js на сервере с использованием Phusion Passenger + Nginx.
Я бы хотел настроить его так, чтобы у меня было одно основное приложение на www.example.com
и дополнительные приложения на www.example.com/app1
, www.example.com/app2
и так далее. Как я могу добиться такой конфигурации с помощью вышеупомянутых инструментов? Я знаю, как это сделать, используя только nginx, но похоже, что требуется дополнительная настройка для Passenger.
Моя текущая конфигурация 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/
.
Я стараюсь делать то же самое. Это работает, но У меня все еще есть небольшая проблема с моими активами (Использую рельсы)
В твоем сервер блок, который вы хотите добавить расположение блок.
Вот как я это делаю:
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 обслуживает ваше приложение.
Добавьте столько мест блокировать как хотите, по той же схеме для других приложений.