現在、開発中のシステムでAPサーバにNginxを使用しています。
開発環境の主な情報は以下の通りです。
- APサーバ: Nginx(1.10.3)
- フレームワーク: CakePHP3
今回、システムにAPIを使用する箇所があり、そのレスポンスが30秒以上経過した場合は
エラー画面を表示するように設定しました。エラー画面はNginxのデフォルトページではなく、
こちらで独自に作成したものを利用予定です。
Nginxのエラー画面をデフォルトから変更する時に、nginxの設定ファイルに以下の記述を追加しました。
txt
1server { 2 ... 中略 3 error_page 400 403 404 /error404.html; 4 location = /error404.html { 5 root /home/***/public_html; 6 internal; 7 } 8 9 error_page 500 503 503 504 /error500.html; 10 location = /error500.html { 11 root /home/***/public_html; 12 internal; 13 } 14 ... 中略 15}
これにより、APIのレスポンスタイムが30秒を上回った場合に、上記のhtmlファイルによる
エラー画面を表示することができるようになりました。
しかし、フレームワークのシステムにも例外を投げた時に表示する独自のエラー画面がすでに
あり、APIのタイムアウトなどのエラーはシステム側では拾えないエラーを表示するために
今回、Nginxのエラーについての設定を変更したつもりだったのですが、システム側のエラーまで
上記で設定したhtmlファイルでエラーが表示されるようになってしまいました。
このような事態を回避するためには、設定ファイルにどのような記述が必要なのかいろいろ
調べましたがわからない状態です。
以上をまとめると、
- Nginx側だけで検知されるエラーのみ上記で設定したページで表示され、
システムのエラーページと分けて表示させるためにはどのようにすれば良いか
ということです。
お詳しいかたがいらっしゃいましたら、どうぞ回答をよろしくお願いいたします。
あなたの回答
tips
プレビュー