apache+resin來做想來大家都比較熟悉了,一般的配置都是很熟悉的了,我查看了一些論壇上的文章,這方便的文章比較多。在這裡,我只要寫寫apache+resin實現獨立的虛擬主機和resin自帶的負載均衡。
2、系統和環境:
redhat9 and solaris9
httpd-2.50
resin-3.06
pure-ftpd-1.0.17a.tar.gz
3、安裝軟件:
3.1、安裝apache:
# tar zxvf httpd-2.49.tar.gz
# cd httpd-2.49
# ./configure --prefix=/usr/local/apache2 --enable-so --with-mpm=worker
# make
# make install
3.2、安裝resin:
# tar zxvf resin-3.06.tar.gz
# cd resin03.06
# ./configure --prefix=/usr/local/resin --with-apxs=/usr/local/apache2/bin/apxs
# make
# make install
3.3、安裝pureftp
# tar zxvf pure-ftpd-1.0.17a.tar.gz
# cd pure-ftpd-1.0.17a
# ./configure --prefix=/usr/local/pureftpd
--without-inetd --with-puredb
--with-cookie --with-throttling
--with-ratios --with-quotas
--with-ftpwho --with-largefile
--with-welcomemsg
# make
# make install
# mkdir /usr/local/pureftpd/etc
4、配置軟件:
目的:用apache和resin做基於域名的虛擬主機,啟用resin自身的負載均衡的引擎。resin的負載均衡引擎實際上是可以啟動多個java響應進程,通過內部機制來進行負載均衡。
4.1、配置apache:
# vi /usr/local/apache2/conf/httpd.conf
---------------------------------------
DirctoryIndex index.html index.jsp
AddDefaultCharset Off
User nobody
Group nobody
NamevirtualHost 211.11.11.11
;
ServerAdmin [email protected]
DocumentRoot /data/web/xcity
ServerName xcity.chinaunix.com
ErrorLog logs/xcity.chinaunix.com-error_log
CustomLog logs/xcity.chinaunix.com-access_log common
;
;
ServerAdmin [email protected]
DocumentRoot /data/web/sports
ServerName sports.chinaunix.com
ErrorLog logs/sports.chinaunix.com-error_log
CustomLog logs/sports.chinaunix.com-access_log common
;
........
....
# mod_caucho Resin Configuration
#
LoadModule caucho_module /usr/local/apache2/modules/mod_caucho.so
ResinConfigServer 127.0.0.1
---------------------------------------
4.2、配置resin:
# vi /usr/local/resin/conf/resin.conf
----------------------------------------
;
;
;
;
;
;
---注解:
(這裡面,我用了系統本身的127.0.0.1,綁定了4個端口做伏在均衡。還可以用不同的ip地址和同一端口,來作。例如:
;
;
;
;
;
;
還有些人,喜歡在apache中設置每一個java進程服務一個虛擬,這裡我們不推薦,這樣做,就會失去引擎本身的意義。)
;
;
;/data/web/xcity;
;
;
;
;
;
;
;
;
;
;
;/opt/web/sports;
;
;
;
;
;
;
;
;
;
........
....
--------------------------------------------------
---注:這裡面是基於域名的虛擬主機,如果是針對ip的虛擬主機,在;中,就應該是對應虛擬主機的ip了。也就是說,apache和resin關於虛擬主機的地方要保持一致。還有,在resin中,對於每個虛擬主機所用的web-app目錄,其實是相對於她的家目錄下的/目錄。
4.3、配置pureftp
1、添加用戶:
# pure-pw useradd xcityr -f /usr/local/pureftp/etc/ftppasswd -u nobody -g nobody -d /data/web/xcity -m
# pure-pw useradd sports -f /usr/local/pureftp/etc/ftppasswd -u nobody -g nobody -d /data/web/sports -m
---注:xcity :ftp用戶
-f ftppasswd:存放用戶密碼信息的文件
-u 用戶uid 一般是系統的一個用戶,就是你的ftp用戶的家目錄的用戶
-g 用戶組id
-d 鎖定用戶在家目錄
-m 使pureftp.d.passwd寫進pureftpd.pdb,使更改生效。
*修改用戶:
# pure-pw usermod --help
*刪除用戶:
# pure-pw userdel ; [-f ;] [-m]
*更改擁護密碼:
# pure-pw passwd ; [-f ;] [-m]
*查看用戶詳細內容:
# pure-pw show ; [-f ;]
*生成db文件,使密碼生效:
# pure-pw mkdb [; [-f ;]]
*列出所有用戶:
# pure-pw list [-f ;]
5、啟動腳本:
當系統在solaris下:
apache和resin的啟動腳本:
# vi /etc/rc2.d/S99webapp
-------------------------------
/usr/local/resin/bin/httpd.sh -pid srun1.pid -server a start
/usr/local/resin/bin/httpd.sh -pid srun2.pid -server b start
/usr/local/resin/bin/httpd.sh -pid srun3.pid -server c start
/usr/local/resin/bin/httpd.sh -pid srun4.pid -server d start
/usr/local/apache2/bin/apachectl start
--------------------------------
pureftp啟動腳本:
--------------------------------
#!/bin/sh
/usr/local/pureftpd/sbin/pure-ftpd -j -lpuredb:/usr/local/pureftpd/etc/pureftpd.pdb &
-----------------------------------
在linux下,直接放到響應的開機啟動等級目錄下就ok了。
6、總結
apache+resin應該是個很好的java應用平台了。實際使用中,還是有很多技巧。看了resin官方論壇的一些資料,說resin3.x以上的版本,對image和html的支持,比apache響應更快。我對此測試過,感覺還是有所欠缺。所以說,在大型一點的發布平台上,還是要apache和resin結合比較好。
對於resin的負載均衡使用上啟動的進程數,我認為還是要根據自己的機器實際情況來考慮的。少了達不到效果,多了會機器系統也是一個負載。個人認為,4個可以作為一個默認的選擇來考慮。