私は約50GBのメモリを持つUbuntu 14.04を実行しているLinuxボックスを持っています。1台のNginxリバースプロキシサーバを持つ複数のUnicorn App Serverを持つことは悪い習慣ですか?
私は5つまたは6つのRuby-on-Rails Webアプリケーションを持っていて、それぞれUnicorn Appサーバーを備えていて、すべてNginxリバースプロキシサーバーによってサービスされています。
各アプリはサブディレクトリでホストされています。 例:
- www.webserver.com/app1
- www.webserver.com/app2
各アプリは多分一日あたり50〜100個の要求を取得します。彼らは私の会社のビジネスプロセスを促進するための小さなアプリです。
私のnginxの設定ファイルは次のようになります
:upstream app1 {
#path to Unicorn SOCK file;
}
upstream app2 {
#path to Unicorn SOCK file;
}
upstream app3 {
#path to Unicorn SOCK file;
}
# ...several more apps
server {
listen 443 ssl;
access_log #path;
error_log #path;
ssl_certificate #path;
ssl_certificate_key #path;
add_header X-UA-Compatible "IE=Edge,chrome=1";
root /srv/apps/app1/public;
location /app1 {
proxy_pass http://app1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
}
location /app2 {
proxy_pass http://app2;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
}
location /app3 {
proxy_pass http://app3;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
}
# ...several more apps
}
このセットアップは1年かそこらのために問題なく働いているが、私は、私はすべて間違ってこれをやっているこのしつこい感じている....
アプリを追加し続けると問題にぶつかりますか?これを行うより良い方法はありますか?
更新:
- 静的リソースパスの衝突: "問題、" 私が意味することで
?
- メモリの問題?すなわち、私は同じ動作を達成するために必要以上のものを使用していますか?
によって「これを行うには良い方法、」私は意味:
URL にサブディレクトリの名前を解析することによって、関連するユニコーンサーバーにリクエストを送信するよりも、他の- 複数のアプリを提供するために、単一のNginxリバースプロキシを使用する必要がありますか?
感謝。しかし、ちょっとわかりましたので、質問を更新しました...本当に探しているのは、単一のNginxリバースプロキシを使用した複数のアプリケーションの一般的なプラクティスが良いアプローチであるかどうかです。 – chester