Nginx + IIS實現負載均衡 Session多站點共享


日子過得太索然無味了,研究了一下,所謂的負載均衡(主要是windows服務器IIS下的)。先看看分析圖:

環境:
linux服務器: centos 6.3
windows服務器: windows server 2012   IIS 8.5
數據庫: Sql Server 2008 R2

我在centos 上部署了nginx,做負載均衡,IIS上放了兩個站點A,B(這樣設計不合理,應該是一台服務器配一個站點,多個應用服務器部署同一個站點,但是我實在是沒有多的服務器了,就兩,在一個IIS上部署多個站點與多個IIS部署一個站點原理差不多。)對於多站點共享session,我采用的是最簡單的微軟提供的Session 數據庫。
首先部署nginx, 可以參考<<雲平台開發架構分析系列8:Nginx服務器初次使用講解》系列文章部署,隨后我們打開VS2010,創建兩個web項目,然后放到IIS上,具體部署請看《IIS部署ASP.NET MVC項目
隨后我們在windows服務器上的SQL Server 2008上添加ASPStat數據庫,打開windows 服務器然后查找aspnet_regsql.exe(Framework64下的)
我們找到aspnet_regsql.exe的路徑,然后在cmd 用cd 打開該路徑,執行命令:

aspnet_regsql.exe -S . -u sa -p password p

隨后創建ASPStat數據庫
然后我們在web.config 里面配置:

<sessionState mode="SQLServer" sqlConnectionString="Data Source=xxxxx; User ID=sa; Password=xxxxxxx;"> 
 </sessionState> 
 <machineKey decryption="AES" decryptionKey="869BF3D585F39B25C032E42A51B9C8C6DBA5CAE6EEB6DC48,IsolateApps" validationKey="6080AA874E125C595E4A5986A754ABC67BC5D10DC39CCE2BBE0A1AF5B61D3E03C6BD5C97A812F6E160F37337EEEE2C27619A3B18C84A26D5BB417CA8969EF9F3,IsolateApps"/>

配置完之后,我們就能在session 數據庫里面看到session信息了。
下面我們測試下,首先我在360瀏覽器里面訪問IIS上的站點:

    

    

session數據庫中的截圖:

火狐瀏覽器的測試:

    

    

session數據庫中的截圖

的確實現了多站點的session共享,但是在實際項目中這種設計性能不行,還是建議redis, memcached來存儲session比較好,而且.net 的第三方session接口做的也不錯。

參考:

nginx配合IIS實現簡單負載均衡

Nginx + IIS + Web前端(Spring MVC)——負載均衡(二)

nginx 負載均衡,多站點共享Session

Asp.net 多服務器 Session共享


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM