2013-04-23 58 views
1

我已經部署了一個Rails應用到VPS服務器,並且我使用Nginx/Unicorn組合,一切正常,但由於某種原因超出了我的理解,Omniauth回調重定向錯誤,Omniauth Nginx Unicorn回調到錯誤的主機URL

ie。

http://unicorn/users/auth/linkedin/callback?oauth_token=95218ed3-b426-45ab-b022-693d2a2447cb&oauth_verifier=25955 

應該改爲:

http://my-real-domain.com/users/auth/linkedin/callback?oauth_token=95218ed3-b426-45ab-b022-693d2a2447cb&oauth_verifier=25955 

有什麼不對?爲什麼使用nginx中定義的上游名稱進行回調?

upstream unicorn { 
    server unix:/tmp/unicorn.todo.sock fail_timeout=0; 
} 

server { 
    listen 80; 
    listen [::]:80 ipv6only=on default_server; 

    root /home/deploy/work/project/current/public; 
    index index.html index.htm; 

    server_name my-real-domain.com; 

    try_files $uri/index.html $uri @unicorn; 

    location @unicorn { 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header Client-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $remote_addr; 
    proxy_pass http://unicorn; 
    } 

    error_page 500 502 503 504 /500.html; 

    location ~ ^/assets/ { 
    expires 1y; 
    add_header Cache-Control public; 

    add_header ETag ""; 
    break; 
    } 
} 

你能幫我嗎?我需要知道如何克服這種錯誤的重定向。

在此先感謝!

回答

8

Nginx的不通過默認的主機頭,你要告訴它:

location @unicorn { 
    proxy_set_header Host $http_host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header Client-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $remote_addr; 
    proxy_pass http://unicorn; 
    } 

否則該主機請求被髮送到丟失。

+0

謝謝您的回覆!我真的非常渴望這個問題。只要我發送下一個部署並告訴你結果,我會盡快給你一個機會,無論發生什麼,謝謝你的回覆。 :) – jlstr 2013-04-25 19:15:57

+0

你好,我現在得到這個錯誤:nginx:[emerg]主機找不到在上游「獨角獸」在/etc/nginx/sites-enabled/nginx.conf:你碰巧知道什麼是缺少的?提前致謝。 – jlstr 2013-04-25 22:23:49

+0

我不知道。它抱怨無法在上游找到主機 - 你是否改變了上游獨角獸{..}定義中的任何內容? – Danack 2013-04-25 22:38:56

相關問題