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

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

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

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

Ответ 1

В принципе, вы делаете то же самое, что и вы, чтобы получить все для вашего первого приложения, минуя установку 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;
    }
  }
}

Ответ 2

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

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

cp/etc/init.d/unicorn/etc/init.d/unicorn_app_x

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

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

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