Apache2 + Tomcat5.0 + J2SDK1.4.2 + JK2 整合建立虚拟主机

上一篇 / 下一篇  2006-08-06 11:38:33 / 天气: 阴雨 / 心情: 平静 / 个人分类:技术文档

一、准备软件
============
Tomcat (http://www.apache.org)
J2SDK  (http://java.sun.com/j2se)
jk2    (http://www.apache.org)

 

二、配置环境
============
1. 安装J2SDK
------------
# chmod 755 j2sdk-1_4_2_*-linux-i586-rpm.bin
# ./j2sdk-1_4_2_*-linux-i586-rpm.bin
# rpm -ivh j2sdk-1_4_2_*-fcs-linux-i586.rpm
# ln –s /usr/java/j2sdk1.4.2_* /usr/local/sdk

2. 配置系统环境变量
-------------------
# vi /etc/profile.d/java.sh
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#!/bin/bash
export JAVA_HOME=/usr/local/sdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/lib
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# chmod 755 /etc/profile.d/java.sh
# /etc/profile.d/java.sh

3. 确认J2SDK环境
----------------
# which java
/usr/local/sdk/bin/java

 

三、安装配置Tomcat
==================
1. 安装Tomcat
-------------
# tar xzvf jakarta-tomcat-5.0.*.tar.gz
# cp -r jakarta-tomcat-5.0.* /usr/local/tomcat

2. 启动Tomcat
-------------
# groupadd tomcat
# useradd -g tomcat -c "Tomcat User" -d /usr/local/tomcat tomcat
# chown -R tomcat:tomcat /usr/local/tomcat
# chmod a+x /usr/local/tomcat
# /usr/local/tomcat/bin/startup.sh
# echo "/usr/local/tomcat/bin/startup.sh" >> /etc/rc.local
http://localhost:8080 测试是否安装正确。

3. 配置Tomcat监听来自Apache的ajp13请求
--------------------------------------
# vi /usr/local/tomcat/conf/server.xml
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<Server port="8005" shutdown="SHUTDOWN" debug="0">
<GlobalNamingResources>

########这部份全局配置文件,为了方便我就省略了######
########这部份在两个版里都不需要更改###########

</GlobalNamingResources>

Define the Tomcat Stand-Alone Service -->
<Service name="Catalina">
######中间省略了,这部份在两个版里也都不需要更改######

<!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 -->
    <Connector port="8080"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               debug="0" connectionTimeout="20000"
               disableUploadTimeout="true" />

#########省略中...................

<!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->
    <Connector port="8009"
               enableLookups="false" redirectPort="8443" debug="0"
               protocol="AJP/1.3" />
.................
    <!-- Define the top level container in our container hierarchy -->


##########从engine 开始定义默认主机了######## 
########defaulthost可指定任一主机

<Engine name="Catalina" defaultHost="nanu.8866.org" debug="0">

#########省略下面定义虚拟主机.....................

<!-- Define the default virtual host
           Note: XML Schema validation will not work with Xerces 2.2.
       -->

##########定义虚拟主机,更改host name为你的主机名#######
#########更改appBase为你主机对应的路径#############

<Host name="nanu.8866.org" debug="0" appBase="/www"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">

#########定义别名..................
 
<Alias>localhost</Alias>
<Alias>10.0.0.1</Alias>

#########..context path为空,docbase为空.###########

<Context path="" docBase="" debug="0" reloadable="true" crossContext="true">

########定义日志位置###########################

<logger className="org.apache.catalina.logger.FileLogger"
                 directory="logs"  prefix="main_log." suffix=".txt"
                 timestamp="true"/>

</Host>

#########定义第二个虚拟主机jsp.nanu.8866.org######### 

<Host name="blog.nanu.8866.org" debug="0"
       appBase="/www/jsp"
       unpackWARs="true" autoDeploy="true">

      <Context path="" docBase="" debug="0"/>

<logger className="org.apache.catalina.logger.FileLogger"
                 directory="logs"  prefix="jsp_log." suffix=".txt"
                 timestamp="true"/>
                                                                                                  
      </Host>

   <Host name="bbs.nanu.8866.org" debug="0"
appBase="/www/bbs"
       unpackWARs="true" autoDeploy="true">

      <Context path="" docBase="" debug="0"/>

<logger className="org.apache.catalina.logger.FileLogger"
                 directory="logs"  prefix="bbs_log." suffix=".txt"
                 timestamp="true"/>
                                                                               
   </Host>

</Engine> 

</Service>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

4. 测试
-------
重启Tomcat,并检查/usr/local/tomcat/logs/catalina.out文件,
直至Tomcat可以正确启动。如果启动中系统报告找不到apr可以试编辑: 
/usr/local/tomcat/conf/jk2.properties 并加入以下内容: 

# vi /usr/local/tomcat/conf/jk2.properties 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# list of needed handlers.
handler.list=channelSocket,request
# Override the default port for the channelSocket
channelSocket.port=8009
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
直至能够正常启动为止。

 

四、安装JK2及配置APACHE虚拟主机
===============================
1. 安装JK2
----------
# tar zxvf Jakarta-tomcat-connectors-jk2-src-current.tar.gz
# cp -r jakarta-tomcat-connectors-jk2-2.0.4-src /usr/local/jk2
# cd /usr/local/jk2/jk/native2
# ./buildconf.sh
# ./configure --with-apxs2=/usr/local/apache/bin/apxs --with-tomcat=/usr/local/tomcat
# make
# cd /usr/local/jk2/jk/build/jk2/apache2
# cp mod_jk2.so /usr/local/apache/modules/mod_jk2.so

2. 建立workers2.properties文件
------------------------------
# vi /usr/local/apache2/conf/workers2.properties
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# only at beginnin. In production uncomment it out
[logger.apache2]
level=DEBUG

[shm]
file=/usr/local/apache/logs/shm.file
size=1048576

# Example socket channel, override port and host.
[channel.socket:localhost:8009]
port=8009
host=127.0.0.1

# define the worker
[ajp13:localhost:8009]
channel=channel.socket:localhost:8009

# Uri mapping
[uri:127.0.0.1/*.jsp]
worker=ajp13:localhost:8009

[uri:10.0.0.1/*.jsp]
worker=ajp13:localhost:8009

[uri:nanu.8866.org/*.jsp]
worker=ajp13:localhost:8009

[uri:jsp.nanu.8866.org/*.jsp]
worker=ajp13:localhost:8009

[uri:bbs.nanu.8866.org/*.jsp]
worker=ajp13:localhost:8009
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# touch /usr/local/apache/logs/shm.file

3. 配置httpd.conf
-----------------
在Modules Section部分加入下面一行:

LoadModule jk2_module modules/mod_jk2.so

保存http.conf并重起apache。现在它将加载JK2连接器并从workers2.properties中读取配置文件。
检查日志并确认一切正常。

重新启动Tomcat,并在你的浏览器里试加载一个HTML页面Apache将返回一个没有问题的页。

现在试一试JSP页,它显示需要等待一段时间。如果返回一个错误,你须检查一下路径和主机名是否正确。
Tomcat和Apache都将读取你所设的主机目录。检查日志文件。
所有工作正常进行下一步。

4. 在httpd.conf中的JK指示
-------------------------
除workers2.properties文件名,你可以将JK指示加入httpd.conf文件。
在httpd.conf中编辑默认主机区域并在</VirtualHost>之前,加入下面三行: 
 
<Location "/*.jsp"> 
     JkUriSet worker ajp13:localhost:8009 
</Location>

 

附:httpd.conf部分改动

### Section 1: Global Environment

#####前面都省略了...

# Dynamic Shared Object (DSO) Support
##在动态模块区################这里加入mod_jk2.so

LoadModule jk2_module modules/mod_jk2.so

### Section 2: 'Main' server configuration
..........................
##########更改默认主机名#################

ServerName nanu.8866.org
UseCanonicalName Off

##############更改默认主机路径

DocumentRoot "/www"

#############加入默认首面index.jsp............... 

DirectoryIndex index.html index.jsp

#<Location /server-info> 
# SetHandler server-info 
# Order deny,allow 
# Deny from all 
# Allow from .example.com 
#</Location> 

###########在server-info后加上下面这段#####

<Location "/*.jsp">
    JkUriSet worker ajp13:localhost:8009
</Location>


### Section 3: Virtual Hosts
#############配置虚拟主机###########

NameVirtualHost *:80

<VirtualHost *:80>
   ServerName nanu.8866.org
    ServerAdmin webmaster@nanu.8866.org
    DocumentRoot /www
#####在默认虚拟主机未尾加入如下########
    <Location "/*.jsp">
        JkUriSet worker ajp13:localhost:8009
    </Location>
</VirtualHost> 

<VirtualHost *:80> 
    ServerName jsp.nanu.8866.org
    ServerAdmin webmaster@nanu.8866.org
    DocumentRoot /www/jsp
</VirtualHost>

<VirtualHost *:80> 
    ServerName bbs.nanu.8866.org
    ServerAdmin webmaster@nanu.8866.org
    DocumentRoot /www/bbs
</VirtualHost>


TAG: 技术文档

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

数据统计

  • 访问量: 14246
  • 日志数: 53
  • 图片数: 6
  • 文件数: 3
  • 建立时间: 2006-07-10
  • 更新时间: 2007-05-23

RSS订阅

Open Toolbar