㈠ linux下apache+tomcat集群詳細配置
環境:
操作系統均為:CentOS 5.1
Apache2.X伺服器一台:IP地址192.168.232.4;安裝路徑/usr/local/apache;
Tomcat6伺服器一台:IP地址192.168.232.5;安裝路徑/usr/local/tomcat;
Tomcat6伺服器一台:IP地址192.168.232.6;安裝路徑/usr/local/tomcat;
配置:
Apache安裝:
#./configure --prefix=/usr/local/apache --enable-moles=so --enable-mods-shared=all --enable-proxy --enable-proxy-connect --enable-proxy-ftp --enable-proxy-http --enable-proxy-ajp --enable-proxy-balancer --enable-rewrite
注釋:激活tomcat集群需要的 enable-proxy,enable-proxy-http,enable-proxy-connect,enable-proxy-ajp和enable-proxy-balancer,其中proxy-ajp和proxy-balancer必須依賴proxy,如果是自定義的編譯除了以上幾個必須的模塊外,mod_status也要編譯進去,切記。enable-proxy-ftp可以不編譯。
#make;make install
製作Apache啟動項:
#cp support/apachectl /etc/rc.d/init.d/httpd
#vi /etc/rc.d/init.d/httpd
添加以下內容:(包括#號)
# Startup script for the Apache Web Server
# chkconfig: 2345 85 15
# description: Apache is a World Wide Web server .It is used to server
# HTML files and CGI.
# processname: httpd
# pidfile: /usr/local/apache/log/httpd.pid
# config: /usr/local/apache/conf/httpd.conf
增加服務項
#chkconfig --add httpd
#chmod 755 /etc/rc.d/init.d/httpd
#chkconfig --level 345 httpd on
JDK安裝:
#chmod a+x jdk-6u4-linux-i586-rpm.bin
#./jdk-6u4-linux-i586-rpm.bin
java環境變數設置:
#vi /etc/profile
在文件最後添加以下內容:
JAVA_HOME=/usr/java/jdk1.6.0_04
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
PATH=$JAVA_HOME/bin:$PATH
CATALINA_HOME=/usr/local/tomcat
export JAVA_HOME CLASSPATH PATH CATALINA_HOME
執行如下命令使環境變數生效:
source /etc/profile
測試配置是否成功:
java –version
Tomcat安裝:
#wget [url]http://apache.mirror.phpchina.com/tomcat/tomcat-6/v6.0.16/bin/apache-tomcat-6.0.16.tar.gz[/url]
#tar zxvf apache-tomcat-6.0.16.tar.gz
#mv apache-tomcat-6.0.16 /usr/local/tomcat
Tomcat隨機啟動:
#vi /etc/rc.local
添加以下內容:
/usr/local/tomcat/bin/startup.sh
tomcat6配置文件server.xml:
把
<!-- You should set jvmRoute to support load-balancing via AJP ie :
<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">
-->
<Engine name="Catalina" defaultHost="localhost">
改成
<!-- You should set jvmRoute to support load-balancing via AJP ie :
-->
<Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcatX">
<!--
<Engine name="Catalina" defaultHost="localhost">
-->
說明:
第一台tomcat就把jvmRoute="tomcat1"
第二台tomcat就把jvmRoute="tomcat2"
把
<!--
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
-->
去掉注釋變為
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
***群集詳細配置***
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="8">
<Manager className="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto"
port="4000"
autoBind="100"
selectorTimeout="5000"
maxThreads="6"/>
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=""/>
<Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
<ClusterListener className="org.apache.catalina.ha.session."/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
配置應用的web.xml:
在每個webapps應用中,修改配置文件web.xml文件 添加元素<distributable/>
在web.xml文件中<web-app>元素下增加以下內容:
<!--此應用將與群集伺服器復制Session-->
<distributable/>
具體修改如下:
修改前:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="[url]http://java.sun.com/xml/ns/javaee[/url]"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee [url]http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd[/url]"
version="2.5">
</web-app>
修改後:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="[url]http://java.sun.com/xml/ns/javaee[/url]"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee [url]http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd[/url]"
version="2.5">
<!--此應用將與群集伺服器復制Session-->
<distributable/>
</web-app>
配置apache的ajp負載均衡功能:
確保將以下Mole的注釋去掉
LoadMole proxy_mole moles/mod_proxy.so
LoadMole proxy_connect_mole moles/mod_proxy_connect.so
LoadMole proxy_ftp_mole moles/mod_proxy_ftp.so
LoadMole proxy_http_mole moles/mod_proxy_http.so
LoadMole proxy_ajp_mole moles/mod_proxy_ajp.so
LoadMole proxy_balancer_mole moles/mod_proxy_balancer.so
LoadMole status_mole moles/mod_status.so
增加以下內容:
# Proxypass Config
Include conf/extra/httpd-modproxy.conf
建立文件httpd-modproxy.conf輸入內容:
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from all
</Location>
<Location /balancer-manager>
SetHandler balancer-manager
Order Deny,Allow
Deny from all
Allow from all
</Location>
ProxyRequests Off
ProxyPass / balancer://tomcatcluster stickysession=jsessionid nofailover=On
<Proxy balancer://tomcatcluster>
BalancerMember [url]http://192.168.232.5:8080[/url] loadfactor=1
BalancerMember [url]http://192.168.232.6:8080[/url] loadfactor=2
</Proxy>
注釋:
ProxyRequests Off 表示啟用反向代理,必須開啟;
ProxyPass為代理轉發的Url,即將所有訪問/的請求轉發到群集balancer://tomcatcluster,這里為/即將所有訪問/的請求轉發到群集balancer://tomcatcluster的/test目錄;
BalancerMember為群集的成員,即群集伺服器1或2,負載均衡伺服器會根據均衡規則來將請求轉發給BalancerMember;
調試負載均衡集群系統:
訪問apache伺服器的web服務:[url]http://192.168.232.4/balancer-manager[/url]
如果顯示負載均衡有關信息則說明成功了,接著可以訪問[url]http://192.168.232.4/[/url]即訪問到了tomcat的應用
***必須先啟動Tomcat服務再啟動Apache服務!***
參考文檔:
[url]http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html[/url]
[url]http://tomcat.apache.org/tomcat-6.0-doc/balancer-howto.html[/url]
[url]http://man.chinaunix.net/newsoft/ApacheMenual_CN_2.2new/mod/mod_proxy.html[/url]
[url]http://man.chinaunix.net/newsoft/ApacheMenual_CN_2.2new/mod/mod_proxy_balancer.html[/url]
㈡ 如何在linux伺服器上部署多個tomcat服務
我到apache官網上下載了個linux下的tomcat7,然後復制到linux伺服器上了,解壓安裝(參照的CSDN博客,請自行查看下),如果java沒有安裝,請自行安裝,接著測試tomcat是否能夠啟動,如果能夠啟動則把一個項目的war包拷入到該tomcat的webapps下面,刪除ROOT文件夾,然後進入bin目錄,輸入./startup.sh,進行開啟tomcat,我用的是wcp.war包,開啟時間需要看項目大小。一般情況下,是需要將tomcat關閉之後(./shutdown.sh),再重新啟動tomcat,但是有時關閉tomcat並不能完全關閉它,這樣會佔用埠號,所以我們使用:ps -ef | grep tomcat,來查看tomcat的打開情況,使用:kill - 9 編號,來關閉tomcat。然後,重啟該tomcat就可以了,此時就可訪問:伺服器地址:+埠號+/項目名,來訪問這個項目的服務了。
㈢ linux怎麼配置tomcat伺服器
1、安裝tomcat
1)、下載tomcat
從官網下載tomcat,保存在/home目錄下。
root@ubuntu:/home/ubuntu/Downloads# cp apache-tomcat-6.0.20.tar.gz /home
2)、安裝tomcat
tar -zxvf apache-tomcat-6.0.20.tar.gz
另一種方案:使用Windows下tomcat,Windows tomcat在linux中同樣可以使用。
2、操作tomcat
tomcat是隨機啟動的,所以在開啟伺服器的時候要手動開啟tomcat,不然沒法訪問(網上說可以設置隨著伺服器開啟而開啟,有興趣的朋友可以去嘗試下,嘎嘎~~)
1)、查看tomcat(我的tomcat放在/home目錄下)
root@ubuntu:~# cd /home
root@ubuntu:/home# ls
apache-tomcat-6.0.18 jdk-6u30-linux-i586.bin mytask.sh web.war
jdk1.6.0_30 ljq ubuntu
root@ubuntu:/home# cd apache-tomcat-6.0.18/
root@ubuntu:/home/apache-tomcat-6.0.18# ls
bin lib logs RELEASE-NOTES temp work
conf LICENSE NOTICE RUNNING.txt webapps
tomcat目錄解析:
bin:存放啟動和關閉Tomcat的可執行腳本。
conf:Tomcat的配置文件,如server.xml(Tomcat伺服器配置文件)和web.xml(被所有webapps共享的配置文件),密碼忘了看 tomcat-users.xml。
webapps:存放web applications,用戶自己需要部署的應用程序也放到此目錄。
work:tomcat運行時生成的臨時文件,包括jsp編譯後產生的class文件等。
logs:存放日誌文件。
temp:JVM用於存放臨時文件的目錄(java.io.tmpdir)。
root@ubuntu:/home/apache-tomcat-6.0.18/bin# ./startup.sh //啟動tomcat
root@ubuntu:/home/apache-tomcat-6.0.18/bin# ./shutdown.sh //關閉tomcat
root@ubuntu:/home/apache-tomcat-6.0.18/logs# tail -f catalina.out //查看tomcat日誌(-f表示會不斷列印新的日誌出來)
Linux下顯示tomcat控制台
$TOMCAT_HOME為tomcat安裝目錄。在linux如果按$TOMCAT_HOME/bin/startup.sh來起動tomcat則得不到像windows一樣的控制台效果,查看日誌很不方便.是不是linux下沒有像windows下一樣的控制台呢,不是的,只是大家都習慣這樣來啟動它。在LINUX下如何使啟動TOMCAT後像WINDOWS一樣呢?,解決辦法如下:
root@ubuntu:/home/apache-tomcat-6.0.18/bin# ./catalina.sh run
ctrl+c: 可結束日誌列印,但不影響正常應用的運行。
top -c:類似windows的任務管理器。
查看java的進程:ps -ef |grep java
殺死對應id進程:kill -9 pid //-9即force
kill pid: 殺死進程,pid從top -c執行得到(pid為進程編號),注意運行前記得在核對一遍進程編號。
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟體、應用程序和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。
Linux操作系統誕生於1991 年10 月5 日(這是第一次正式向外公布時間)。Linux存在著許多不同的Linux版本,但它們都使用了Linux內核。Linux可安裝在各種計算機硬體設備中,比如手機、平板電腦、路由器、視頻游戲控制台、台式計算機、大型機和超級計算機。
嚴格來講,Linux這個詞本身只表示Linux內核,但實際上人們已經習慣了用Linux來形容整個基於Linux內核,並且使用GNU 工程各種工具和資料庫的操作系統。