次の環境を構成しようとしています: apache と mod_proxy を実行している VPS は、自宅 (バックエンド) で実行されている別のサーバーをプロキシします。ファイルをダウンロードすることはできますが、ファイルをアップロードしようとすると、POST リクエストが次のエラーで失敗します。
Proxy Error
The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request POST /upload/upload.php.
Reason: Error reading from remote server
私が理解していないのは、なぜ 500 バイトのファイルでも機能するのかということです。そして、それは迅速に行います!ただし、4kb の小さなファイルをアップロードしようとすると、エラーが発生するまで時間がかかります。予想どおり、VPS なしでバックエンドに直接アクセスすると、アップロードは問題なく動作します。両側で多くの構成を試し、タイムアウトを増やしてみましたが、これが正しい方法だとは思いません。バックエンドには mod_access がインストールされており、ファイルのアップロードが失敗しても何もログに記録されません。
Apache は次のログを記録します。
[Thu Nov 07 22:26:03.044309 2013] [proxy_http:error] [pid 9173] (70007)The timeout specified has expired: [client 177.148.252.99:54097] AH01102: error reading status line from remote server myhome.com, referer: http://frontend.com/upload/
[Thu Nov 07 22:26:03.044423 2013] [proxy:error] [pid 9173] [client 177.148.252.99:54097] AH00898: Error reading from remote server returned by /upload/upload.php, referer: http://frontend.com/upload/
VPS は Apache 2.4.6 を実行しており、自宅で実行されているサーバーは SSL を使用した Lighttpd 1.4.32 です。
バックエンドにリダイレクトする仮想ホストは次のように構成されます。
<VirtualHost *:80>
ServerAdmin webmaster@frontend.com
ServerName frontend.com
ProxyPass / http://backend.com/
ProxyPassReverse / http://backend.com/
</VirtualHost>
フロントエンド: http://frontend.com/upload/
バックエンド: http://backend.com/upload/
あなたはなにか考えはありますか?