Dockerで起動したNginxのリバースプロキシにBasic認証を設定しています。
OSはCentOS7で、Docker のversionは 20.10.6です。
(DockerでWebサーバを立ち上げる経験がないまま、
必要に迫られてリバースプロキシを稼働させました。)
HOMEのreverse-proxyディレクトリに作成した下記のファイルをマウントしています
nginx.conf default.conf .htpasswd
$ docker run --name reverse_proxy \ -v /home/hoge/reverse-proxy/nginx.conf:/etc/nginx/nginx.conf \ -v /home/hoge/reverse-proxy/default.conf:/etc/nginx/conf.d/default.conf \ -v /home/hoge/reverse-proxy/htpasswd:/etc/nginx/conf.d/.htpasswd \ --rm -d -p 80:80 nginx
アクセスしてみると、認証のウインドウが表示されませんでした。
リバースプロキシの転送先が“正常”に表示されました(リバースプロキシとしては動作しています)
マウントが正常に行われているか確認すると、
default.confで指定した先に、.htpasswdは存在します。
$ docker ps --format "table {{.ID}} {{.Image}} {{.Names}}"|grep reverse 723f2a1b7dad nginx reverse_proxy $ docker exec -it reverse_proxy /bin/bash root@723f2a1b7dad:/# head -n 7 /etc/nginx/conf.d/default.conf server { listen 80; listen [::]:80; server_name localhost; auth_basic "closed site"; auth_basic_user_file /etc/nginx/conf.d/.htpasswd; root@723f2a1b7dad:/# cat /etc/nginx/conf.d/.htpasswd user:$apr1$otzTjy4a$mMYNVfbcySN63ZV6V6jdS1
パーミッションと所有者を変更してnginxをリロードしましたが、変化はありませんでした。
root@723f2a1b7dad:/# chmod 604 /etc/nginx/conf.d/.htpasswd root@723f2a1b7dad:/# chown nginx:nginx /etc/nginx/conf.d/.htpasswd root@723f2a1b7dad:/# service nginx reload Reloading nginx: nginx.
困ったときはログを見ろ、と探すとこうなっていました
root@723f2a1b7dad:/# ls -lh /var/log/nginx/access.log lrwxrwxrwx. 1 root root 11 Dec 2 10:59 /var/log/nginx/access.log -> /dev/stdout
どこに設定に誤りや不足があるのでしょうか?
エラーメッセージも表示される、ログを見つけられないので、調べようがなく壁にぶつかりました。
原因の調べ方だけでもご教示いただければ助かります。
回答1件
あなたの回答
tips
プレビュー