В настоящее время мой сервер Ubuntu запускает приложения RubyOnRails с Apache2 + Passenger.
Теперь мне нужно развернуть Sinatra (приложение Plain Ruby), которое должно работать на Thin вместо Passenger.
Я знаком с настройкой Apache и хотел бы продолжить в том же духе с VirtualHosts (на доступных сайтах) и т. Д.
Как я могу «направить» VirtualHost в Apache на тонкий сервер?
Вы будете настраивать Apache как «обратный прокси-сервер» - этот поисковый запрос укажет вам на множество информации, касающейся конфигурации, но вот пример, который должен помочь вам в большей части пути к развертыванию, которое вы ищете.
Если вы будете использовать другое имя хоста и другое <VirtualHost>
, то вы можете сделать что-то вроде этого:
<VirtualHost *:80>
ServerName sinatra.example.com
# Any normal settings you use go here; access logs, ServerAdmin, etc
# Replace the 9999 below with the port that thin is using, note that it can't
# be the same as Apache's port.
# This can also be a service running on adifferent computer if you
# use another IP address instead of 127.0.0.1
ProxyPass / http://127.0.0.1:9999/
ProxyPassReverse / http://127.0.0.1:9999/
</VirtualHost>
Альтернативной конфигурацией, которая может быть вам полезна, было бы просто сделать ее подкаталогом существующего <VirualHost>
; вы бы добавили <Location>
блокировать существующую конфигурацию:
<Location /sinatra/>
ProxyPass http://127.0.0.1:9999/
ProxyPassReverse http://127.0.0.1:9999/
</Location>
Вы можете использовать Varnish для маршрутизации запросов приложений. Я проделал это в своей последней работе с нашим стеком RoR / Varnish / NGINX.
Кроме того, кеширование Varnish - это круто!