nginxの設定にもかなり慣れてきた。少し前は
・バーチャルホスト+ロードバランサの設定
をしたりもしたが、今回はリソース整理のため
・URLからは公開用ページのサブディレクトリに内部者用ページがあるが、Linuxサーバ上はディレクトリを並列させる。
・更に、JSやCSS、画像なども上記と同様、公開用/内部者用のページのサブディレクトリに配置されているようにURLからは見えるが、Linuxサーバ上ディレクトリを並列させる。
など、リソースの共有させ、かつ公開用だろうが内部者用だろうがリソースへのパスは同じになるようにしてみた。
さて、併せて検証環境で内部者用ページにベーシック認証を掛け、問題なかったので本番に持って確認できたら夜も遅いし今日は上がろうと思った矢先、認証をかけたページだけ表示できない事象が出た。
Postmanというツールで確認するとコードでは404だが、URLを間違えたときとはページに戻ってくるメッセージが異なる。
nginxのログを見ても、404だし、どうしたものか?
類似事項がないかを調べても対応策が見つからない。
空も白む頃。
試しにベーシック認証を外してみると、見事に表示された。
あれ、なんで該当のURIがないって言われていたんだろう?と不思議に思ったが、何か定義を間違っているのか・・。
confの設定に差異が無いことは何度も見直しているのに・・。
冷蔵庫から飲み物を取り出して休んでいたときにふと、「あれ?本番って認証用のID/PASSのファイル、あったっけ?」と気がついた。
結局、認証のファイルが無かったのが原因であった。
どっと疲れたが一歩前進した夜明けであった。