HTTPd(EC2)とElastic Search Service(AWS)へのリバースプロキシがあり、私のリクエストをHttpdからElasticSearchサービスにリダイレクトしようとしています(Elasticsearchサービスは外部からアクセスできないため、単にURLを書き換えないでください)。
だから私のHttpd設定は次のようになります。
ProxyPass /elasticsearch/ https://MyelasticSearchLongUrl.es.amazonaws.com
ProxyPassReverse /elasticsearch/ https://MyelasticSearchLongUrl.es.amazonaws.com
しかし、問題は私のhttpdがエラーを生成することです。
ProxyPassの社員CPU名(MyelasticSearchLongUrl.es.amazonaws.com) 長すぎる httpd.service: 基本プロセスが終了しました。 code=exited, status=1/FAILURE Kill: プロセスが見つかりません。 "" httpd.service: 制御プロセスが終了しました。 code=exited status=1 Apache HTTP Server を起動できません。デバイスhttpd.serviceが障害状態になりました。 httpd.サービスが失敗しました。
httpd設定、特にURL制限長を変更する方法はありますか?
答え1
いいえ、2.4で導入されたワーカー名のハードコーディング制限は96文字です。持つそれに対するバグしかし、5年以上「NEW」状態にあったことを考えると、アップストリームでは気にしないようです。
あなたが言ったように、解決策はRewriteRule [P]
代わりに使用することです。ローカルサービスファイル(Alias
)とローカルサービスファイルが混在する複雑な設定の場合からに移動すると、実行順序が変わる可能性がありますRewriteRule
。Redirect
ProxyPass
RewriteRule
答え2
以前の答えとは異なり、このエラーはhttps://bz.apache.org/bugzilla/show_bug.cgi?id=53218OPで指定したホスト名ではなく、完全なワーカー名を表し、httpd v2.4.12から切り捨てることができます。
限られたワーカーのホスト名は異なるエラーであり、ここで扱います。https://bz.apache.org/bugzilla/show_bug.cgi?id=62085
2番目のバグが修正され、v2.4.30にバックポートされました。
Ubuntuで推奨される修正:https://bugs.launchpad.net/ubuntu/+source/apache2/+bug/1750356
答え3
ソースでコンパイルされたApache HTTPD 2.4.46を使用してCentos 7.4.1708でこの問題が発生し、yum updateを実行してオペレーティングシステムと関連パッケージを更新すると、Apacheを再コンパイルしなくても問題が解決することがわかりました。