はじめに
NGINXは、高速・軽量なWebサーバーおよびリバースプロキシとして広く利用されているソフトウェアです。Webサービスの公開やロードバランシング、静的ファイル配信など、多様な用途で活躍します。
ここでは、自分用の設定メモや使い方のポイントをまとめておきます。
書こうと思ったきっかけ
ローカルで開発した静的Webサイトを公開したり、Docker上のアプリをリバースプロキシ経由で外部に見せたりする場面がありました。
個人の備忘録程度の走り書きとなっておりますが、温かい目で見守っていただければ幸いです。
毎回設定を調べ直すのが非効率に感じたため、基本的な設定や操作方法を備忘録として整理しました。
NGINXの基本機能
- Webサーバー(静的コンテンツの配信)
- リバースプロキシ(バックエンドアプリケーションへのルーティング)
- ロードバランサー(複数のアプリへの負荷分散)
- HTTPS対応(Let's EncryptなどによるSSL化)
- URLリライトやアクセス制御などの柔軟な設定
よく使うコマンド
# サーバーの起動・停止・再起動
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
# 設定ファイルの文法チェック
sudo nginx -t
# ログの確認
sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log
参考文献
基本的な構成ファイル
-
/etc/nginx/nginx.conf
:メイン設定ファイル -
/etc/nginx/sites-available/
:仮想ホストの設定 -
/etc/nginx/sites-enabled/
:有効化された設定ファイルのリンク
サンプル設定(静的ファイル配信)
server {
listen 80;
server_name example.com;
root /var/www/html;
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;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
参考文献
まとめ
NGINXはシンプルながらも非常に高機能なWebサーバーです。ローカル開発から本番公開、SSL対応、Docker連携まで幅広く活用できるため、基本的な設定パターンを身につけておくと大変便利です。
今後は、Let's EncryptでのHTTPS化やキャッシュ設定、アクセスログの分析なども取り入れて、より実践的な運用につなげていきたいと考えています!