11

nginx と Unicorn で複数の Rails アプリをホストするにはどうすればよいですか?

「 VPS への展開」のおかげで、現在 1 つのサイトを稼働させています。

検索しましたが、これを機能させるには段階的なガイドが必要です。私が見つけた結果は、これを達成する方法を理解するのに役立つほど十分に説明されていません.

4

2 に答える 2

14

基本的に、Nginx のインストールを除いて、最初のアプリケーションを実行するためのすべてを取得するために行ったのと同じことを行います。したがって、最初のアプリケーションを実行するために Unicorn インスタンスを取得したとしても、次のアプリケーションでもう一度実行してください。

次に、その新しい Unicorn インスタンスを指すアップストリームを使用して、Nginx 構成に別のサーバー ブロックを追加するだけです。

マシン全体で 1 つの Nginx を実行するだけで十分です。アプリケーションごとに 1 つの 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;
    }
  }
}
于 2012-10-10T23:09:29.013 に答える
0

上記の説明では十分ではありませんでした。私の起動ファイル: /etc/init.d/unicorn には、単一のホストの構成への参照がいくつかありました。これらの構成では、2 番目のホストにはサービスを提供しません。

そこで、ユニコーンの新しいスタートアップ インスタンスを作成しました。

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

/etc/init.d/unicorn_app_x を編集し、最初のサイトへの参照を 2 番目のサイトへの参照に置き換えました: 一意のソケットを含みます。

次に、自動的に起動するようにファイルを追加しました: update-rc.d act_unicorn defaults

それはついに働いた!

于 2015-04-12T08:44:34.717 に答える