其實(shí)Apache把集群搭建起來(lái)并不麻煩,我這里也是從網(wǎng)上找了一些資料自己配置出來(lái)的,當(dāng)然有一些參數(shù)需要自己設(shè)置下,做到最優(yōu)
搭建集群首先是下載軟件,因?yàn)楣具@邊的服務(wù)器是Win2003的,所以也節(jié)儉了一些操作:
Apache下載地址:http://httpd.apache.org/ 我下載的是Apache httpd 2.2.27 Released
Tomcat 下載地址:http://tomcat.apache.org/download-60.cgi 我下載的是6.0.39的解壓版
首先是配置Tomat,因?yàn)門(mén)omcat就是集群的各個(gè)節(jié)點(diǎn),首先要保證各個(gè)節(jié)點(diǎn)能正常運(yùn)行起來(lái):
做兩個(gè)節(jié)點(diǎn),解壓Tomcat文件夾分別命名為tomcat-node1,tomcat-node2
需要修改的配置文件:
Tomcat啟動(dòng)內(nèi)存:
Bin下catalina.bat,因?yàn)槭荳in2003,Linux下是catalina.sh,在文件的最頭部增加:
set JAVA_OPTS=-Xms256m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:-UseGCOverheadLimit -XX:+UseConcMarkSweepGC -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000
如果是Linux,只是寫(xiě)法稍微不同:
JAVA_OPTS="-server -Xms256m -Xmx1030m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:-UseGCOverheadLimit -XX:+UseConcMarkSweepGC -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"
具體各個(gè)參數(shù)的含義和具體優(yōu)化方案,谷歌“tomat 啟動(dòng)內(nèi)存”,這里需要指出的是,在Windows下,JVM啟動(dòng)內(nèi)存最大是設(shè)備內(nèi)存的1/4,我這臺(tái)機(jī)器不管你設(shè)置多大,都是1300M。
Tomcat日志配置:
conf下的logging.properties,這里你可以不管它,但是需要指出的是,如果不配置,服務(wù)長(zhǎng)久運(yùn)行下去后,日志可能會(huì)出現(xiàn)占滿磁盤(pán)的情況,到時(shí)會(huì)造成宕機(jī)的情況,哥就遇到過(guò),不多說(shuō)了。
配置日志,需要注意的幾點(diǎn)有,1:日志輸出地址。2:日志輸出級(jí)別。3:日志輸出大小
想盡配置自己谷歌吧,以為即使你不配置也不影響繼續(xù)往下看。
Tomcat監(jiān)控配置:
conf下tomcat-users.xml,這里文件就這么點(diǎn)內(nèi)容:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
</tomcat-users>
我說(shuō)的是除了注釋以外。這里就增加一個(gè)用戶:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="manager"/>
<user username="admin" password="admin_cui" roles="manager"/>
</tomcat-users>
更想盡的配置,好吧,你懂的。配置之后你可以通過(guò)訪問(wèn)http://localhost:8011/manager/html來(lái)查看當(dāng)前連接處理情況。
核心、重點(diǎn),server.xml
三個(gè)端口,一個(gè)名字:
管理端口:shutdown="SHUTDOWN"前面有一個(gè)端口,第一個(gè)端口,我就設(shè)置為8012,第二個(gè)就是22
<Server port="8012" shutdown="SHUTDOWN">
服務(wù)端口:
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="300" minSpareThreads="50" maxIdleTime="120000" />
<Connector executor="tomcatThreadPool" address="0.0.0.0" port="8011" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="120000"
maxKeepAliveRequests="1" redirectPort="443" maxHttpHeaderSize="8192" URIEncoding="UTF-8" enableLookups="false" acceptCount="500" compression="on"
compressionMinSize="2048" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" disableUploadTimeout="true"/>
可以看出來(lái),這里都是優(yōu)化過(guò)的配置,包括NIO、連接池、編碼,壓縮等,各個(gè)參數(shù)含義不多說(shuō)了。
AJP端口:
<Connector port="8039" protocol="AJP/1.3" redirectPort="8443" />
jvmRoute名字,集群時(shí)用:
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm3">
下面的一段配置也放開(kāi):
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" />
如果你啟動(dòng)Tomcat能啟動(dòng),且訪問(wèn)8011可以訪問(wèn),那么這個(gè)節(jié)點(diǎn)就配置好了,其他節(jié)點(diǎn)都一樣,記得三個(gè)端口一個(gè)名字各個(gè)節(jié)點(diǎn)需不一樣。
配置Apache
配置文件httpd.conf是最主要的配置文件,配置時(shí)需要注意以下幾點(diǎn):
放開(kāi)代理模塊的加載:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
放開(kāi)對(duì)網(wǎng)站的訪問(wèn),這里我就不再啰嗦配置,直接全放開(kāi)了
Deny from All
的全部改為
allow from all
放開(kāi)如下幾個(gè)配置文件的加載,把前面的#去掉即可
- Include conf/extra/httpd-mpm.conf 配置多路處理模塊(MPM) 的輔配置文件
- Include conf/extra/httpd-vhosts.conf 配置虛擬主機(jī)的輔配置文件
- Include conf/extra/httpd-default.conf 配置與Apache服務(wù)自身相關(guān)的輔配置文件
httpd-mpm.conf和httpd-default.conf默認(rèn)即可,如果你想根據(jù)實(shí)際情況進(jìn)行一些相關(guān)配置,可以參考前面分享的文章
httpd-vhosts.conf的話,配置集群節(jié)點(diǎn)服務(wù)標(biāo)記,ServerAlias配置為本地IP即可
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host3.wuxian.com
ServerName 192.168.1.102
ServerAlias 192.168.1.102
ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On
ProxyPassReverse / balancer://cluster/
ErrorLog "logs/lbtest-error.log"
CustomLog "logs/lbtest-access.log" common
</VirtualHost>
在httpd.conf最底部增加如下配置
ProxyRequests Off
<proxy balancer://cluster>
BalancerMember ajp://127.0.0.1:8019 loadfactor=1 route=jvm1
BalancerMember ajp://127.0.0.1:8029 loadfactor=1 route=jvm2
</proxy>
開(kāi)啟反向代理,使用AJP代理訪問(wèn),loadfactor是分發(fā)權(quán)重,route是之前在Tomcat中定義的名字,注意這里是AJP端口不是Tomcat服務(wù)端口
Tomcat性能調(diào)優(yōu)和Apache配置文件的定制,是影響集群性能的重要兩點(diǎn)。
到此其實(shí)已經(jīng)配置完成了,還是需要提一點(diǎn)的是,會(huì)話共享,在各個(gè)工程的web.xml中增加<distributable/>這配置即可。
把Tomcat小貓都啟動(dòng)起來(lái),然后啟動(dòng)Apache,訪問(wèn)實(shí)際工程即可。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。