nginx Win下實現簡單的負載均衡(2)站點共享Session

龐順龍發表於2019-05-11

快速目錄:

一、nginx Win下實現簡單的負載均衡(1)nginx搭建部署

二、nginx Win下實現簡單的負載均衡(2)站點共享Session

三、nginx Win下實現簡單的負載均衡(3)Session的SqlServer模式配置



多站點共享Session有很多方法,多站點共享Session常見的做法有:

  1. 使用.net自動的狀態服務(Asp.net State Service);
  2. 使用.net的Session資料庫;
  3. 使用Redis等快取。
  4. 使用Cookie方式實現多個站點間的共享,但是這種方式只限於幾個站點都在同一域名的情況下;

這裡主要介紹資料庫的形式儲存Session,來實現多站點共享Session。

1.新建web站點,新增setSession.aspx 頁面用於顯示session數值:


在index.aspx.cs增加session新增方法


在setSession.aspx.cs新增獲取session方法


2.修改web.config 配置,增加 sessionState配置是讓 Session 儲存在資料庫中


網站部分這樣就好了,釋出成兩個不同的網站,http://localhost:8097和http://localhost:8098。

3.配置session的sqlserver儲存 模式

網站建立好之後,下面就是要配置據庫,具體配置方法,參考前一篇部落格:Sql Server 中 Session的SqlServer模式的配置


4.共享SessionID

ASPStateTempSessions 表中的SessionID ,包括兩個部分:網站生成的24位SessionID及8位AppId組成,對於不同的站點,其AppId和AppName也不同,在能夠在不同站點下Session共享,就得保證這個32位的SessionID 一致,所以可以通過修改儲存過程TempGetAppID,使其得到的SessionID與AppName無關,修改TempGetAppID如下:


5.修改完之後,重啟一下各站點,再在瀏覽一下網站即可測試如下:

可以看到,不同的8097和8098兩個站點,公用了相同的session

龐順龍最後編輯於:4年前

內容均為作者獨立觀點,不代表八零IT人立場,如涉及侵權,請及時告知。

相關文章