nginxの設定と管理

〜 軽量・高速なWebサーバー&リバースプロキシを自在に操る 〜


目次

📌 概要

nginx(エンジンエックス)は、HTTPサーバーとしてだけでなく、SSLの終端やリバースプロキシとしても優秀なWebサーバーです。本記事では以下のスキルを習得できます:

  • nginxの基本構造と設定方法
  • SSL(HTTPS)対応の設定
  • リバースプロキシとしての動作
  • HTTPリダイレクトの書き方

🛠 1. nginxのインストールと構成

🔧 インストール

Debian/Ubuntu 系:

sudo apt update
sudo apt install nginx

RHEL/CentOS 系:

sudo dnf install nginx

📁 主な設定ファイルとディレクトリ

パス説明
/etc/nginx/nginx.confメイン設定ファイル
/etc/nginx/conf.d/サブ設定ファイル(仮想ホストなど)
/var/www/html/Webの公開ディレクトリ
/etc/nginx/sites-available/Debian系の仮想ホスト設定(シンボリックリンクで利用)

🌐 2. HTTPサーバーとしての設定

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

location / {
index index.html index.htm;
}
}
  • listen 80:HTTPポートで待機
  • server_name:ホスト名でバーチャルホスト切替
  • root:コンテンツの配置パス

✅ 設定反映と確認

sudo nginx -t      # 設定の構文チェック
sudo systemctl reload nginx # 再起動せず設定再読み込み

🔐 3. nginxでSSLを設定する(HTTPS対応)

server {
listen 443 ssl;
server_name example.com;

ssl_certificate /etc/ssl/certs/example.crt;
ssl_certificate_key /etc/ssl/private/example.key;

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;

location / {
root /var/www/html;
index index.html;
}
}

ポイント解説

ディレクティブ内容
ssl_certificateサーバー証明書のパス
ssl_certificate_key秘密鍵のパス
ssl_protocolsTLSバージョンの指定(古いSSLを無効化)
ssl_ciphers使用する暗号スイートの制限

🔄 4. リバースプロキシの設定

nginx はリバースプロキシとして、別のWebアプリやAPIサーバーの前段に配置可能です。

server {
listen 80;
server_name app.example.com;

location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

補足

  • proxy_pass:バックエンドサーバーのURL
  • proxy_set_header:必要なHTTPヘッダーを設定

↪️ 5. HTTPからHTTPSへのリダイレクト

server {
listen 80;
server_name example.com;

return 301 https://$host$request_uri;
}
  • return 301:恒久的リダイレクト(SEO的にも正しい)
  • $host$request_uri:完全なリクエストURLを維持

🔍 6. よく使う管理コマンド

コマンド内容
nginx -t設定の構文チェック
systemctl start nginxnginx起動
systemctl reload nginx設定再読み込み
nginx -s reload同上(手動で実行時)

📄 まとめ表

項目内容設定例
HTTPサーバー静的ファイル配信root, index
SSLHTTPS化ssl_certificate, ssl_protocols
リバースプロキシAPI中継proxy_pass, proxy_set_header
リダイレクトHTTPS強制return 301
管理起動・設定反映nginx -t, systemctl reload nginx

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次