- 至 http://httpd.apache.org/download.cgi 下載 Apache HTTP Server (以 2.2.4 版為例).
- 安裝 Apache HTTP Server.
- 修改 Apache2.2\conf\httpd.conf, 將以下的 # 刪除, 使其在啟動後運作.
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#引用Apache的Virtual Hosts設定
Include conf/extra/httpd-vhosts.conf - 編輯 Apache2.2\conf\extra\httpd-vhosts.conf, 如下:
NameVirtualHost *
<VirtualHost *>
ServerName www.example.com
ServerAlias example.com
DocumentRoot C:\Java\Apache2.2\conf
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
#Proxy的Pattern, 以下將把"/", 交由 "balancer://iiscluster/"處理
#詳細說明可至: http://httpd.apache.org/docs/2.2/mod/mod_proxy.html
ProxyPass / balancer://iiscluster/ stickysession=MYCOOKIE nofailover=On
ProxyPassReverse / balancer://iiscluster
<Proxy balancer://iiscluster>
#load balance的主機URL
#route是load balance的worker name, 及後續要在IIS設定Session ID的參數
#loadfactor是數字1-100的權重, 數字越大loading將越重
BalancerMember http://192.168.1.2 route=node1 loadfactor=1
BalancerMember http://192.168.1.3 route=node2 loadfactor=1
#load balance的方式(byrequests, bytraffic)
ProxySet lbmethod=byrequests
</Proxy>
#加入此設定, 將來可至http://...../balancer-manager/下, 監視load balance的狀態
<Location /balancer-manager>
SetHandler balancer-manager
Order deny,allow
Allow from all
</Location>
</VirtualHost> - 設定 IIS 的 Header:
- 開啟 IIS 管理畫面, 在 [網站] 或其下的 [WebApplication] 點選 [內容].
- 在 [HTTP標頭] 頁籤中, 按下 [自訂HTTP標頭] 的 [新增] 按鈕.
- [自訂標頭名稱] 輸入: "Set-Cookie"
- [自訂標頭值] 輸入: "MYCOOKIE=iiscluster.node1; path=/;"
* 請對照第 4 步 ProxyPass 的 stickysession=MYCOOKIE, 以及 <Proxy> 中的 route=node1, route=node2 分別設定 192.168.1.2與192.168.1.3 的 IIS.
- 開啟 IIS 管理畫面, 在 [網站] 或其下的 [WebApplication] 點選 [內容].
- 重新啟動 IIS 與 Apache.
- 若要 Debug, 可在 <VirtualHost *> 中加入:
LogLevel debug
2007/08/28
[System] 透過Apache的Proxy模組設定IIS的NLB
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言