2011-04-07 74 views
0

我在Heroku上託管了一個Rails應用程序,哪些服務器生成了用於營銷/搜索目的的頁面。另一臺服務器上有其他內容頁面,這些頁面是靜態頁面。我想讓他們都在同一個域上,在這個域上構建seo的優點。如何使用同一個域來服務來自不同服務器的兩個應用程序

例如:

domain.com/blah-blah-blah-something

應該真正從Heroku的服務器名稱/等等,誇誇其談出頭加載頁面,但它看起來像它的domain.com。

可能嗎?

回答

0

該域的DNS記錄只能指向一個IP地址(並因此指向服務器)。您可以配置您的基於heroku的應用程序,通過有效地獲取網站並顯示它來呈現來自其他服務器的內容。

我從這個鏈接借用了這個代碼片段:

def fetch_url(url) 
    r = Net::HTTP.get_response(URI.parse(url)) 
    if r.is_a? Net::HTTPSuccess 
     r.body 
    else 
     nil 
    end 
    end 

    # use like this from your controller 
    @snippet = fetch_url "http://www.oreilly.com/" 

    # and in your page <%= @snippet %> 

http://answers.oreilly.com/topic/1052-ruby-on-rails-how-does-one-render-html-from-another-web-server-to-a-ruby-on-rails-app/

將有可能表現不佳像這樣的任何請求,因爲這將有效地採取兩個請求的時間。

2

您可以使用HAProxy將站點放在前面並將其配置爲進行內容切換。要做到這一點,你必須讓前端監聽映射到外部IP的內部IP地址。後端是您的服務器。您可以設置訪問控制列表來確定要發送到哪個後端。例如,這可以通過一些路徑名或文件擴展名(例如.html轉到服務器A並且.aspx轉到另一個)。最終,用戶不知道他們在兩臺獨立的服務器上,因爲他們只能看到站點被服務在一個域名上。

注意:
1)您將無法共享會話(我相信您已經知道)。

2)HAProxy的不處理HTTPS,所以如果你需要HTTPS,那麼你就必須有一些處理HTTPS終止,如nginx的或HAProxy的或安全通道。

希望這是適用的,因爲我不熟悉的Heroku。

相關問題