3

Rails 2.3 //Capistrano / Unicorn / Foreman/Upstartを使用してSpreeアプリをデプロイしています。

私が理解できない部分は、/ myapp / shared / sockets / unicorn.sockをフォアマン/アップスタートプロセス管理によって自動的に作成する方法です(少なくとも、unixソケットはそれらから取得する必要があると思います)。

UNIXソケットの作成の責任は何ですか?

4

2 に答える 2

1

構成がnginx+unicornであるとしましょう。ご存知かもしれませんが、config dirに、unicorn.rbという名前のファイルを作成する必要があります。このファイルには、次のような非静的リクエストの処理方法の説明があります。

upstream unicapd {
  server unix:/tmp/capd.sock fail_timeout=0;
}

チュートリアルで述べたものとは異なる名前をアップストリームに付けました。これにより、同じホスト上でさまざまなアプリケーションをホストできるようになります。

次に、Nginx構成のvhostsディレクトリに次のようなものを配置します(ホストファイルが「vhosts/myconf.conf」であるとします。

location @unicorn1 {
proxy_pass http://unicapd;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
   }

ここに、unicorn.rb構成ファイルに関連する「http://unicapd」という名前の場所からの非静的リクエストを処理するためのnginxへの指示が表示されます。この設定は、init.d(Debianを実行している場合)ディレクトリにあるファイルによってトリガーされます。

概要:bundle exec unicorn --restartと言うと、init.dのスクリプトがコードをトリガーし、Railsアプリからの動的コンテンツを提供する「特別な」ファイル/tmp/capd.sockを形成します。

于 2012-11-15T08:21:56.340 に答える
0

ユニコーンの構成で構成されたunixソケットへのパス:
...
listen "/home/user/app/shared/sockets/unicorn.sock", :backlog => 64
...

次にnginx.confで:

    location / {
            try_files $uri @unicorn;
            proxy_cache cache;
            proxy_cache_valid 10m;
    }        
    location @unicorn {
            proxy_set_header  Client-Ip $remote_addr;
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header  Host $host;
            proxy_pass  http://unix:/home/user/apps/shared/sockets/unicorn.sock;
    }

アプリケーションが起動すると、ユニコーンは設定されたパスにソケットファイルを作成します(ユーザーはこのパスへの書き込みアクセス権を持っている必要があります)

于 2012-11-15T18:58:32.780 に答える