web-dev-qa-db-ja.com

プロキシサーバーがダウンしている場合のApacheリバースプロキシエラーページ

TomcatのリバースプロキシとしてApache2を使用しています。私の構成は次のようになります。

ProxyRequests Off

ProxyPass        / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

私の質問は、Tomcatがダウンしたときに常に礼儀ページ(「作成中」のHTML静的ページ)を表示するようにApacheを構成できますか?

7
Overflow

これを行うには、Apache ErrorDocument ディレクティブを使用できます。 ErrorDocumentを指すにはURLを使用する必要があります。そうでない場合、ファイルシステム参照を使用すると、それを見つけようとするとさらに503が返されます。

ErrorDocument 503 http://somehost.tld/errors/503.html
13
user9517

これは、追加のサーバーまたは別のポートを使用しないソリューションです。

ProxyPass /http_errors/ !

#Actual proxy config, must be below exception!
ProxyPass / ajp://myserver:12345/

Alias /http_errors/ /var/www/http/
ErrorDocument 503 /http_errors/503.html

要するに:

  1. Http_errorsなどのエイリアスのプロキシ例外を追加します(実際のプロキシルールの前に配置する必要があります)
  2. エイリアスを実際のパスにマップします(存在し、Apacheからアクセスできる必要があります)
  3. 指定されたHTTPステータスコードをエイリアス内の特定のファイルにマップする

上記の設定では、問題が発生した場合に表示されるファイルは/var/www/http/503.htmlです。

2
Jaroslav Kuboš

Apacheは、Tomcatに接続できない場合、503 "サービスを利用できません"エラーをスローします。 "Nice" 503エラーページを作成できます。

ErrorDocument 503 /var/www/html/error/gonefishing.html
1
HampusLi

ローカルサーバーがデフォルトポートでリッスンしているApacheを使用している場合は、ローカルホストにERROR uriを指定し、そこでカスタムエラーページを使用できます。個別のドメイン/サーバーの必要性を否定します

ProxyPass /ERROR http:// localhost:80/

ProxyPass        / http:// localhost:8080/
ProxyPassReverse / http:// localhost:8080/

ErrorDocument 503 /ERROR/custom_50x.html
0
snyman

すべてを防ぐこともできます/error/バックエンドサーバーへのプロキシからのリクエスト:

ProxyPass /error/ !

ProxyPass        / http:// localhost:8080/
ProxyPassReverse / http:// localhost:8080/
0