elbおよびproxypreservehostの前のcloudfront


-1

私はec2インスタンスにApache設定があります:

        RewriteEngine On 
        ProxyPreserveHost On 
        ProxyRequests On 
        ProxyPass /blog http://212.128.122.142/blog

これは、DNSレコードをELBにポイントするまで機能しますが、CDNをポイントするようにDNSを変更した場合は機能しません。502を取得するか、ループをリダイレクトします。

また、私は502の悪いゲートウェイを見たので書き換えルールを試しmyendpoint.elb.amazonaws.com/blogました.CDNはApacheによってアクセスしようとし 、それがApacheによって処理されないため、apacheがserverAliasとしてorginエンドポイントを受け入れ、condを書き換えてURLを元のホスト名に書き戻すように変更しましたproxypreserveを使用してIPに渡します。

RewriteCond %{HTTP_HOST} !^(www\.)?mydomain\.com
        RewriteCond %{HTTP_HOST} ^myendpoint.elb.amazonaws.com$
        RewriteRule ^/blog http://mydomain/blog[R,L]

(同じドメインでホストされている別のサーバーから/ blogにアクセスする必要があります。前述のように、ELBがDNSレコードを指すがCDNで停止するまですべて動作しますか?)

私が達成しようとしていること:別のサーバーでホスト/ブログをホストし、これはすべてELBの上部にあるクラウドフロントで動作します


Apacheをリバースプロキシとして機能させたいようです。この場合、理想的にはProxyRequestsOffに設定する必要があり、ProxyPassReverse /test http://212.128.122.142/test回線も必要です。ただし、ここで何を達成しようとしているかはまだ明確ではありません。
ビベックトーマス14

別のサーバーではなく、サブドメインに/ブログをホストしようとしている[しかしによるアプリケーションCloudFrontをのタイプにすべてのものの上にしておく必要があり]:ちょっとレスポンスのおかげで、これはまた、ループをリダイレクトするようにつながる
タイク

回答:


0

私は自分の質問に答えているので、他の人が恩恵を受けることができます。最初は、これがクラウドフロントとそのメカニズムの問題だと思っていました。結果は次のとおりです。

[elbとcloudfrontの両方でlogginを有効にした後、私はそれを見ました]

ドメインをクラウドフロントに向け、ELB [ロードバランサー]を起点とするクラウドフロントがリクエストをそれぞれのEC2インスタンスに送信すると、リクエストはexample.comexample.comとしてではなく、エンドポイントとして送信されます。

cloud-frontはそのリクエストをorginpointとしてelbに送信するため、urlはmyendpoint.elb.amazonaws.com example.comではなくをリクエストしmyendpoint.elb.amazonaws.com:80/blogます。ここでの主な問題は、リクエストを理解できなかった私のブログサーバーの前にある別のリバースプロキシでした。 、そのリバースプロキシのnginxは、指定されていないドメイン*を444として拒否するように構成されていたためです。

その後、プロキシパスがrewritecondとルールを必要としなかったので、喜んで処理します:)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.