複数のnginx設定ファイルを読み込んだ時の思い込み

まとまりが無くなったので、先に結論

・confファイルを追加したが、そちらの設定が有効にならない
・rewrite_log on; を利用し、URL書き換え状態を調査
・別ファイルのリライトルールが有効になっていることを発見
・名前付きロケーションは、設定ファイルごとに独立していない

1アプリに対して1つのコンフィグファイルで対応しています

という設定で、現在labが運用されているのです。
今まではKindleUnlimitedSearchしか稼働していなかったので設定ファイルも1つで済んでいたのですが、今回新規でLotteryAnalyzer用の設定を追加したところ、なぜかこちらの設定はうまく動きませんでした。

@の名前付けに注意

nginxの設定で「名前付きロケーション」を使用しています。
自分の勘違いとして

設定ファイルが分かれていれば、同じ名前を利用しても構わない

とかってに思っていました。
javaプログラムなんかだと、別ファイルごとにクラスを作って、その中で同じ変数名を利用しても大丈夫!みたいな、そんなノリです。(伝わるかな?)

実際には2重で定義されている扱いになっていた

location /lottery/back {
     try_files $uri $uri/ @nest;
 }
 location @nest {
     rewrite /lottery/back/(.*)$ /lottery/back/index.php?/$1 last;
 }

上記のような感じで設定ファイルを作りました。nginxの内部リダイレクトを利用しており、laravel側の処理を呼び出すための設定が書いてあります。

ただ、実際に動作確認をとってみると、なぜかLotteryAnalyzerへのアクセスがKindleUnlimitedSearchに向かって飛んでいました。
rewrite_logを出力し、URLがどのように処理されているのか調査し、原因を特定することができました。

参考
https://qiita.com/iaoiui/items/595ecddb9e7064279fd0

思い込みは良くないということですね

今回は思い込みで作業を行っていたため、解決に時間がかかってしまいました。
ちゃんと仕様を理解して使いましょう! ということですね

Amazonでnginxの商品を探す
https://amzn.to/2WugZAB