Nginx基本

機能説明・用途
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. 設定変更の流れ

  1. 設定ファイルを編集
    例: bashコピーする編集するsudo nano /etc/nginx/sites-available/api.e-tecs.co.jp
  2. 文法チェック bashコピーする編集するsudo nginx -t → エラーが無いか必ず確認
  3. 設定の反映(リロード) bashコピーする編集するsudo systemctl reload nginx または bashコピーする編集するsudo nginx -s reload

【補足】

  • nginx.confinclude ディレクティブで sites-enabled/* を読み込む構成が一般的です。
  • 個別サイトの設定(例えば api.e-tecs.co.jp のみ設定変更)なら、sites-available内のそのファイルを編集し、必要に応じてsites-enabledにリンク(ln -s)を貼ります。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする