Назад | Перейти на главную страницу

Ruby Passenger + Nginx или lighttpd + fcgi для виртуального хостинга

Я установил конфигурацию "пассажир + 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) при первом нажатии (вместе со всем остальным, что необходимо сделать) - довольно простой вопрос программирования.