機能 | 説明・用途 |
---|---|
Webサーバー | 静的なファイル(HTML、画像、動画、CSS、JSなど)を直接配信する |
リバースプロキシ | クライアントからのリクエストを、裏のアプリやサーバー(Node-REDなど)に中継する |
ロードバランサー | 複数のサーバーにアクセスを分散し、負荷を調整する |
SSL/TLS終端 | HTTPS(暗号化通信)の受付・復号を担当する |
キャッシュサーバー | 一度取得したファイルを保存しておき、次回高速に返す |
アクセス制御 | IP制限、認証、パスワード保護など |
リダイレクト | 特定のURLを他のURLへ転送する |
圧縮・最適化 | データをgzip圧縮して転送量削減 |
使い方の例
- Webサーバーのみとして使う(ApacheのようにHTML配信だけ)
- リバースプロキシだけ使う(Node-REDやアプリの表玄関だけ担当)
- Webサーバー+プロキシの併用(静的ファイルはNginx、APIリクエストはNode-REDへプロキシ)
- SSLゲートウェイ(内部はhttp、外部だけhttps化)
- 負荷分散(裏で複数アプリに振り分け)
Nginxの設定でよく触る場所
1. 設定ファイルの場所
Nginxの設定は、テキストファイルで管理されています。主な場所は:
/etc/nginx/nginx.conf
→ メイン設定ファイル(全体の設定、全サーバー共通)/etc/nginx/sites-available/
→ 個別のサイトごとの設定ファイル(仮想ホストの単位で分かれていることが多い)/etc/nginx/sites-enabled/
→ sites-available から有効化されたファイルへのシンボリックリンク
→ 実際にNginxが読み込むのはこちら
通常は sites-available
配下の自分のドメイン名のファイル(例:/etc/nginx/sites-available/hoge.co.jp
)を編集します。
2. よく編集する設定ブロック
server { ... }
→ サイト(仮想ホスト)ごとの設定ブロック。
ここで「どのドメインをどう動かすか」を設定します。location { ... }
→ サイト内でのURLパスごとの動作設定。
例:location /
やlocation /line/webhook
など。
設定箇所 | 変更内容の例 |
---|---|
server_name | ドメイン名の変更 |
listen | ポート番号やSSL対応(80/443等) |
root | 静的ファイルの公開ディレクトリの変更 |
proxy_pass | プロキシ先アプリのアドレス(Node-REDや他のサービス) |
SSL証明書設定 (ssl_certificate 等) | SSL証明書や秘密鍵のパス変更 |
アクセス制御 (allow , deny など) | 特定IPのみアクセス許可、ベーシック認証設定など |
リダイレクト設定 (return など) | HTTP→HTTPS転送や特定URL転送 |
4. 設定変更の流れ
- 設定ファイルを編集
例: bashコピーする編集するsudo nano /etc/nginx/sites-available/api.e-tecs.co.jp
- 文法チェック bashコピーする編集する
sudo nginx -t
→ エラーが無いか必ず確認 - 設定の反映(リロード) bashコピーする編集する
sudo systemctl reload nginx
または bashコピーする編集するsudo nginx -s reload
【補足】
nginx.conf
のinclude
ディレクティブでsites-enabled/*
を読み込む構成が一般的です。- 個別サイトの設定(例えば api.e-tecs.co.jp のみ設定変更)なら、sites-available内のそのファイルを編集し、必要に応じてsites-enabledにリンク(
ln -s
)を貼ります。
コメント