クイックスタート: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 Gateway | nginx が起動していないアプリケーションにプロキシしている — 対象サービスの 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 時間のチェックリスト を使って基本的なセキュリティ対策を行ってください。