apache+tomcat6.0+ssl 服務器集羣(自己安裝過程)

第一大步:先安裝 openssl
因爲要apache與SSL整合,而apache安裝之前要用OpenSSL的路徑作參數:所以要先裝openssl(下載不說,我的版本:openssl0.9.8)
1: tar zvxf openssl-0.9.8.tar.gz
2: cd openssl-0.9.8
3: ./Configure (這一步是我最恨的地方了,32位的機器用這個命令沒有問題,如果你的機器是64位,請用: ./config -

-prefix=安裝目錄)
4: make (這一步很慢啊,如果你的一下就完成,80%你的沒裝好。)
5: make install (這是安裝的最後一步,默認的安裝目錄: /usr/local/ssl,
如果有,就說明安裝成功,如果你不想讓他安裝在

這個目錄,你必須在第三步 ./Configure 後面加參數指點安裝目錄,參數名稱就你用 ./Configure --help 看看吧。)


第二大步:安裝apache
apache是我三年程序開發第一次搞這個東西。不知道怎麼搞,看了好久,有點眉目:(下載不不說了,你連東西都下載不了,你還裝個

鳥。)

1: tar -zvxf httpd-2.2.9.tar.gz (這一步執行完成以後是解壓了apache壓縮包,現在的問題是:在安裝apache之前要先安裝apr 和

apr-util.這二個東西在apache 的安裝包裏面了。APR(Apache portable Run-time libraries,Apache可移植運行庫))
分支一:APR的安裝:
1: cd httpd-2.2.9
2: cd srclib
3: cd apr
4: ./configure --prefix=/usr/httpd/apr (安裝APR的目錄)
5: make
6: make install (執行完這一步以後就在/usr/httpd下面有一個apr的目錄,表示安裝成功!)

分支二:APR-UTIL的安裝
1:cd httpd-2.2.9
2: cd srclib
3: cd apr-util
4: ./configure --prefix=/usr/httpd/apr-util --with-apr=/usr/httpd/apr (--with-apr 後面的參數就是你

前面安裝apr的路徑)
5: make (如果你的--with-apr參數寫錯,在執行這一步的時候出錯:下面是錯誤信息
linux-web:/tool/httpd-2.2.9/srclib/apr-util # make
make: *** No targets specified and no makefile

found. Stop.
)
6: make install (這一步執行完成以後,在/usr/httpd/目錄下面就有一個apr-util的文件夾。下面是正式開始安

裝apache了)

2: cd httpd-2.2.9
3: (這一步是正式安裝apache目錄了 configurer後面跟的安裝參數,也是我花費時間比較長的一步:簡單說明
--prefix :安裝路徑
--enable-so :指明編譯動態加載模塊(DSO)支

持到httpd二進制文件(如果你不明白什麼意思,我可以集大體的說一下,就是apache有許多的模塊,例如:SSL,mdjk,他有二種加載

,動態和靜態,這一句應該 就是讓動態加載,我個人是這麼認爲的。)
--enable-module :加載所有模塊
--with-apr :你安裝apr的目錄
--with-apr-util :你安裝apr-util的目錄
--enable-ssl :static (加載ssl模塊 需要其

他模塊就查看幫助: ./configure --help)
--with-ssl :openssl的安裝目錄
--sysconfdir :httpd.conf的放置目錄(這個

參很很重,只要記得他 --prefix的值一樣就可以了)
)
./configure --prefix=/usr/httpd/apache2
--sysconfdir=/usr/httpd/apache2/conf
--with-ssl=/usr/local/ssl
--enable-so
--enable-modules=all
--with-apr=/usr/httpd/apr
--with-apr-util=/usr/httpd/apr-util

/*
./configure --prefix=/usr/httpd/apache2
--sysconfdir=/usr/httpd/apache2/conf
--with-ssl=/usr/local/ssl
--enable-so
--enable-ssl
--with-apr=/usr/httpd/apr
--with-apr-util=/usr/httpd/apr-util


(最終)
./configure --prefix=/usr/httpd/apache2 --enable-modules="rewrite expires cache file-cache disk-cache mem

-cache proxy proxy-connect.proxy-ftp proxy-http proxy-ajp proxy-balancer" --enable-ssl --with-apr=/usr/httpd/apr --

with-ssl=/usr/local/ssl --with-mpm=worker --with-apr-util=/usr/httpd/apr-util --sysconfdir=/usr/httpd/apache2/conf

--enable-so


*/


