以前から、コンテナから X-Accel-Mapping header missing というメッセージが非常に高い頻度で出力されているのを目にしています。ただし、すべての訪問者やすべてのナビゲーションステップで発生しているわけではありません。このヘッダーは Nginx 設定で明示的に定義されているようですが、すべてのリクエストに対しては定義されていません:discourse/config/nginx.sample.conf at main · discourse/discourse · GitHub
この問題が他の場所で報告されていないため、私たちが使用しているサブディレクトリ設定が原因ではないかと疑っていますが、どのように関連しているのかはわかりません。
正確に何がこれを出力しているのかは不明ですが、X-Sendfile-Type が X-Accel-Redirect に設定されている場合のみ発生するのではないかと思われます。しかし、その場合 X-Accel-Mapping も設定されていないはずです。現在の設定では、両方が定義されているか、両方が空に設定されているはずです:![]()
実際には、バックアップにアクセスする際、そしてより重要なのはアップロードにアクセスする際にのみ設定されます。実際にテストして確認したところ、アップロードされた画像などの付いた投稿を表示すると、このメッセージがトリガーされることがわかりました。設定を確認すると、X-Accel-Redirect が設定されていても X-Accel-Mapping が設定されないことはありえないはずです。また、これは Nginx によってコンテナ内で設定されるリクエストヘッダーであり、Discourse/unicorn/pitchfork/backend によってのみ消費され、コンテナ内外には一切出入りしません。
ああ、Nginx を STDERR にログ出力するように設定しています。Discourse のログにはこのメッセージが出ていないので、Nginx 自体が出力していると確信しています。おそらくこれが他の誰にも認識されていない理由でしょう。なぜなら、これは Nginx のログファイルにあるからです。shared/*/log/var-log/nginx/error.log に同様のメッセージが含まれているか確認する時間のある方はいますか?もし含まれている場合、サブディレクトリ設定を使用していない他のユーザーと連絡を取り、原因を特定したいと考えています。