一、測試環境與網絡結構
本文所使用的測試環境是Redhatlinux7.2、Apache 1.3.24,公司域名假設是company.com。公司的典型網絡構造如附圖所示。
注意: 附圖中的防火墻上安裝了2塊網卡,其中e0端口的外部公共地址為1.2.3.4,e1端口對應內部保留地址為192.168.2.1。局域網內部有3臺Web服務器A、B和C,它們對應的域名分別為weba.company.com、webb.company.com和webc.company.com,均使用內部保留地址。
二、操作步驟
如附圖所示,此公司通過專線連入互聯網,安裝了防火墻,局域網內部有3臺Web服務器,均只有內部保留地址,但是希望他們能夠提供對外的Web服務。
1.設置DNS
在防火墻(同時也是公司的DNS服務器)上設置內部3臺Web服務器的DNS,IP地址均為1.2.3.4。這樣,在Internet上解析weba.company.com、webb.company.com 和webc.company.com時,均指向同一IP地址即防火墻的外部接口地址1.2.3.4。
2.下載Apache
從Apache網站(http://www.apache.org)下載目前最新的版本apache 1.3.24到/root目錄,下載地址為http://www.apache.org/dist/httpd/apache_1.3.24.tar.gz。
3. 更改源代碼使最大允許的請求連接數超過256
由于Apache默認允許的最多連接數為256,而在一個繁忙的網站上這一連接數量也許不能滿足需要,特別是本文介紹的通過防火墻上的Apache反向代理允許外部用戶訪問多個內部Web服務器的情況,可以采用更改src/include/httpd.h文件的方法,具體步驟如下。
#cd/root 切換目錄到/root下
#tar xvfzapache_1.3.24.tar.gz 解開apache源文件到/root下
#cdapache_1.3.24進入apache_1.3.24目錄
#vi src/include/httpd.h用vi編輯httpd.h文件
在輸入“vi src/include/httpd.h”命令后,繼續輸入“/256”并按“回車”鍵搜索數字256,將其改為1024后保存并退出即可。
注意事項:
①要支持最多為1024個客戶的同時請求,不僅需要更改上面提到的源文件,在編譯安裝后還需要設置/usr/local/apache/conf/httpd.conf文件,將其中的“MaxClIEnts”一行后面的參數更改為“1024”。
②如果您僅僅為了進行測試,或者不會有很多人使用,可以不修改httpd.h文件。
4. 編譯Apache
編譯代碼如代碼1所示。
代碼1
#cdapache_1.3.24
#./configure --prefix=/usr/local/apache
--enable-module=most
--enable-shared=max
--enable-module=proxy
--enable-shared=proxy
--enable-module=rewrite
--enable-shared=rewrite 設置安裝默認目錄
編譯大多數模塊
設置模塊為DSO(動態共享對象)模式
啟動代理模塊
安裝代理模塊為DSO模式
啟動重寫功能模塊
安裝重寫功能模塊為DSO模式
注意: 在編譯Apache的時候,必須編譯大多數模塊,并將它們設置為DSO模式,同時啟動proxy和rewrite模塊,同時也將其設置為DSO模式。
#make
#makeinstall
將安裝所有Apache所需文件到/usr/local/apache目錄下。
5.在httpd.conf文件中設置基于域名的虛擬主機
在/usr/local/apache目錄找到httpd.conf文件,并將下面的內容添加至此文件后。
NameVirtualHost1.2.3.4:80
<VirtualHost1.2.3.4:80 >
ServerAdminroot@company.com