Nginxの基本設定完全ガイド|仮想ホスト・SSL・リバースプロキシまで1時間でマスター
Nginxの基本設定完全ガイド|初心者から実務対応まで
このページでは、Nginx(エンジンエックス)の基本的な設定方法について、Webエンジニアが押さえておくべきポイントを1時間程度で学べるボリュームで網羅的に解説します。
1. Nginxとは?
2. インストール方法(Ubuntu/Debian)
sudo apt update
sudo apt install nginx
3. ディレクトリ構成(/etc/nginx 以下)
/etc/nginx/nginx.conf:メイン設定ファイル/etc/nginx/sites-available/:仮想ホスト設定を保存/etc/nginx/sites-enabled/:有効化された仮想ホストのシンボリックリンク/var/www/html/:デフォルトのドキュメントルート
4. 基本的な設定項目
serverブロック
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
重要ディレクティブの説明
listen:ポート番号の指定server_name:バーチャルホストのドメイン名root:ドキュメントルートindex:デフォルトのファイルlocation:ルーティングルール
5. 設定ファイルのテストと再読み込み
# 構文チェック
sudo nginx -t
# 設定を再読み込み
sudo systemctl reload nginx
6. リバースプロキシの設定
location /api/ {
proxy_pass http://localhost:3000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
7. HTTPS対応(Let's Encrypt + SSL)
sudo certbot --nginx -d example.com
8. HTTPからHTTPSへリダイレクト
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
9. ログ設定
- アクセスログ:
/var/log/nginx/access.log - エラーログ:
/var/log/nginx/error.log
10. セキュリティ・パフォーマンス強化
- Gzip圧縮の有効化
- HTTPヘッダ制御(X-Frame-Optionsなど)
- キャッシュ制御
- rate limiting(アクセス制限)
11. systemdによるNginx管理
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx
12. トラブルシューティング
- ポート80/443が開いているか確認(
ufw allowなど) - 設定ミス →
nginx -tで構文チェック - 権限エラー → ファイルパーミッションと所有者を確認
13. まとめ
- Nginxは軽量で高機能なWebサーバー
- 仮想ホスト、リバースプロキシ、HTTPS対応までシンプルに設定可能
- セキュリティやパフォーマンスのチューニングも柔軟にできる