若要使用 Apache Web Server,必須先執行特定的配置步驟,才能安裝負載平衡外掛程式。負載平衡外掛程式安裝也會對 Apache Web Server 做出其他修改。安裝外掛程式後,必須執行其他配置步驟。
在 Apache 1.3 上,當多個 Apache 子程序執行時,每個程序都有自己的負載平衡循環序列。例如,若有兩個 Apache 子程序在執行中,並且負載平衡外掛程式針對兩個應用程式伺服器實例執行負載平衡功能,則第一個請求會傳送至實例 #1,第二個請求也會傳送至實例 #1。第三個請求則會傳送至實例 #2,而第四個請求會再度傳送至實例 #2。此模式將重複執行 (實例 1、實例 1、實例 2、實例 2,以此類推)。此運作方式與您可能預期的模式 (亦即,實例 1、實例 2、實例 1、實例 2 等) 不同。在 Sun Java System Application Server 中,Apache 的負載平衡外掛程式會為每個 Apache 程序實例化負載平衡器實例,並建立獨立的負載平衡序列。
如果使用 --with-mpm=worker 選項進行編譯,則 Apache 2 將具有多重執行緒運作方式。
對於 Apache Web Server,您的安裝必須滿足最小需求 (視 Apache 版本而定)。
對於 Apache 1.3,負載平衡外掛程式需要︰
openssl-0.9.8b (原始碼)
mod_ssl-2.8.n-1.3.x (原始碼),其中 n 代表所使用 Apache 版本的正確 mod_ssl 版本,而 x 代表 Apache 版本
gcc-3.3-sol9-sparc-local 套裝軟體 (用於 Solaris 9 SPARC)
gcc-3.3-sol9-intel-local 套裝軟體 (用於 Solaris 9 x86)
預先安裝的 gcc (用於 Solaris 10)
flex-2.5.4a-sol9-sparc-local 套裝軟體 (用於 Solaris 9 SPARC)
flex-2.5.4a-sol9-intel-local 套裝軟體 (用於 Solaris 9 x86)
預先安裝的 flex (用於 Solaris 10)
軟體原始碼可從 http://www.sunfreeware.com 取得。
如需有關 mod_ssl (包括與您的 Apache 版本一同使用的正確 mod_ssl 版本) 的更多資訊,請參閱 http://www.modssl.org。
此外,在編譯 Apache 之前,請執行以下步驟:
在 Linux 2.1 平台上,請在相同的機器上安裝 Sun Java System Application Server。
在 Solaris 9 作業系統上,請使用 pkgadd 安裝 gcc 和 flex。請注意,pkgadd 需要超級使用者存取權限。
在 Solaris 9 作業系統上,請確保 gcc 3.3 版和 make 位於 PATH 中,並且已安裝了 flex。
在 Solaris 10 作業系統上的 Java Enterprise System 安裝中,對 OpenSSL 執行 make 之前,請先執行 mkheaders (在 Solaris SPARC 上,位於 /usr/local/lib/gcc-lib/sparc-sun-solaris2.9/3.3/install-tools 中;在 Solaris x86 上,則位於 /usr/local/lib/gcc-lib/i386-pc-solaris2.9/3.3/install-tools 中)。
如果您在 Red Hat Enterprise Linux Advanced Server 2.1 上使用 gcc,則 gcc 的版本必須在 3.0 以上。
如果除了使用 gcc 之外還要使用 C 編譯器,請在 PATH 環境變數中設定 C 編譯器和 make 公用程式的路徑。例如,對於 sh shell︰export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:application-server-install-dir /lib
對於 Apache 2,負載平衡外掛程式需要︰
openssl-0.9.8b (原始碼)
httpd-2.0.49 (原始碼)
gcc-3.3-sol9-sparc-local 套裝軟體 (用於 Solaris 9 SPARC)。
gcc-3.3-sol9-intel-local 套裝軟體 (用於 Solaris 9 x86)
預先安裝的 gcc (用於 Solaris 10)
flex-2.5.4a-sol9-sparc-local 套裝軟體 (用於 Solaris 9 SPARC)
flex-2.5.4a-sol9-intel-local 套裝軟體 (用於 Solaris 9 x86)
預先安裝的 flex (用於 Solaris 10)
軟體原始碼可從 http://www.sunfreeware.com 取得。
此外,在編譯 Apache 之前,請執行以下步驟:
在 Linux 平台上,請在相同的機器上安裝 Sun Java System Application Server。
在 Solaris 9 作業系統上,使用 pkgadd 以安裝 gcc 和 flex。請注意,pkgadd 需要超級使用者存取權限。
在 Solaris 9 作業系統上,請確保 gcc 3.3 版和 make 位於 PATH 中,並且已安裝了 flex。
在 Solaris 10 作業系統上,對 OpenSSL 執行 make 之前,請先執行 mkheaders (在 Solaris SPARC 上,位於 /usr/local/lib/gcc-lib/sparc-sun-solaris2.9/3.3/install-tools 中;在 Solaris x86 上,位於 /usr/local/lib/gcc-lib/i386-pc-solaris2.9/3.3/install-tools 中)。
如果您在 Red Hat Enterprise Linux Advanced Server 2.1 上使用 gcc,則 gcc 的版本必須在 3.0 以上。
如果除了使用 gcc 之外還要使用 C 編譯器,請在 PATH 環境變數中設定 C 編譯器和 make 公用程式的路徑。
為 Apache 安裝負載平衡外掛程式之前,請先安裝 Apache Web Server。必須編譯並建置 Apache 原始碼,以與 SSL 一起執行。本小節說明成功編譯 Apache Web Server 以執行負載平衡外掛程式所需的最小需求和高階步驟。這些需求和步驟僅適用於此軟體的 Solaris 和 Linux 版本。如需有關 Apache 的 Windows 版本的資訊,請參閱 Apache 網站。
在此提供的指示改編自 http://httpd.apache.org/docs 的指示內容。如需有關顧及 SSL 設定的 Apache 之詳細安裝指示,請參閱該網站。
您必須已下載並解壓縮了 Apache 軟體。
下載並解壓縮 OpenSSL 原始碼,原始碼可從 http://openssl.org 取得。
編譯並建置 OpenSSL。
如果已安裝了 OpenSSL 0.9.7.e,則在 Linux 3.0 平台上無需執行此步驟。在 Linux 4.0 上則需要執行此步驟。
如需完整的安裝指示,請參閱在您解壓縮 OpenSSL 的目錄內,名為 INSTALL 的檔案。該檔案說明如何在使用者指定的位置安裝 OpenSSL。
如需有關 OpenSSL 的更多資訊,請參閱 http://www.openssl.org/。
下載及解壓縮 Apache。
Apache 可從 http://httpd.apache.org 取得。
編譯及建立 Apache。
依據 Apache 的版本,請執行以下程序之一︰
對於 Apache 1.3,請依循以下步驟使用 mod_ssl 配置 Apache︰
解壓縮 mod_ssl 原始碼。
鍵入以下指令:
cd mod_ssl-2.8.n–1.3.x
鍵入以下指令:
./configure –with-apache=../apache_1.3.x --with-ssl=../openssl-0.9.8b --prefix=Apache-install-path --enable-module=ssl --enable-shared=ssl --enable-rule=SHARED_CORE --enable-module=so
在上述指令中,n 為與您的 Apache 版本一同使用的正確 mod_ssl 版本,x 為 Apache 版本編號,而 Apache-install-path 為要在其中安裝 Apache 的目錄。
如需有關 mod_ssl (包括與您的 Apache 版本一同使用的正確 mod_ssl 版本) 的更多資訊,請參閱 http://www.modssl.org。
對於 Apache 2,請配置原始碼樹狀結構︰
對於 Apache 2,請確定 Apache 的 ssl.conf 和 httpd.conf 檔案中包含適用您的環境之正確值。
在 ssl.conf 中,對於 VirtualHost default:port,請以安裝 Apache 2 的本機系統主機名稱和伺服器連接埠號取代預設主機名稱和連接埠。
若不做此變更,負載平衡器將無法運作。在 Solaris 上,Apache 可能無法啟動,在 Linux 上,HTTPS 請求可能無法運作。
在 ssl.conf 中,對於 ServerName www.example.com:443,請以安裝 Apache 2 的本機系統主機名稱取代 www.example.com。
若不做此變更,如果有安裝安全憑證,在啟動 Apache 時會出現下列警告:
[warn] RSA server certificate CommonName (CN) hostname does NOT match server name! |
如需有關安裝 Apache 2 憑證的更多資訊,請參閱為 Apache 2 建立安全性憑證。
在 httpd.conf 中,對於 ServerName www.example.com:80,請以安裝 Apache 2 的本機系統主機名稱取代 www.example.com。
若沒有做此變更,則啟動 Apache 時您會看到的警告訊息,包括系統無法判定伺服器的完全合格網域名稱,以及有重疊的 VirtualHost 項目。
|
若您以超級使用者身份安裝 Apache,請務必參閱 apache-install-location/conf/httpd.conf 中,有關如何配置使用者及群組的備註。Apache 會依 httpd.conf 所述的使用者身份執行。對於在啟動 Apache 時要初始化的負載平衡外掛程式,loadbalancer.xml 檔案和 sun-loadbalancer_1_1.dtd 檔案 (位於 apache-install-location/conf 中) 必須擁有此使用者的檔案權限。
對於 Linux 2.1 上的 Apache,編譯之前請執行以下作業︰
開啟 src/MakeFile 並尋找自動產生區段的結尾。
在自動產生區段之後的前四行之後增加以下行︰
LIBS+= -licuuc -licui18n -lnspr4 -lpthread -lxerces-c -lsupport -lnsprwrap -lns-httpd40 LDFLAGS+= -L/application-server-install-dir/lib -L/opt/sun/private/lib
請注意,僅在將 Application Server 做為 Java Enterprise System 安裝的一部分進行安裝時,才需要 -L/opt/sun/private/lib。
例如︰
## (End of automatically generated section) ## CFLAGS=$(OPTIM) $(CFLAGS1) $(EXTRA_CFLAGS) LIBS=$(EXTRA_LIBS) $(LIBS1) INCLUDES=$(INCLUDES1) $(INCLUDES0) $(EXTRA_INCLUDES) LDFLAGS=$(LDFLAGS1) $(EXTRA_LDFLAGS) "LIBS+= -licuuc -licui18n -lnspr4 -lpthread -lxerces-c -lsupport -lnsprwrap -lns-httpd40 LDFLAGS+= -L/application-server-install-dir /lib -L/opt/sun/private/lib
設定環境變數 LD_LIBRARY_PATH。
對於獨立式安裝,將此變數設為 Application Server:install-dir/lib
對於 Java Enterprise System 安裝,將此變數設為 Application Server:install-dir/lib:opt/sun/private/lib .
若您使用 Solaris 9,請將 /usr/local/lib 增加至 LD_LIBRARY_PATH。
請依循您所使用版本的安裝說明,編譯 Apache。
如需更多資訊,請參閱 http://httpd.apache.org/。
一般而言,步驟為︰
指令 make certificate 需要安全密碼。請記住此密碼,因為啟動安全 Apache 時需要它。
負載平衡外掛程式安裝程式會擷取必要的檔案至 Web Server 根目錄下的一個目錄中:
對於 Apache 1.3,目錄為 libexec。
對於 Apache 2,目錄為 modules。
安裝程式會將以下項目增加至 Web Server 實例的 httpd.conf 檔案︰
<VirtualHost machine-name:443> ##Addition for EE lb-plugin LoadFile /usr/lib/libCstd.so.1 LoadModule apachelbplugin_module libexec/mod_loadbalancer.so #AddModule mod_apachelbplugin.cpp <IfModule mod_apachelbplugin.cpp> config-file webserver-instance/conf/loadbalancer.xml locale en </IfModule><VirtualHost machine-ip-address> DocumentRoot "webserver-instance/htdocs" ServerName server-name </VirtualHost> ##END EE LB Plugin ParametersVersion 7
請注意,對於 Apache 2,模組為 mod_apache2lbpblugin.cpp。
Apache Web Server 需要有正確的安全性檔案才能處理負載平衡外掛程式。負載平衡器依賴需要這些安全性資料庫檔案的 NSS (Network Security Service) 程式庫。這些安全資料庫檔案必須自 Application Server 取得,因此 Application Server 必須安裝於 Web 伺服器可存取的位置。
在 Apache_install_dir 下建立名為 sec_db_files 的目錄。
將安全性資料庫檔案從 Application Server 複製到您建立的目錄中。
將 domain-dir/config/*.db 複製到 Apache-install-dir/sec_db_files。
視平台而定,執行其他配置。
在 Solaris 平台上,對於 Java Enterprise System 安裝執行以下作業:
將路徑 /usr/lib/mps/secv1 增加至 Apache-install-dir/bin/apachectl 程序檔中的 LD_LIBRARY_PATH。此路徑必須增加在 /usr/lib/mps 之前。
在 Linux 平台上,對於 Java Enterprise System 安裝執行以下作業:
將路徑 /opt/sun/private/lib 增加至 Apache-install-dir/bin/apachectl 程序檔中的 LD_LIBRARY_PATH。此路徑必須增加在 /usr/lib 之前。
在 Microsoft Windows 上︰
在 Apache 上需要這些步驟來支援 HTTPS 請求。
如需有關在 Apache 上設定安全性憑證的詳細資訊,請參閱 http://http.apache.org/docs/2.2/ssl/ssl_faq.html 及 http://www.modssl.org/docs/2.8/ssl_faq.html 上的說明。下列程序改編自上述網站。
移至適當的 OpenSSL 目錄:
若使用的是 Solaris 10,請使用預先安裝的 OpenSSL 建立憑證。cd /usr/sfw/bin
若使用的是 Solaris 9 或 Linux,請移至安裝 OpenSSL 的目錄。您應該先依循安裝可識別 SSL 的 Apache中的指示,為 OpenSSL 執行 configure 和 make。
設定環境變數 OPENSSL_CONF=OpenSSL-installation-directory/apps/openssl.cnf。
執行以下指令以建立伺服器憑證及金鑰:
openssl req -new -x509 -keyout newreq.pem -out newreq.pem -days 365
系統要求一般名稱時,請提供您打算在其中執行 Apache 的主機名稱。對於所有其他的提示,請輸入符合特定需求的值。
此指令會建立 newreq.pem。
自執行 openssl 指令的位置開啟剛建立的 newreq.pem。
複製從 BEGIN CERTIFICATE 開始到 END CERTIFICATE 為止的指令行,並貼到 Apache-install-dir/conf/ssl.crt/server.crt 中。例如︰
-----BEGIN CERTIFICATE----- .... ... -----END CERTIFICATE----- |
複製從 BEGIN RSA PRIVATE KEY 開始到 END RSA PRIVATE KEY 為止的指令行,並貼到 Apache-install-dir/conf/ssl.key/server.key 中。例如︰
-----BEGIN RSA PRIVATE KEY----- ... ... ... -----END RSA PRIVATE KEY----- |
請確定在 Apache-install-dir/conf/ssl.conf 中的變數 SSLCertificateKeyFile 和 SSLCertificateFile 都具有正確值。
請確定 ServerName 不是 www.example.com。ServerName 應是要執行 Apache 的實際主機名稱,並與您在建立伺服器憑證及金鑰時輸入的一般名稱相同。
通常啟動 Apache 時所用的使用者身份,應與安裝 Application Server 時所用的身份相同。只有在下列情況時,才必須以超級使用者身份啟動 Apache:
若您是 Java Enterprise System 使用者。
若您使用的連接埠號小於 1024。
若執行 Apache 的使用者不同於啟動 Apache 的使用者。
若要以 SSL 模式啟動 Apache,請使用下列其中一個指令:
apachetl startssl 或 apachetl -k start -DSSL
必要的話,請查看 Apache 網站上有關啟動 Apache 伺服器的最新資訊。