2016-06-21 188 views
0

我們在專用服務器上託管的網站很少,如果我們決定將網站從專用服務器移動到雲服務器,那麼從編程角度我們應該考慮什麼。我們所有的網站都是基於Asp.Net的&使用不同的會話變量並依靠MS SQL Server標準2012數據庫。將網站從專用服務器移動到雲服務器

在互聯網上有很多信息可用,其中一些令人困惑,甚至混淆是雲環境類型。服務提供的銷售團隊總是推動移動雲但是當我們問這些問題時,沒有明確的答案。

幾年前我遇到了一個這樣的共享主機問題,當一個網站在調查後發現同一用戶的相同請求失去會話變量後,我發現共享主機是基於農場的共享主機,因此同一用戶會話由服務器場中的不同服務器導致會話變量丟失,以防第一次請求發送到服務器1 &第二次請求發送到服務器2.此問題已通過在web.config中添加機器密鑰解決。

我真的不知道雲服務器是如何工作的。我擔心會話變量丟失,我可以通過使用基於SQL的會話狀態來解決。

從配置或編程角度來看,在註冊基於雲的Web服務器之前應該採取的其他精度是什麼。

回答

1

無論何時遷移到基於雲的解決方案,要記住的一個重要因素是「狀態管理」。在雲中,當您考慮擴展多個實例時,因此在進程狀態管理中排除負載平衡器將請求分發給不同實例,而存儲在一個實例中的會話變量將不會被另一實例使用。所以沒有像基於SQL數據庫的proc選項是選項。我一直在廣泛使用Microsoft Azure雲。而選擇設立了PROC會話狀態的蔚藍是

  1. SQL Azure數據庫基於會話狀態provider

  2. Redis的緩存基於會話狀態(Redis的緩存提供作爲託管服務)link

  3. 蔚藍表存儲基於會話狀態provider

    一般出PROC的是路要走,您可以決定基於您選擇的技術和雲棧的實施。

0

我最近做了同樣的研究。我同意@Aravind認爲外部存儲庫是最安全/最好的方式;但是,Azure使用的負載均衡器(ARR)默認啓用了持久性。檢查你的cookies,你會看到一個ARRAffinity cookie。這意味着客戶端總是會盡可能地進入同一個實例,從而允許InProc會話在某種程度上被使用。

再一次,外部回購是最好的,但如果你需要快速起牀,或者沒有太多努力,這是可能的。

更新:你現在可以在一個Web應用程序 enter image description here

1

有你需要的雲服務器上工作時,瞭解幾個點的設置中打開ARR親和力和關閉。

  1. 如果我們通過阿里雲或任何其他雲提供商使用單服務器(如ECS),則設置將與我們在物理服務器上的設置相同。
  2. 如果我們使用阿里雲的RDS等託管服務,那麼網絡字符串(db url)需要照顧。
  3. 如果我們在雲上使用負載均衡器後面的多個服務器(例如Alicloud雲上的SLB),則必須小心維護會話。建議使用集中式會話管理器,如Memcache。否則,我們需要調整負載均衡器配置。

我的大多數參考文獻都來自Alicloud,因爲我已經在這方面進行過工作,所以請耐心等待。你也可以檢查他們的網絡託管軟件包

相關問題