

sinatraで作ったサイトをunicorn+nginxで公開していて、もう1つサイトを追加したいのですが、やり方がわからないので教えて下さい。

現在以下のようになっています。(関係ありそうな部分だけ抜粋しています)

unicornの設定

[code]

    listen "/tmp/unicorn_server.sock", backlog: 1024
    
[/code]

nginxの設定

[code]

    # unicorn
    upstream unicorn_server {
      server unix:/tmp/unicorn_server.sock;
    }
    
    
    # サイトA
    server {
    
      listen       80;
      server_name  site-a.com;
      root         /var/www/site-a/public;
    
      location / {
        proxy_pass http://unicorn_server;
      }
    
    }
    
[/code]

これにサイトBを追加したいのですが、どのようにしたらよいのかまったくわかりません。

unicornをもう1つ立ち上げてlistenを新しく作り、サイトAのようにnginxに追加するのでしょうか?  
それとも1つのunicornの中に複数のlistenをもたせるのでしょうか?

そもそもunicornって複数立ち上げられるのでしょうか。。。  
初めてのことでよくわからない事だらけです。

参考になるサイト、もしくは具体的な設定例を教えていただけると助かります。

他に必要な情報があれば書き込むので言ってください。

よろしくお願いします。


CC BY-SA 3.0
2015-03-15T12:13:40.277
7940
2015-03-16T02:34:30.127
2015-03-16T02:34:30.127
5793
5855
question
ruby nginx sinatra unicorn
複数のアプリケーションを動作させる場合のunicorn+nginxの設定


サイトB用のUnicornを別途起動する必要があります。その際、設定ファイルにサイトAとは異なるsockファイルを指定する必要があります。  
（下の例では`/tmp/unicorn_server_b.sock`を指定しています。）

[code]

    listen "/tmp/unicorn_server_b.sock", backlog: 1024
    
[/code]

また、nginxの設定変更も必要です。設定ファイルにもサイトB用の設定を追記します。  
（サイトAはsite-a.com、サイトBはsite-b.comというドメインを持っていると仮定）

[code]

    # サイトA用設定
    upstream unicorn_server {
      server unix:/tmp/unicorn_server.sock;
    }
    
    server {
    
      listen       80;
      server_name  site-a.com;
      root         /var/www/site-a/public;
    
      location / {
        proxy_pass http://unicorn_server;
      }
    
    }
    
    # サイトB用設定
    upstream unicorn_server_b {
      server unix:/tmp/unicorn_server_b.sock;
    }
    
    server {
    
      listen       80;
      server_name  site-b.com;
      root         /var/www/site-b/public;
    
      location / {
        proxy_pass http://unicorn_server_b;
      }
    
    }
    
[/code]


CC BY-SA 3.0
2015-03-15T12:51:33.293
7942
2015-03-15T12:51:33.293
8752
7940
answer