共有ホスティングは手軽ですが、VPS なら速度、root アクセス、そして騒がしい隣人のいない環境が得られます。このガイドでは、新規の Ubuntu 24.04 または 22.04 サーバーを、Nginx を使った HTTPS のウェブサイトとして公開するまでを約 20 分で説明します。すべてのコマンドはそのままコピーできます。
必要なもの
- 少なくとも 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 は、すべて自分のドメインに置き換えてください。
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を削除してリロードします。