2016-07-21 13 views
0

私はApache HTTPD 2.4.12を使用してリモート・サーバーにリクエストをプロキシします。リモートホストが502などのエラーコードを返した場合は、それを処理してカスタムエラーページのステータスが200であることを返す必要があります。これは200以外のエラーをうまく処理しないアプリケーションの問題の回避策です特定のペイロードが必要です。私はそれが200として設定された状態で(のRewriteRuleなし)状態502でカスタムエラーページまたは標準OKページを返すために取得することができますApache HTTPDを使用してリクエストをプロキシするとき、エラー設定時にステータス200とエラー・ドキュメント

は、ここで後者を複製、私のhttpd.confの一部です:

<Location /dm> 
    ProxyPass http://url.of/dm/ 
    ProxyPassReverse http://url.of/dm/ 
    ErrorDocument 502 /error/error.html 
</Location> 

RewriteEngine on 
RewriteCond %{REQUEST_URI} /error/error.html  
RewriteRule ^(.*)$ /error/error.html [R=200,L] 

これに対して、Apache HTTPDより優れた選択肢がありますか?私は本当にシステムにインストールされているので、可能であればApacheを使いたいと思っています。そうhttpd.confの中で設定することで、これを固定

私はmod_luaたちのApacheインスタンスにインストールされていた

答えて

0

<Files *.lua> 
    SetHandler lua-script 
</Files> 

<Location /dm> 
    ProxyPass http://url.of/dm/ 
    ProxyPassReverse http://url.of/dm/ 
    ErrorDocument 502 /error/error.lua 
</Location> 

その後は、スクリプト/error/error.luaを作成:

function handle(r) 
    r.content_type = "text/html" -- set the output to text/html 
    r:puts("My custom error payload") 
    r.status = 200 
    return apache2.OK 
end 
関連する問題