OffshoreVps
チュートリアル2026年10月14日読了時間 9 分執筆:OffshoreVps チーム

VPS に Nginx と HTTPS で Web サイトをホストする方法

Ubuntu に Nginx をインストールし、サーバーブロックを作成し、無料の Let's Encrypt 証明書を追加して高速化します。20 分で公開できるコピー&ペースト用コマンド付き。

共有ホスティングは手軽ですが、VPS なら速度、root アクセス、そして騒がしい隣人のいない環境が得られます。このガイドでは、新規の Ubuntu 24.04 または 22.04 サーバーを、Nginx を使った HTTPS のウェブサイトとして公開するまでを約 20 分で説明します。すべてのコマンドはそのままコピーできます。

Nginx と HTTPS でウェブサイトをホストするために使うコマンドを、「sudo apt update」から始めて表示している VPS のターミナルウィンドウ
このガイドでサーバー上で実行するコマンドの例。

必要なもの

  • 少なくとも 1 vCPU と 1 GB の RAM を備えた VPS(小規模なサイトのほとんどには、当社の基本プランで十分です)。
  • サーバーの IP アドレスを指すドメイン名(ドメインを VPS に向けるガイドをご覧ください)。
  • sudo ユーザーとしての SSH アクセス。サーバーが新規なら、まず基本的な堅牢化を行ってください。

1. Nginx をインストールする

sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginx

ブラウザーでサーバーの IP アドレスを開きます。デフォルトの Nginx ウェルカムページが表示されるはずです。表示されない場合は、ファイアウォールでポート 80 と 443 が許可されているか確認してください:

sudo ufw allow "Nginx Full"
sudo ufw status

2. サイト用フォルダーを作成する

sudo mkdir -p /var/www/example.com/html
sudo chown -R $USER:$USER /var/www/example.com
echo "<h1>It works</h1>" > /var/www/example.com/html/index.html

example.com は、すべて自分のドメインに置き換えてください。

このガイドの手順(順番どおり):1. 必要なもの;2. 1. Nginx をインストールする;3. 2. サイト用フォルダーを作成する;4. 4. Let's Encrypt で無料の HTTPS を追加する;5. 5. 高速化する;6. よくある問題
このガイドの手順(順番どおり)。

3. サーバーブロックを追加する

sudo nano /etc/nginx/sites-available/example.com
server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;
    root /var/www/example.com/html;
    index index.html;

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

有効化し、設定をテストして、リロードします:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

4. Let's Encrypt で無料の HTTPS を追加する

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com

Certbot がサーバーブロックを編集し、HTTP を HTTPS にリダイレクトして、証明書を自動更新するタイマーをインストールします。タイマーは systemctl list-timers | grep certbot で確認できます。

5. 高速化する

静的ファイルの圧縮とブラウザーキャッシュを有効にします。これを server ブロック内に追加します:

gzip on;
gzip_types text/css application/javascript application/json image/svg+xml;

location ~* \.(css|js|png|jpg|jpeg|webp|svg|woff2)$ {
    expires 30d;
    add_header Cache-Control "public";
}

その後、Nginx をリロードします。WordPress のような動的サイトでは、PHP-FPM をインストールして .php リクエストを渡すか、前段にキャッシュプラグインを置きます。

よくある問題

  • 403 Forbidden:Nginx がフォルダーを読み取れません。所有者と、すべての親ディレクトリが実行可能であること(chmod o+x)を確認してください。
  • Certbot が失敗する:ドメインがまだサーバーを指していないか、ポート 80 がブロックされています。
  • デフォルトページが表示され続ける:/etc/nginx/sites-enabled/default を削除してリロードします。