【2026年版】Nginxの始め方 — 高速Webサーバーの設定入門
- NginxをLinuxにインストールして起動できる
- 静的ファイルを配信する基本設定ができる
- リバースプロキシの設定ができる
- Let's EncryptでHTTPS化できる
クイックリファレンス
インストールと基本操作
# Ubuntu/Debian
sudo apt update && sudo apt install nginx
# CentOS/RHEL
sudo dnf install nginx
# 起動・停止・再起動
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl reload nginx # 設定リロード(ダウンタイムなし)
# 設定ファイルの構文チェック
sudo nginx -t
# バージョン確認
nginx -v
基本的なサーバーブロック設定
# /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;
}
}
リバースプロキシ設定
server {
listen 80;
server_name app.example.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Let’s Encrypt でHTTPS化
# certbot インストール
sudo apt install certbot python3-certbot-nginx
# 証明書取得 + Nginx設定自動更新
sudo certbot --nginx -d example.com -d www.example.com
# 自動更新のテスト
sudo certbot renew --dry-run
よく使うシンボリックリンク操作
# サイト有効化
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
# 設定反映
sudo nginx -t && sudo systemctl reload nginx
よくある詰まりポイント
Q. nginx -t は通るのにブラウザで開けない
A. ファイアウォールが原因のことが多いです。sudo ufw allow 'Nginx Full'(Ubuntu)または sudo firewall-cmd --add-service=http --permanent(CentOS)でポートを開けてください。セキュリティグループ設定(AWS/GCPの場合)も確認を。
Q. 403 Forbidden が出る
A. ドキュメントルートのパーミッション問題です。sudo chown -R www-data:www-data /var/www/example.com(Ubuntu)でNginxプロセスユーザーに所有権を変更してください。ディレクトリに 755、ファイルに 644 のパーミッションが標準です。
Q. proxy_pass を設定したのにバックエンドに繋がらない
A. バックエンドアプリが起動しているか curl localhost:3000 で確認してください。Nginxのエラーログ(/var/log/nginx/error.log)に connection refused と出ていれば、アプリ側の起動に問題があります。upstream ブロックで keepalive を設定するとコネクションプールが効いてパフォーマンスも上がります。
Nginxってよく聞くけど、何をするものなの?
リバースプロキシって何?直接アクセスじゃダメなの?
設定ファイルの書き方って難しそう…
HTTPSにするにはどうしたらいいの?
Let's Encryptの `certbot` を使うのが一番手軽だよ。`certbot --nginx -d example.com` を実行するだけで、証明書の取得からNginx設定の書き換えまで自動でやってくれるんだ。証明書の自動更新も `certbot renew` でできるよ。
複数のサービスを同じサーバーで動かせるの?
パフォーマンスチューニングって何をするの?