我在Heroku上託管了一個Rails應用程序,哪些服務器生成了用於營銷/搜索目的的頁面。另一臺服務器上有其他內容頁面,這些頁面是靜態頁面。我想讓他們都在同一個域上,在這個域上構建seo的優點。如何使用同一個域來服務來自不同服務器的兩個應用程序
例如:
domain.com/blah-blah-blah-something
應該真正從Heroku的服務器名稱/等等,誇誇其談出頭加載頁面,但它看起來像它的domain.com。
可能嗎?
我在Heroku上託管了一個Rails應用程序,哪些服務器生成了用於營銷/搜索目的的頁面。另一臺服務器上有其他內容頁面,這些頁面是靜態頁面。我想讓他們都在同一個域上,在這個域上構建seo的優點。如何使用同一個域來服務來自不同服務器的兩個應用程序
例如:
domain.com/blah-blah-blah-something
應該真正從Heroku的服務器名稱/等等,誇誇其談出頭加載頁面,但它看起來像它的domain.com。
可能嗎?
該域的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 %>
將有可能表現不佳像這樣的任何請求,因爲這將有效地採取兩個請求的時間。
您可以使用HAProxy將站點放在前面並將其配置爲進行內容切換。要做到這一點,你必須讓前端監聽映射到外部IP的內部IP地址。後端是您的服務器。您可以設置訪問控制列表來確定要發送到哪個後端。例如,這可以通過一些路徑名或文件擴展名(例如.html轉到服務器A並且.aspx轉到另一個)。最終,用戶不知道他們在兩臺獨立的服務器上,因爲他們只能看到站點被服務在一個域名上。
注意:
1)您將無法共享會話(我相信您已經知道)。
2)HAProxy的不處理HTTPS,所以如果你需要HTTPS,那麼你就必須有一些處理HTTPS終止,如nginx的或HAProxy的或安全通道。
希望這是適用的,因爲我不熟悉的Heroku。