手軽に nginx の設定ファイルを修正し,動作確認ができる環境を作成.
ディレクトリ構成
./handson_nginx
├── README.md
├── docker
│ ├── nginx
│ │ ├── Dockerfile
│ │ ├── nginx.conf
│ │ ├── nginx.repo
│ │ └── nginx_with_comment.conf
│ └── springboot
│ └── Dockerfile
├── docker-compose.yml
└── nginx_log
├── README.md
├── access.log
└── error.log
何が嬉しい?
- nginx.conf の設定内容の動作検証を手軽に行うことができる
- docker-compose を用いて nginx の裏に springboot が存在する環境を手軽に立ち上げられる
- nginx.conf を変更したら docker-compose コマンドを再度走らせるだけで設定が適用される
- nginx のエラーは内容は error.log に即座に書き出されるので設定ファイルの何が間違っているのかがすぐに分かる
使用手順
立ち上げてみる
git clone https://github.com/kayamin/handson_nginx.git
docker-compose up -d
docker ps
リクエストを投げてみる
# springboot コンテナへ直接リクエスト
curl -v localhost:8090/hello
# nginx コンテナに対してリクエスト -> springboot コンテナへプロキシされる
# access.log にログが追加されるので確認
curl -v localhost:80/hello
# springboot コンテナへ直接リクエスト
curl -v localhost:8090/addtwo/4
# nginx コンテナに対してリクエスト -> rewrite された上で springboot コンテナへプロキシされる
# error.log にリライトのログが追加されるので確認
curl -v localhost:80/foward_proxy2/4/addtwo
nginx.confを修正して反映する
# nginx.conf を好きなように編集する
~
# 再度docker-composeコマンドを実行する
# nginx.conf の修正を検出して nginx イメージが再作成され立ち上がる
docker-compose up -d --build
# nginxコンテナが立ち上がらない場合は何かしらエラーが出ていないか error.log を確認
docker ps
備考
- springboot 側には
/hello
,addtwo/{$num}
APIのみ用意
参考
- Nginx + Spring Bootアプリケーションをdocker-composeで起動する
- Nginx reverse proxy + URL rewrite
- Nginxのリダイレクト設定のメモ
- nginx実践ガイド impress top gearシリーズ Kindle版
- Dockerfileを改善するためのBest Practice 2019年版
所感
- nginx実践ガイド impress top gearシリーズ Kindle版 の内容を実際に試してみたく構築した
- 実際に自分で環境を構築することで centos7, systemd, docker, docker-compose 等についての理解が深まった