4:make
5:make install (這步執行完成以後就可以到 /usr/httpd/apache2/bin 的目錄下面)
6:./apachectl start (如果回車以後馬什麼也沒有提示,表示你的apache HTTP Server已經啓動:在IE中輸入:

http://IP地址 ,頁面如果出現:It works! 表示apache啓動成功!)

第三步:apache 與 SSL的整合 :我們下面就要配置 apache的 httpd.conf文件了.
1: cd .../apache2/conf/
2: vi httpd.conf
A:(修改:DocumentRoot 爲你的項目所在路徑 我的爲 DocumentRoot "/www/ROOT")
B:(修改: <Directory "/usr/httpd/apache2/htdocs"> 改爲<Directory "/www/ROOT">)
C:(找到 Include conf/extra/httpd-ssl.conf 去掉前面的 #號 到了這一步,保存修改,我們

就要用到我們第一大步開始裝的openssl了。下面是對 openssl生成證書的操作:具體步驟我不說了,網上一大堆:)
C1:cd /usr/local/ssl/bin 在這個目錄下面生成二個文件:一個密

鑰(server.key),一個認證文件 (server.crt)
C2: 將這二個文件放到 ..../apache2/conf下面
C3: 找到:#Include conf/extra/httpd-ssl.conf ,去掉前面的#號
C3: ./openssl genrsa -des3 -out server.key 2048
C5: ./openssl req -new -key server.key -out server.crs -

config /etc/ssl/openssl.cnf
C4: openssl ca -in server.crs -out server.crt -cert

server.crt -keyfile server.key -config /etc/ssl/config.cnf
C5:
D:修改 (apache目錄/conf/extra/httpd-ssl.conf)如下:
SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
指定服務器證書key位置
SSLCertificateKeyFile

/usr/local/apache/conf/ssl.crt/server.key
證書目錄

第三步: 安裝tomcat,我用的apache-tomcat-6.0.16.tar.gz.
1: tar -zvxf apache-tomcat-t.0.16.tar.gz
2: mv apache-tomcat-6.0.16 /usr/httpd/tomcat1
3: tar -zvxf apache-tomcat-t.0.16.tar.gz
4: mv apache-tomcat-6.0.16 /usr/httpd/tomcat2

第四步: tomcat 和apache集羣:(個人理解:apache接受客戶端請求,對後臺操作的請求分發給各個集羣的tomcat)
1: cd /usr/httpd/tomcat1/conf
2: vi server.xml
(找到:<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">,去掉上下的註釋,改jvm1爲

tomcat1,找到:<Service name="Catalina">,修改
Catalina爲tomcat1,找到:<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 修改8009爲

8010,8443爲8410 找到:Connector port="8080",修改:8080爲8800,註釋掉這一行:<Engine name="Catalina"

defaultHost="localhost">);
3: cd /usr/httpd/tomcat2/conf
(找到:<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">,去掉上下的註釋,改jvm1爲

tomcat2,找到:<Service name="Catalina">,修改
Catalina爲tomcat1,找到:<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 修改8009爲

8011,8443爲8411 找到:Connector port="8080",修改:8080爲8801,,註釋掉這一行:<Engine name="Catalina"

defaultHost="localhost">
找到:<Server port="8005" shutdown="SHUTDOWN">,修改8005爲8006);
4: cd /usr/httpd/apache2/conf
5: vi workers.properties (創建新文件,內容如下)
worker.list=loadbalancer

worker.tomcat1.port=8010 #這裏是tomcat1的ajp端口
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1

worker.tomcat2.port=8011 #這裏是tomcat2的ajp端口
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1

worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=tomcat1,tomcat2
worker.loadbalancer.sticky_session=1 (我測試,這裏的值爲1是session共享,0爲非

session共享)


6: cd /usr/httpd/apache2/conf/extra/


7: vi /usr/httpd/apache2/conf/extra/mod-jk.conf
mod-jk.conf 信息如下:
<IfModule mod_jk.c>
JkWorkersFile /usr/httpd/apache2/conf/workers.properties #(集羣配置信息)
JkLogFile /usr/httpd/apache2/logs/mod_jk.log #(日誌信息)
JkLogLevel warning

#(日誌等級)
</IfModule>
#......
<IfModule mod_jk.c>


JkMount /*.jsp loadbalancer

#apache接收到請求轉發給tomcat的類型(我定義的是jsp和

action)
JkMount /*.action loadbalancer


#JkMount /* loadbalancer
</IfModule>
#.......
DirectoryIndex index.jsp

8: 安裝mod_jk模塊
A:下載tomcat-connectors-1.2.26-src.tar.gz,執行:
A1: tar zvxf tomcat-connectors-1.2.26-src.tar.gz
A2: cd tomcat-connectors-1.2.26-src/native
A3: ./configure --with-apxs=/usr/httpd/apache2/bin/apxs
A4: make
A5: cp ./apache-2.0/mod_jk.so /usr/httpd/apache2/modules/ 到這

一步就可以用apache和tomcat集羣了,用是https訪問的時候jsp和action的請求還不能轉給tomcat.

9: vi /usr/httpd/apache2/conf/extra/httpd-ssl.conf 加 TransferLog

"/usr/httpd/apache2/logs/access_log" 下面二行代碼:

JkMount /*.jsp loadbalancer
JkMount /*.action loadbalancer






總結:
1:啓動apache 碰到下面問題:Invalid command 'SSLPassPhraseDialog', perhaps misspelled or defined by

a module not included in the server configuration,到apache2的bin 目錄下面執行 ./httpd -l 看看有沒有mode_ssl.c,這個

錯誤說明ssl模塊安裝沒有成功!

--enable-proxy :安裝apache proxy 模塊
--enable-proxy-ajp :安裝apache proxy ajp模塊
--enable-proxy-balancer :安裝apache proxy balancer 模塊
--enable-MODULE=shared :MMODULE編譯爲DSO(可用於所有模塊)
--enable-MODULE=static 將MODULE靜態連接進核心(僅用於擴展和實驗模塊)
發佈了19 篇原創文章 · 獲贊 0 · 訪問量 2744
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章