Я установил конфигурацию "пассажир + nginx" и планирую предложить бесплатный некоммерческий хостинг (или фактически развертывание "на лету") для стоечных фреймворков (например, кемпинга, sinatra).
У меня проблема с пассажиром. Для каждого приложения вам необходимо настроить nginx.conf (то же самое с apache, поэтому это не проблема nginx) с помощью:
server {
...
passenger_base_uri /app1;
passenger_base_uri /app2;
passenger_base_uri /app3;
}
Теперь это не так уж плохо, поскольку теоретически я мог бы позволить пользователю запускать только одно приложение в его веб-пространстве, но даже в этом случае мне нужно создать новый каталог сервера на nginx, например. (user.domain.com).
Поскольку это в основном будет использоваться для развертывания приложений, поведение, на которое я смотрю, - это скорее возможность автоматически сопоставить несколько приложений (например, app1, app2, app3, app4) на одном сервере (ваш app.com/app1 yourapp.com/app2 ) без необходимости каждый раз обновлять файл nginx или apache.
Кажется, это ограничение для пассажира. Поэтому я думаю об альтернативе с lighttpd и fastcgi.
Позволит ли это немедленное развертывание, не касаясь файла конфигурации lighttpd, например. Я создаю новый каталог с app2, и он сразу запустится? Как вы оцениваете разницу в производительности между пассажиром + nginx и lighttpd + fastcgi? заранее спасибо
детали сценария: на nginx + пассажир - пользователь не может добавить новую подпапку и запустить другое приложение sinatra / camp без объявления пути в nginx.conf и перезапуска сервера;
желаемое поведение с новой настройкой: - пользователь может добавить новую папку с новым приложением, и оно будет работать на lighttpd + fcgi без дополнительной настройки веб-сервера;
Я бы выбрал третий вариант - nginx с fastcgi. Довольно тривиально настроить виртуальный хост nginx, используя включенный каталог со всеми суб-путями, которые вы хотите направить в каждое приложение, и автоматизировать создание процесса Rack (работающего под DAEMON Tools) при первом нажатии (вместе со всем остальным, что необходимо сделать) - довольно простой вопрос программирования.