created: 2022-03-03T08:21:48.000Z
docker を使って nginx の設定をいろいろ変更しながらデバッグする
とりあえず openresty のイメージが docker run できることを確認する。
$ docker run -p 8000:80 openresty/openresty:alpine
$ curl -I localhost:8000
HTTP/1.1 200 OK
Server: openresty/1.19.9.1
Date: Wed, 02 Mar 2022 08:48:46 GMT
Content-Type: text/html
Content-Length: 1097
Last-Modified: Tue, 11 Jan 2022 12:43:05 GMT
Connection: keep-alive
ETag: "61dd7b59-449"
Accept-Ranges: bytes
設定ファイル
設定ファイルを追加したい場合についてはドキュメントに案内があった。
ただし、公式のとおりにやるにしても最小限の設定ファイルを用意する必要があるので、これまた公式の GitHub のデフォルト設定をもってくることにする。
volumeを作成
nginx と macOS でディレクトリを共有した状態で動かす。
$ mkdir -p /tmp/mynginx/{conf.d,log,html}
$ curl 'https://raw.githubusercontent.com/openresty/docker-openresty/master/nginx.vh.default.conf' \
-o /tmp/mynginx/conf.d/default.conf
$ echo "<html>this is test</html>" > /tmp/mynginx/html/test.html
http ディレクティブも変更して色々やりたい場合は /usr/local/openresty/nginx/conf/nginx.conf
を書き換えるように。
$ docker run --rm -p 8000:80 \
-v /tmp/mynginx/conf.d:/usr/local/openresty/nginx/conf/ \
-v /tmp/mynginx/log:/var/log/nginx \
-v /tmp/mynginx/html:/usr/local/openresty/nginx/html \
openresty/openresty:alpine
確認
$ curl localhost:8000/test.html
<html>this is test</html>
$ cat /tmp/mynginx/log/host.access.log
172.17.0.1 - - [03/Mar/2022:03:18:57 +0000] "GET /test.html HTTP/1.1" 200 26 "-" "curl/7.64.1"
試行錯誤する
ここまでできたら、 nginx.conf か、default.conf を変更しながら設定の動作確認ができる。