2026年5月19日
2026年5月19日
VPSに複数のWebアプリを並行して運用する方法
はじめに
本記事では、1台のVPS上で複数のWebアプリを並行して運用する方法について解説します。多くの中小企業や個人サイト運営者にとって、コスト削減と効率化が重要な課題です。一方で、それぞれのWebアプリケーション間でのリソース競合や管理の難しさも存在します。本記事では、そのような問題を解決するために必要な手順と設定方法をご紹介します。
症状・背景
このテーマが必要になる主な場面は以下の通りです:
- 1つのドメイン名で複数のWebサイトを運用する
- 開発環境と生産環境を同じVPS上で管理したい
- コスト削減のために複数のWebアプリケーションを集約したい
手順・設定方法
ステップ1: Nginxでの仮想ホスティング設定
# まず、Nginxがインストールされていることを確認します。
sudo apt update && sudo apt install nginx
# Nginxの基本設定ファイルを編集します。
sudo nano /etc/nginx/sites-available/default
# 以下の設定で複数のウェブアプリケーションを仮想ホスティングするように変更します。
server {
listen 80;
server_name example1.com;
location / {
root /var/www/example1;
index index.html index.htm;
}
}
server {
listen 80;
server_name example2.com;
location / {
root /var/www/example2;
index index.html index.htm;
}
}
ステップ2: ドキュメントルートの設定
# 次に、各ウェブアプリケーションのドキュメントルートを作成します。
sudo mkdir -p /var/www/example1 /var/www/example2
# 各ウェブアプリケーションに必要なファイルを配置します。
sudo cp -r /path/to/your/app1/* /var/www/example1/
sudo cp -r /path/to/your/app2/* /var/www/example2/
# それぞれのウェブアプリケーション用のNginxシンボリックリンクを作成します。
sudo ln -s /etc/nginx/sites-available/example1.com /etc/nginx/sites-enabled
sudo ln -s /etc/nginx/sites-available/example2.com /etc/nginx/sites-enabled
ステップ3: SSL設定(オプション)
# SSLを有効にしたい場合は、Let's Encryptを使用します。
sudo apt install certbot python3-certbot-nginx
# Let's EncryptでSSL証明書を取得します。
sudo certbot --nginx -d example1.com -d example2.com
ステップ4: 実践/トラブルシュート/監視
# Nginxのサービスを再読み込みします。
sudo systemctl reload nginx
# サーバーの状態を定期的に確認します。
sudo tail -f /var/log/nginx/error.log
注意事項
- 複数のウェブアプリケーション間でファイル名やディレクトリ名が被らないように注意してください。
- SSL証明書の期限切れに備えて、監視と更新作業が必要となります。
- セキュリティ上は、各Webアプリケーションに対して異なるユーザーアカウントを使用することを推奨します。
まとめ
1. Nginxでの仮想ホスティング設定: Nginxの配置ファイルに複数のウェブサイトの設定を追加します。
2. ドキュメントルートの設定: 各ウェブアプリケーション用のドキュメントルートを作成し、必要なファイルを配置します。
3. SSL設定(オプション): SSL証明書を取得して安全な通信を確保します。
4. 実践/トラブルシュート/監視: Nginxサービスを再読み込みし、定期的な監視と更新を行います。
関連記事: