Как я могу разместить несколько приложений Rails с помощью nginx и Unicorn?

Как я могу разместить несколько приложений Rails с помощью nginx и Unicorn?

В настоящее время у меня есть один сайт, работающий благодаря "развертыванию на VPS. ".

Я искал, но мне нужно пошаговое руководство, чтобы заставить это работать. Результаты, которые я нашел, не так хорошо объяснены, чтобы помочь мне понять, как это сделать.


person Timmie Sarjanen    schedule 10.10.2012    source источник
comment
возможный дубликат несколько приложений rails на nginx и unicorn   -  person givanse    schedule 16.11.2014


Ответы (2)


По сути, вы делаете то же самое, что и для запуска всего вашего первого приложения, за исключением установки Nginx. Таким образом, независимо от того, какой у вас экземпляр Unicorn для первого запуска приложения, сделайте это снова для следующего приложения.

Затем вы можете просто добавить еще один блок сервера в конфигурацию Nginx с восходящим потоком, указывающим на этот новый экземпляр Unicorn.

Один Nginx, работающий для всей машины, вполне подойдет, с одним Unicorn, работающим для каждого приложения.

Надеюсь, это поможет некоторым.


Вот пример дополнительного блока сервера, который вам нужно добавить, чтобы Nginx обслуживал дополнительные приложения:

upstream unicorn_app_x {
  server unix:/path/to/unicorn/socket/or/http/url/here/unicorn.sock;
}

server {
  listen 127.0.0.1:80;
  server_name mysitehere.com aliasfor.mysitehere.com;
  root /path/to/rails/app/public;

    location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;

    if (!-f $request_filename) {
      proxy_pass http://unicorn_app_x;
      break;
    }
  }
}
person SoapiestWaffles    schedule 10.10.2012
comment
Так что в основном я просто копирую свои файлы, которые я получил из скринкастов, пропускаю рецепты для nginx и nodejs, меняю настройки и шапку deploy:install? - person Timmie Sarjanen; 11.10.2012
comment
У меня нет rails cast pro, поэтому я не вижу, как Райан сделал свое развертывание, но в значительной степени да. Я также обновлю свой ответ примером из моей конфигурации nginx для вас. Кроме того, стоит проверить RVM или RBEnv, если вы еще этого не сделали. Некоторые из наших приложений имеют разные требования к версии ruby, и RVM/rbenv позволяет с легкостью запускать разные приложения под разными версиями ruby! - person SoapiestWaffles; 12.10.2012
comment
В конце не забудьте sudo update-rc.d unicorn_app_x defaults на сервере, иначе вы столкнетесь с ошибкой 502 bad gateway из-за того, что unicorn не может запуститься.. - person Darme; 21.11.2013

Инструкций, приведенных выше, было недостаточно. в моем файле запуска: /etc/init.d/unicorn было несколько ссылок на конфигурацию одного хоста. С этими конфигурациями он не будет обслуживать второй хост.

поэтому я создал новый экземпляр запуска unicorn.

cp /etc/init.d/единорог /etc/init.d/unicorn_app_x

отредактировал /etc/init.d/unicorn_app_x, заменив ссылки на первый сайт ссылками на второй: включая уникальный сокет.

затем я автоматически добавил файл в автозагрузку: update-rc.d act_unicorn defaults

наконец-то сработало!

person Paul Moses    schedule 12.04.2015