使用Docker来构建nginx的运行验证环境
创建一个方便修改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 を好きなように編集する
~
# 再度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 等についての理解が深まった