2012-03-15 17 views
0

nginxのデプロイメントにまったく新しく、乗客で動作しているレールアプリのサブドメインの設定に問題があります。マイアプリの構造がより明確な見通しについては、このRailsアプリとパッセンジャーでnginxサブドメインが失敗しました

-- sss.com (parent domain) 
     -- sub.sss.com (subdomain) 
    -- zzz.com (which will be redirected to sub.sss.com) 

のようなものです、Gmailの構造

-- google.com (parent domain) 
      - mail.google.com (subdomain) 
    -- gmail.com (which will be redirected to mail.google.com) 

を考えるとsub.sss.comはSSSの下ディレクトリだけ、その完全に異なるレールではありません覚えていますアプリ。セットアップするには

私はこの警告メッセージ

nginx: [warn] conflicting server name "sss.com" on 0.0.0.0:80, ignored 

だとURLのWWWにアクセスしようとしたときに、このメッセージが表示されましたnginxのを起動すると、私はnginxのこの

server { 
     listen 80; 
     server_name sss.com *.sss.com; 
     rewrite ^(.*) http://sss.com$1 permanent; 
    } 

    server { 
     listen 80; 

     server_name sss.com; 

     passenger_enabled on; 

     access_log logs/sss.log; 
     error_log logs/sss_error.log; 

     root /var/www/sss/public;   
    }  
    server { 
     listen 80; 

     server_name sub.sss.com; 

     passenger_enabled on; 

     access_log logs/sub.log; 
     error_log logs/sub_error.log; 

     root /var/www/sub/public;   
    } 
    server { 
     listen 80; 
     server_name zzz.com; 
     rewrite ^(.*) http://sub.sss.com$1 permanent;  
    }  

のように構成されている類似の構造。 sss.com

Chrome - エラー310(net :: ERR_TOO_MANY_リダイレクト):リダイレクトが多すぎます。

FF - Firefoxは、サーバーがこのアドレスの要求を決して完了しないようにリダイレクトしていることを検出しました。

しかし、私はzzz.comにアクセスすると、同じエラーで正常にsub.sss.comにリダイレクトされます。

ある種のループでうんざりしているようです。誰もがこれを解決するためのアイデアを得た?

答えて

1

最初のサーバーでは、2番目のサーバーでもsss.comと同様のサーバーを定義します。最初から削除するだけです。

server { 
    listen 80; 
    server_name *.sss.com; 
    rewrite ^(.*) http://sss.com$1 permanent; 
} 

server { 
    listen 80; 

    server_name sss.com; 

    passenger_enabled on; 

    access_log logs/sss.log; 
    error_log logs/sss_error.log; 

    root /var/www/sss/public;   
}  
server { 
    listen 80; 

    server_name sub.sss.com; 

    passenger_enabled on; 

    access_log logs/sub.log; 
    error_log logs/sub_error.log; 

    root /var/www/sub/public;   
} 
server { 
    listen 80; 
    server_name zzz.com; 
    rewrite ^(.*) http://sub.sss.com$1 permanent;  
}  
+0

を試してみてください。 sub.sss.comでServer not foundエラーが発生します。また、zzz.comはsss.com insted sub.sss.comにリダイレクトされました。何か案が? – RameshVel

+0

が最終的に問題を解決しました。問題はzzz.comのwwwサブドメインにありました。 * .zzz.comのURLを書き換えて、^(。*)http://zzz.com$1 permanent;を書き換えました。今はすべて正常に動作します – RameshVel

0

3つのドメイン/サブダムがあり、4つのサーバーブロックではなく3つのサーバーブロックのみが必要です。あなたの推奨される変更sss.comサブドメイン正常に動作しなく後

は...

server { 
    # This server block serves sss.com 
    listen 80; 
    server_name sss.com; 
    passenger_enabled on; 
    access_log logs/sss.log; 
    error_log logs/sss_error.log; 
    root /var/www/sss/public;  
} 

server { 
    # This server block serves sub.sss.com 
    listen 80; 
    server_name sub.sss.com; 
    passenger_enabled on; 
    access_log logs/sub.log; 
    error_log logs/sub_error.log; 
    root /var/www/sub/public;  
} 
server { 
    # This server block redirects zzz.com to sub.sss.com 
    listen 80; 
    server_name zzz.com; 
    rewrite^http://sub.sss.com$request_uri? permanent;  
} 
関連する問題