2014-04-07 28 views
0

我已經瀏覽了許多相關的帖子,但我不明白我要去哪裏錯了。Rails和Nginx的www和非www混合起來

我想是所有httphttpsmydomain.comwww.mydomain.com請求去https://www.mydomain.com(類似this人)

我檢查了我的SSL證書,並說,這是www.mydomain.com。如果我去mydomain.com或www.mydomain.com,我已經檢查了證書,它似乎給出了相同的信息,並且兩者似乎都是安全的(小綠鎖)。

我試過this後的解決方案,但得到了以下錯誤:

Restarting nginx: nginx: [emerg] invalid parameter "443" in /path/nginx/sites-enabled/example:3 

我遇到的問題是,用戶登錄的www.mydomain.com頁面上出於某種原因,他們被重定向到mydomain.com頁面,然後他們顯示登出並需要重新登錄。說實話,我不確定這是否是rails問題或nginx配置問題。

我的nginx的配置文件是如下:

server { 
    listen  80; 
    server_name mydomain.com www.mydomain.com; 
    return 301 https://www.mydomain.com$request_uri; 
} 

server { 
    listen 443 ssl default; 
    server_name www.mydomain.com; 
    ...other stuff... 
} 

我真的很欣賞的幫助。我很困惑。

回答

0

我想我已經解決了它,我認爲我的問題部分是rails和部分與nginx有關。

在軌我有

def default_url_options 
    if Rails.env.production? 
    {:host => "myapp.com"} 

我改成

def default_url_options 
    if Rails.env.production? 
    {:host => "www.myapp.com"} 

它幫助,但如果人們導航到myapp.com擺在首位。

什麼固定它完全是添加另一重定向服務器給我的nginx的配置文件:

server { 
    listen  443 ssl; 
    server_name myapp.com; 
    return 301 https://www.myapp.com$request_uri; 
} 

我希望這可以幫助別人。

相關問題