4

example.com でアプリを実行していますが、すべてのトラフィックを www.example.com にリダイレクトしたいと考えています。これは、ウェブサイト用に Akamai の CDN と協力しているためです。私のドメインは Route53 に駐車され、Elastic Load Balancer の CNAME の CNAME が *.example.com を指すように追加され、次の構成で nginx Web サーバーを実行しています。この構成を使用すると、ELB はインスタンスをスローします。現在、domain.com は正常に動作し、www.domain.com は正常に動作しますが、リダイレクトは行われません。

server {
        listen 80;
        server_name example.com;
#       rewrite ^    http://www.example.com$request_uri? permanent;
        root /home/ubuntu/apps/st/public;
        passenger_enabled on;
}

しかし、リダイレクトを達成できません。

また、値がロード バランサーの cname である PTR を追加しようとしました。

ご覧のとおり、nginx構成を変更しようとしました

rewrite ^ http://www.example.com$request_uri? permanent;

それでも機能していません。

上記の行を追加するとすぐに、アプリ インスタンスが実行され、ELB がスタックからスローされます。

解決策は何ですか。私は3〜4日からこれを達成しようとしていますが、今では悪夢になっています。親切に助けてください。また、投稿やスレッドを aws フォーラムに投稿しましたが、何も役に立ちません。

4

3 に答える 3

2

私は Amazon ELB に詳しくありませんが、おそらく nginx の部分でお手伝いできます。

あなたのシナリオでは、通常、nginx で 2 つのサーバー ブロックを使用します。1 つは書き換え/リダイレクト (example.com) を処理し、もう 1 つは通常のサイト (www.example.com) を処理します。両方のブロックを同じファイルに入れることができます。

# for redirecting only...
server {
    listen 80;
    server_name example.com;

    # re-written to www...
    location / {
       rewrite ^(.*)$ $scheme://www.example.com$1 permanent;
    }
}

# regular web site config here...
server {
    listen 80;
    server_name www.example.com;

    root /home/ubuntu/apps/st/public;
    passenger_enabled on;
    ...
}
于 2013-04-06T16:17:24.960 に答える
0

古い質問ですが、検索で出てくるので。

www (または他のホスト) へのリダイレクトは、AWS アプリケーション ロード バランサーで可能になりました。これは、nginx config を使用するよりも管理が便利です。

https://docs.aws.amazon.com/elasticloadbalancing/latest/application/listener-update-rules.html

于 2019-04-22T19:32:16.807 に答える