質問: 既にさくらVPSを借り、Djangoで作成したアプリを1つ公開しています。 gunicorn、nginxを利用しています。 追加で、後2つのアプリを公開しようと考えています。 下記サイトによると、nginxの設定を変えれば、一つのサーバーで複数のサービスを運用できるということです。 http://tech.camph.net/%E3%80%90nginx%E3%80%91%E4%B8%80%E3%81%A4%E3%81%AE%E3%82%B5%E3%83%BC%E3%83%90%E3%81%A7%E8%A4%87%E6%95%B0%E3%81%AE%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%82%92%E9%81%8B%E7%94%A8%E3%81%99%E3%82%8B/ ### 一つのVPSで複数アプリを起動させることについて そもそも、一つのVPSで複数アプリを起動させることは、多くの方がやられていることなのでしょうか。 やめておいた方が良い理由はありますか。私が思いついたデメリットとしては、一つにしておくと、そのサーバーがダメになった場合、全滅してしまうという点ですが、それ以外にあるのでしょうか。 さくらVPSの価格表を見てみると、メモリと料金はほぼ比例しているようです。 https://secure.sakura.ad.jp/order/vps/#/plan もし、複数入れるとメモリが足りないということであれば、複数借りるのではなく、一つのままでメモリの大きなプランに変えた方が、管理面からもメリットが大きいのではないか(同じ設定をそれぞれやらなくて済む)と思ったのですが。 ### nginxの設定について 現状、/etc/nginx/site-availables/defaultの設定は、下記のようになっており、これで動いています。 ``` # 現状の設定 upstream test1{ server 127.0.0.1:8000; } server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; access_log /var/log/nginx/localhost.access_log; server_name localhost; location / { proxy_set_header Host $host; proxy_pass http://test1; } ``` 同じVPSにtest2というアプリを追加する場合、単純に上記に下記を追記するだけで良いのでしょうか? ``` server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; access_log /var/log/nginx/localhost.access_log; server_name localhost; location / { proxy_set_header Host $host; proxy_pass http://test2; } } ``` お分かりの方、ご教示頂ければ幸いです。 よろしくお願いいたします。
回答: 一つのVPSで複数のWebサービスを稼働させることは、ごく普通のことだと思います。 無料もしくは低料金の共用サーバならともかく、VPSで本格的に運用しようというのであれば、それなりのリソースを有していることが多いので、1つのサービスだけでサーバを占有するといった(ある意味)贅沢な使い方をする事の方が少ないと思います。 当然、各Webサービスがどれ程のPVでどれ位のリソースを必要とするかにもよるのですが、全てのサービスが同時にピークを迎えるということはそれ程無いので(あるいはそういうサービスを組合せれば良いので)、複数稼働させる方向で検討を進められたら良いのではないでしょうか。 > > そのサーバーがダメになった場合、全滅してしまう > > > という点についても、各サービスがどれ位の可用性を求められるモノなのかに拠ると思います。 もしサービスダウンが問題になるなら、個々のサービスを複数の中途半端なサーバへ分散させるよりも、多少高価でもしっかりしたサーバで運用し、もう一台、少し低スペックでも良いので安価なサーバ上にバックアップ環境を構築した方が、少ないコストで信頼性の高いサービスを提供出来ると思います。 さて、nginxの設定の件ですが、色々な流儀があると思いますけれども、独立したサービスなのであれば、サイト毎に root ディレクトリを分けた方が良いと思います。 (現状ではデフォルトのパスがrootになっているため明示的に記載されていないだけ) それと、アクセスログなども出力先を分けた方が管理し易いのでは? その辺の細かいことは、mulberryfieldsさんご自身が参照されているページの「設定例」を参考になさると良いのではないでしょうか。 個人的な考えですが、複数サイトを運用するような場合には、省略可能な設定値も敢えて同じフォーマットで記載しておくと、diffを確認するだけ各サービス間の設定の差分を把握しやすいのでオススメです。 もっと詳しくお知りになりたい点があれば、問題を分割してより具体的にご質問されると、良い回答が得られると思います。