У меня есть ящик Linux под управлением Ubuntu 14.04 с объемом памяти около 50 гб.Неплохая практика иметь несколько серверов приложений Unicorn с одним обратным прокси-сервером Nginx?
У меня есть веб-приложения 5 или 6 Ruby-on-Rails, каждый из которых имеет сервер приложений Unicorn, обслуживаемый обратным прокси-сервером Nginx.
Каждое приложение размещено в подкаталоге. например:
- www.webserver.com/app1
- www.webserver.com/app2
Каждое приложение получает, может быть 50-100 запросов в день. Это все небольшие приложения для облегчения бизнес-процессов в моей фирме.
Мой Nginx конфигурационный файл выглядит примерно так:
upstream app1 {
#path to Unicorn SOCK file;
}
upstream app2 {
#path to Unicorn SOCK file;
}
upstream app3 {
#path to Unicorn SOCK file;
}
# ...several more apps
server {
listen 443 ssl;
access_log #path;
error_log #path;
ssl_certificate #path;
ssl_certificate_key #path;
add_header X-UA-Compatible "IE=Edge,chrome=1";
root /srv/apps/app1/public;
location /app1 {
proxy_pass http://app1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
}
location /app2 {
proxy_pass http://app2;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
}
location /app3 {
proxy_pass http://app3;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
}
# ...several more apps
}
Эта установка работала без проблем в течение года или около того, но у меня есть это мучительное чувство, что я делаю это все неправильно ....
Я буду сталкиваться с проблемами, если я буду продолжать добавлять приложения? Есть лучший способ сделать это?
Update:
Под "проблемами", я имею в виду:
- статических столкновений пути ресурсов?
- проблемы с памятью? а именно, используя больше, чем мне нужно для достижения такого же поведения?
И «лучший способ сделать это,» я имею в виду:
- кроме отправки запросов к соответствующему единорога серверу путем разбора из имени поддиректории в URL
- Должен ли я использовать один обратный прокси Nginx для обслуживания нескольких приложений?
спасибо за совет о том, как конденсировать файлу немного, в том числе прокси-конфигурации в отдельном файле. Тем не менее, я просто обновил свой вопрос, так что это немного яснее ... то, что я действительно ищу, - это хороший подход к нескольким приложениям с единственным прокси-сервером Nginx, а если нет, то почему? – chester