2011-11-29 37 views
2

我正在開發您的標準高流量的電子商務網站,並希望設置與清漆緩存。這種設置的特殊之處在於應用程序將根據用戶的特定位置返回不同的內容。緩存與光油和變化的自定義設置HTTP標頭

所以我的計劃是這些:

  • Nginx的安裝與GeoIP的模塊,這樣我就可以得到一個X-國家:XX頭部上進入應用後端的所有請求。
  • 配置Rails應用程序始終返回「Vary:X-Country」響應標頭。
  • 把Nginx的和應用後端背後的光油服務器,因此它可以基於nginx的設置請求頭緩存由Rails的服務對象的多個版本,併爲他們提供服務(客戶端瀏覽器)

有沒有人有像這樣的設置的經驗?我應該注意的任何事情?

+1

僅供參考:我問過類似的問題,並得到了正確的答案。] [1] [1]:http://stackoverflow.com/a/20753737/579448 – Josef

回答

0

如果GeoIP查詢速度慢,並且/或者您希望人們可以覆蓋國家/地區設置,則可以使用國家/地區 cookie並讓前端清漆檢查它。

  • 如果沒有國家cookie,將請求轉發到您的nginx後端以進行GeoIP查找。 Nginx提供一個Set-Cookie: country=us標題的重定向。如果你想避免重定向和支持cookie拒絕客戶端/機器人,ngingx可以轉發到Rails,並仍然嘗試在響應中設置國家cookie。或清漆可以捕獲重定向響應,並做了「重啓」與新設置的cookie,並轉到後端
  • 如果你已經有一個國家的cookie,你光油哈希使用

如果Rails可以做GeoIP的解析,你不需要Ngingx,除非你用它來提供文件......