2026年7月17日

2026年7月17日

Nginxで複数のサイトを運用するバーチャルホスト設定

はじめに

ウェブサイトを複数運用する場合、効率的なサーバー管理は不可欠です。Nginxを利用することで、一台のサーバー上で複数のドメインや異なるウェブアプリケーションを同時に動作させることが可能です。この記事では、Nginxで複数サイトのバーチャルホスト設定を行うための基本的な手順と設定例を紹介します。

症状・背景

  • ドメイン名を変更する際のスムーズな移行
  • サイトを追加または削除する必要がある場合
  • 同じサーバー上で異なるウェブアプリケーション(WordPress、Djangoなど)を管理したい場合
  • 複数の開発者やチームが同一サーバーで作業を行うための環境整備

手順・設定方法

ステップ1: Nginxのインストールと基本構成ファイルの確認

# UbuntuやDebian系ディストリビューションの場合、Nginxをインストールします。
sudo apt-get update
sudo apt-get install nginx

# CentOSやRHEL系ディストリビューションでは以下のコマンドを使用します。
sudo yum install epel-release
sudo yum install nginx

ステップ2: バーチャルホストの基本設定

# Nginxのデフォルト設定ファイルをバックアップとして保存します。
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.backup

# 新しいバーチャルホスト用に新しい設定ファイルを作成します。
sudo nano /etc/nginx/sites-available/example.com

# ファイル内に以下のような基本的な設定を追加します。
server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example.com/public_html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    error_log /var/log/nginx/example.com.error.log;
    access_log /var/log/nginx/example.com.access.log;
}

# サイトが有効になるようにシンボリックリンクを作成します。
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

# 設定をチェックしてNginxを再起動します。
sudo nginx -t
sudo systemctl restart nginx

ステップ3: PHPと他のアプリケーションのインストールと設定

# PHP-FPMをインストールし、必要に応じて設定ファイルを編集します。
sudo apt-get install php-fpm
sudo nano /etc/php/7.4/fpm/pool.d/www.conf

# Nginxのバーチャルホスト設定を修正してPHP処理を有効化します。
server {
    ...
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }
}

# Nginxを再起動し、設定の変更を反映させます。
sudo systemctl restart nginx

ステップ4: 複数サイト間での共通設定と分離

# サイト間で共有する設定ファイルを作成します。
sudo nano /etc/nginx/snippets/example.conf

# それらの設定を個別のバーチャルホスト設定にインクルードします。
server {
    ...
    include snippets/example.conf;
}

# 共通設定が適切に動作するか確認します。
sudo nginx -t

注意事項

  • DNSレコード: ドメイン名を新しいサーバーのIPアドレスに変更することを忘れないでください。
  • 安全性: SSL/TLS証明書のインストールと設定を行い、HTTPSでの通信を可能にします。
  • セキュリティ上の注意: ファイルやディレクトリの所有権やパーミッションを適切に設定し、不正アクセスから保護します。
  • パフォーマンス/運用上の注意: 高負荷時の動作確認と最適化を行い、サーバーのパフォーマンスを維持します。

まとめ

1. インストール: Nginxと必要なモジュールやアプリケーションをインストールし、環境を整えます。

2. 基本設定: 各サイトのバーチャルホスト設定ファイルを作成し、必要な情報を配置します。

3. PHP等のインテグレーション: PHP-FPMなどのバックエンド処理エンジンとNginxを連携させます。

4. 共通化: 重複する設定は別途ファイルに分けて管理し、個別のバーチャルホストで参照します。

5. 保守: 機密性やパフォーマンスの観点から定期的な監視とメンテナンスを行います。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