解決問題 Apache (1)

教學目標

主要解決在 Windows 作業系統上安裝和設定 Apache 伺服器進行 Proxy 和 Load Balance 的問題。

重點概念

我們經常會遇到網頁應用程式需要設定高可用性的問題,就會需要透過 Proxy 和 Load Balance 功能來解決,此時 Apache 伺服器只需要透過簡單三步驟,就能夠完成 Proxy 和 Load Balance 功能。

安裝 Apache 伺服器

首先下載與安裝 Visual C++ Redistributable for Visual Studio 2015 ,名稱為vcredist_x64.exe 執行檔,若沒有安裝 vcredist 則會導致 Apache 無法正常安裝。

接著下載 Windows 版本的 Apache Lounge 檔案,名稱為 httpd-2.4.27-Win64-V15.zip 壓縮檔。

最後將 Apache 程式的壓縮檔 ( httpd-2.4.27-Win64-V15.zip) 解壓縮至「C:\Apache24\bin」資料夾中,就能夠完成安裝。

修改 Apache 設定檔

開啟 C:\Apache24\conf\httpd.conf 設定檔。

1
$ notepad C:\Apache24\conf\httpd.conf

在設定檔中加入 Proxy 功能的必備模組。

1
2
3
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so

在設定檔中加入 Load Balance 功能的必備模組。

1
2
3
4
5
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so 
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

在設定檔中加入 conf/extra/httpd-vhosts.conf 設定檔。

1
Include conf/extra/httpd-vhosts.conf

開啟 C:\Apache24\conf\httpd-vhosts.conf 設定檔。

1
$ notepad C:\Apache24\conf\extra\httpd-vhosts.conf

在設定檔中加入以下內容,其中 http://www.example.com/app1 為 Proxy 功能,而 http://www.example.com/app2 為 Load Balance 功能。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<VirtualHost *:80>
ServerAdmin me@example.com
DocumentRoot "C:/Apache24/htdocs"
ServerName example.com:80
ErrorLog "logs/example.com-error.log"
CustomLog "logs/example.com-access.log" common
ProxyRequests Off
ProxyPreserveHost Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location /app1>
ProxyPass "http://www.example.com:8080"
ProxyPassReverse "http://www.example.com:8080"
</Location>
<Proxy "balancer://mycluster">
BalancerMember "http://www.example1.com"
BalancerMember "http://www.example2.com"
</Proxy>
ProxyPass "/app2" "balancer://mycluster"
ProxyPassReverse "/app2" "balancer://mycluster"
</VirtualHost>

執行 Apache 伺服器

1
$ C:\Apache24\bin\httpd

總結在 Apache 伺服器中只要透過簡單簡單三步驟,就能夠解決 Proxy 和 Load Balance 的問題。

相關資源