其實Apache把集群搭建起來并不麻煩,我這里也是從網上找了一些資料自己配置出來的,當然有一些參數需要自己設置下,做到最優
搭建集群首先是下載軟件,因為公司這邊的服務器是Win2003的,所以也節儉了一些操作:
Apache下載地址:http://httpd.apache.org/ 我下載的是Apache httpd 2.2.27 Released
Tomcat 下載地址:http://tomcat.apache.org/download-60.cgi 我下載的是6.0.39的解壓版
首先是配置Tomat,因為Tomcat就是集群的各個節點,首先要保證各個節點能正常運行起來:
做兩個節點,解壓Tomcat文件夾分別命名為tomcat-node1,tomcat-node2
需要修改的配置文件:
Tomcat啟動內存:
Bin下catalina.bat,因為是Win2003,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,只是寫法稍微不同:
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"
具體各個參數的含義和具體優化方案,谷歌“tomat 啟動內存”,這里需要指出的是,在Windows下,JVM啟動內存最大是設備內存的1/4,我這臺機器不管你設置多大,都是1300M。
Tomcat日志配置:
conf下的logging.properties,這里你可以不管它,但是需要指出的是,如果不配置,服務長久運行下去后,日志可能會出現占滿磁盤的情況,到時會造成宕機的情況,哥就遇到過,不多說了。
配置日志,需要注意的幾點有,1:日志輸出地址。2:日志輸出級別。3:日志輸出大小
想盡配置自己谷歌吧,以為即使你不配置也不影響繼續往下看。
Tomcat監控配置:
conf下tomcat-users.xml,這里文件就這么點內容:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
</tomcat-users>
我說的是除了注釋以外。這里就增加一個用戶:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="manager"/>
<user username="admin" password="admin_cui" roles="manager"/>
</tomcat-users>
更想盡的配置,好吧,你懂的。配置之后你可以通過訪問http://localhost:8011/manager/html來查看當前連接處理情況。
核心、重點,server.xml
三個端口,一個名字:
管理端口:shutdown="SHUTDOWN"前面有一個端口,第一個端口,我就設置為8012,第二個就是22
<Server port="8012" shutdown="SHUTDOWN">
服務端口:
<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"/>
可以看出來,這里都是優化過的配置,包括NIO、連接池、編碼,壓縮等,各個參數含義不多說了。
AJP端口:
<Connector port="8039" protocol="AJP/1.3" redirectPort="8443" />
jvmRoute名字,集群時用:
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm3">
下面的一段配置也放開:
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" />
如果你啟動Tomcat能啟動,且訪問8011可以訪問,那么這個節點就配置好了,其他節點都一樣,記得三個端口一個名字各個節點需不一樣。
配置Apache
配置文件httpd.conf是最主要的配置文件,配置時需要注意以下幾點:
放開代理模塊的加載:
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
放開對網站的訪問,這里我就不再啰嗦配置,直接全放開了
Deny from All
的全部改為
allow from all
放開如下幾個配置文件的加載,把前面的#去掉即可
- Include conf/extra/httpd-mpm.conf 配置多路處理模塊(MPM) 的輔配置文件
- Include conf/extra/httpd-vhosts.conf 配置虛擬主機的輔配置文件
- Include conf/extra/httpd-default.conf 配置與Apache服務自身相關的輔配置文件
httpd-mpm.conf和httpd-default.conf默認即可,如果你想根據實際情況進行一些相關配置,可以參考前面分享的文章
httpd-vhosts.conf的話,配置集群節點服務標記,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>
開啟反向代理,使用AJP代理訪問,loadfactor是分發權重,route是之前在Tomcat中定義的名字,注意這里是AJP端口不是Tomcat服務端口
Tomcat性能調優和Apache配置文件的定制,是影響集群性能的重要兩點。
到此其實已經配置完成了,還是需要提一點的是,會話共享,在各個工程的web.xml中增加<distributable/>這配置即可。
把Tomcat小貓都啟動起來,然后啟動Apache,訪問實際工程即可。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。