Skip to content
VDS · はじめに

クイックスタート:15分でウェブサイトを公開

クリーンなマシンからHTTPS証明書付きのnginxサイトを稼働させるまでを説明します。インストール、サイトディレクトリ、ドメイン、ファイアウォール、確認を扱います。

更新日 2026年8月23日

シナリオ:Debian または Ubuntu のクリーンインストール、独自ドメイン、そして HTTPS でページを表示することを目標とします。すべてのコマンドは SSH 経由で root として実行します。

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

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

ブラウザで http://your-address を開きます。ウェルカムページが表示されるはずです。表示されない場合は、ファイアウォールを確認してください(手順 3)。

AlmaLinux では、apt の代わりに dnf を使用します。詳しくは AlmaLinux をご覧ください。

2. ドメインを設定する

レジストラのパネルで、「概要」タブにあるマシンのアドレスを指定して A レコードを追加します。

example.com.      A     203.0.113.10
www.example.com.  A     203.0.113.10

ドメインが正しいアドレスに解決されることを確認します。

apt install -y dnsutils
dig +short example.com

レコードの更新には、1 分から数時間かかります。dig が古いアドレスを返している間は、証明書を発行できません。

3. ポートを開放する

apt install -y ufw
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

最初に allow OpenSSH を実行し、その後で enable を実行してください。逆の順序で行うとアクセスが遮断され、テキストコンソール 経由でログインする必要があります。

4. サイトを作成する

mkdir -p /var/www/example.com
echo '<h1>Works</h1>' > /var/www/example.com/index.html
chown -R www-data:www-data /var/www/example.com

/etc/nginx/sites-available/example.com の設定:

server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com;
    index index.html;

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

有効化して適用します。

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

nginx -t は必須です。再起動の前に設定をチェックします。出力が syntax is ok と test is successful で終わっていない場合は、サービスを再起動しないでください。まずエラーを修正してください。

5. 証明書を発行する

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

Certbot はメールアドレスを尋ね、listen 443 ssl ブロックを追加し、HTTP リダイレクトを設定します。更新は自動的に設定されます。次のようにして確認できます。

certbot renew --dry-run

よくあるトラブル

症状原因
ブラウザでサイトが開かないufw でポート 80 または 443 が閉じている
Certbot:Timeout during connectドメインがまだマシンを指していない、またはポート 80 が閉じている
502 Bad Gatewaynginx が起動していないアプリケーションにプロキシしている — 対象サービスの systemctl status を確認してください
403 Forbiddenディレクトリに権限がない、または index.html が存在しない
自分のページではなく nginx のデフォルトページが表示される/etc/nginx/sites-enabled/default が削除されていない

これらの問題のログ:

tail -n 50 /var/log/nginx/error.log
journalctl -u nginx -n 50 --no-pager

次に、まだ実施していない場合は、最初の 1 時間のチェックリスト を使って基本的なセキュリティ対策を行ってください。