兩臺機器上做apache + tomcat 的負載均衡

以前整理的一篇文章,試驗成功的
所需軟件
apache-tomcat-5.5.23.tar.gz
jdk-1_5_0_11-linux-i586-rpm.bin
tomcat-connectors-1.2.20-src.tar.gz
httpd-2.2.4.tar.gz

在兩臺機器上做apache + tomcat 的負載均衡  計算機s1(192.168.1.10) 和s2 (192.168.1.15)
在s1上安裝apache + jdk + tomcat + tomcat-connectors  在s2上安裝  jdk + tomcat
s1做均衡並提供服務。s1上apache網頁文件目錄和tomcat網頁文件目錄要指向同一個目錄

在s1機器中的操作


A 安裝JDK

# cd /usr/local/
# chmod a+x jdk-1_5_0_11-linux-i586-rpm.bin
# ./jdk-1.5.0_04-linux-i586-rpm.bin
# cd /usr/java/




安裝Tomcat



# cd /usr/local/
# tar xvfz apache-tomcat-5.5.23.tar.gz
# cd apache-tomcat-5.5.23
#mkdir /usr/local/tomcat
#cp -rp apache-tomcat-5.5.23/* /usr/local/tomcat/
#cd /usr/local/tomcat/bin
#./startup.sh


在/etc/profile最後面添加

JAVA_HOME=/usr/java/jdk1.5.0_11
CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
CATALINA_HOME=/usr/local/tomcat
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC JAVA_HOME CLASSPATH CATALINA_BASE CATALINA_HOME

# vi /etc/profile      
重啓機器





安裝Apache
# cd /usr/local/
# tar xvfz httpd-2.0.54.tar.gz
# cd httpd-2.0.54
#./configure --prefix=/usr/local/apache --enable-module=so
# make
# make install
# vi /usr/local/apache/conf/httpd.conf




#Load mod_jk                                          #指定加載模塊,指定配置文件
LoadModule jk_module        modules/mod_jk.so
#Configure mod_jk
JkWorkersFile conf/workers.properties
JkLogLevel info


NameVirtualHost 192.168.1.10   #添加虛擬主機


<VirtualHost 192.168.1.10>
      ServerName [url]www.test.com[/url]
      DocumentRoot /var/www/sobu
      ServerAdmin [email][email protected][/email]
      JkMountFile conf/uriworkermap.properties
</VirtualHost>


<Directory "/var/www/sobu">                    #給虛擬主機目錄付權限
   
        Options Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
</Directory>


<IfModule dir_module>
    DirectoryIndex index.html,index.jsp   #添加索引文件
</IfModule>



安裝JK
#tar zxvf tomcat-connectors-1.2.20-src.tar.gz
#cd tomcat-connectors-1.2.20-src
#cd native/
#ls
#./buildconf.sh
#./configure --with-apxs=/usr/local/apache/bin/apxs
#make
#make install




在s1裏設置兩個文件/usr/local/apache/conf/uriworkermap.properties
#vi /usr/local/apache/conf/uriworkermap.properties
/*=DLOG4J
#/jkstatus=status    #設置除以下類型的文件外,都由tomcat提供服務(也就是說下面列出的格式都有apache提供服務)

!/*.gif=DLOG4J
!/*.jpg=DLOG4J
!/*.png=DLOG4J
!/*.css=DLOG4J
!/*.js=DLOG4J
!/*.htm=DLOG4J
!/*.html=DLOG4J


#vi /usr/local/apache/conf/workers.properties

worker.list=DLOG4J
# localhost server 1
# -----------------------
worker.s1.port=8009
worker.s1.host=192.168.1.10
worker.s1.type=ajp13
worker.s1.lbfactor=1
# localhost server 2
# -----------------------
worker.s2.port=8009
worker.s2.host=192.168.1.15
worker.s2.type=ajp13
worker.s2.lbfactor=1
#worker.s2.stopped=1

worker.DLOG4J.type=lb
worker.retries=3
worker.DLOG4J.balance_workers=s1,s2
worker.DLOG4J.sticky_session=true     #設置會話粘貼
worker.DLOG4J.sticky_session_force=false
#worker.status.type=status




然後在s1的tomcat配置文件裏設置
#vi /usr/local/tomcat/conf/server.xml
找到
<Engine name="Catalina" defaultHost="localhost" jvmRoute="s1">
將jvmRoute="s1"

在s2的tomcat配置文件裏設置




在s2機器中的操作:

安裝JDK

# cd /usr/local/
# chmod a+x jdk-1_5_0_11-linux-i586-rpm.bin
# ./jdk-1.5.0_04-linux-i586-rpm.bin
# cd /usr/java/

安裝Tomcat



# cd /usr/local/
# tar xvfz apache-tomcat-5.5.23.tar.gz
# cd apache-tomcat-5.5.23
#mkdir /usr/local/tomcat
#cp -rp apache-tomcat-5.5.23/* /usr/local/tomcat/
#cd /usr/local/tomcat/bin
#./startup.sh
在/etc/profile最後面添加

JAVA_HOME=/usr/java/jdk1.5.0_11
CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
CATALINA_HOME=/usr/local/tomcat
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC JAVA_HOME CLASSPATH CATALINA_BASE CATALINA_HOME



在s2的tomcat配置文件裏設置


找到
<Engine name="Catalina" defaultHost="localhost" jvmRoute="s2">
將jvmRoute="s2"


測試


修改s1和s2中的tomcat的網頁目錄
將s1上apache網頁文件目錄和tomcat網頁文件目錄要指向同一個目錄,本例中爲/var/www/sobu
在/usr/local/tomcat/conf/server.xml找到Host name項將 appBase改成網頁文件的路徑

<Host name="localhost" appBase="/var/www/"

然後在在文件的尾部添加 <Context docBase="sobu" path="/" crossContext="true"/>

如下位置:
      
   <Context docBase="sobu" path="/" crossContext="true"/>

      </Host>

    </Engine>

  </Service>

</Server>

注意:sobu是個文件夾,裏面有基本文件夾WEB-INF(既/usr/local/tomcat/webapps/ROOT/WEB-INF)、index.jsp 、index.html
index.jsp 和index.html內容自己定義就好

WEB-INF文件即/usr/local/tomcat/webapps/ROOT/WEB-INF ,但要將裏面的web.xml文件尾部的
<servlet>
        <servlet-name>org.apache.jsp.index_jsp</servlet-name>
        <servlet-class>org.apache.jsp.index_jsp</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>org.apache.jsp.index_jsp</servlet-name>
        <url-pattern>/index.jsp</url-pattern>
    </servlet-mapping>
註釋掉或者刪除


如不想指定新的網頁文件位置則可修改/usr/local/tomcat/webapps/ROOT/WEB-INF/web.xml將尾部的

servlet>
        <servlet-name>org.apache.jsp.index_jsp</servlet-name>
        <servlet-class>org.apache.jsp.index_jsp</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>org.apache.jsp.index_jsp</servlet-name>
        <url-pattern>/index.jsp</url-pattern>
    </servlet-mapping>
註釋掉或者刪除
然後在修改/usr/local/tomcat/webapps/ROOT/index.jsp
內容,一方便辨認,我們通過web訪問的到底是那臺計算機
完成上面的後將s1的apache 和tomcat 啓動,將s2的tomcat啓動
測試:
訪問[url]http://192.168.1.10:8080[/url]
    [url]http://192.168.1.15:8080[/url]
如果訪沒有問題說明兩機器的tomcat 正常了
然後訪問用兩臺機器分別訪問
[url]http://192.168.1.10[/url]
如果正常將看到訪問到的是兩臺不同的機器。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章