我完全是新的nginx部署,並有問題設置在乘客中運行的rails應用程序的子域。我的應用程序的結構是這樣的nginx子域失敗與Rails應用程序和乘客
-- 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的配置這樣的
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;
}
當我開始nginx的我得到這個警告信息
nginx: [warn] conflicting server name "sss.com" on 0.0.0.0:80, ignored
並試圖訪問此網址www當得到這個消息。 sss.com
Chrome - Error 310(net :: ERR_TOO_MANY_重定向):重定向過多。
FF - Firefox已檢測到服務器以永不完成的方式重定向該地址的請求。
但是,當我訪問zzz.com時,它成功地重定向到sub.sss.com與相同的錯誤。
似乎它在某種循環中搞砸了。有誰知道如何解決這個問題?
您的建議改變sss.com後工作正常,但不是子域。它會爲sub.sss.com引發Server not found錯誤。另外zzz.com重定向到sss.com insted sub.sss.com。任何想法? – RameshVel 2012-03-15 09:20:11
終於確定了問題..問題出在zzz.com中的www子域名。我已經將* .zzz.com的url重寫添加到了'rewrite ^(。*)http://zzz.com$1 permanent;'中。現在一切正常 – RameshVel 2012-03-16 07:47:15