> UserDir public_html
UserDir用于设定用户个人主页存放的目录,默认为“public_html”目录,例如有个用户为ixdba,如果他的根目录为/home/ixdba,那么他的默认主页存放路径为/home/ixdba/public_html。
AccessFileName .htaccess
定义每个用户目录下的访问控制文件的文件名,默认为.htaccess,
TypesConfig conf/mime.types
TypesConfig用来定义在哪里查询mime.types文件
HostnameLookups Off
用来指定apache在日志中记录访问端地址是ip还是域名,如果为Off,则记录IP地址,如果是On,记录域名信息,建议设置为Off。
ErrorLog logs/error_log
指定错误日志文件的位置
CustomLog logs/access_log common
指定apache访问日志文件的位置和记录日志的模式。
ServerTokens Full
这个指令定义包含在HTTP回应头中的信息类型,默认为“Full”,表示在回应头中将包含操作系统类型和编译信息,可以设为Full|OS|Minor|Minimal|Major|Prod列各值中的一个,Full包含的信息最多,而Prod最少。
ServerSignature On
此指令有3个选项,On、Off和Email,On选项表示在apache的出错页面会显示apache版本以及加载的模块信息,Email选项与On相同,但是还会多出一个包含管理员邮件地址的mailto连接。Off表示不显示任何上面信息。
Alias /icons/ "/usr/local/apache2/icons/"
<Directory "/usr/local/apache2/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
上面这段信息是apache中对别名的设定,当访问http://ip或域名/icons时,由于Alias的原因,apache不会去DocumentRoot指定的目录查找文件,而是直接访问/usr/local/apache2/icons 目录下对应的文件信息。而<Directory>标签就是对这个目录权限的设定。
ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"
<Directory "/usr/local/apache2/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
这段信息和上面的Alias设定类似,只不过这个是设置cgi脚本的执行权限而已,apache默认在/usr/local/apache2/cgi-bin目录下具有cgi脚本执行权限。
JkWorkersFile /usr/local/apache2/conf/workers.properties
JkMountFile /usr/local/apache2/conf/uriworkermap.properties
JkLogFile /usr/local/apache2/logs/mod_jk.log
JkLogLevel info
JkLogStampformat "[%a %b %d %H:%M:%S %Y]"
上面这5行是对JK连接器属性的设定,第一、二行指定Tomcat workers配置文件以及对网页的过滤规则,第三行指定JK模块的日志输出文件,第四行指定日志输出级别,最后一行指定日志输出格式。
虚拟主机的设定
NameVirtualHost *
表示启用虚拟主机,如果开启虚拟主机,上面DocumentRoot指令指定的配置将失效,以虚拟主机中指定的DocumentRoot为主。
<VirtualHost *>
ServerAdmin webmaster@ixdba.net
DocumentRoot /webdata/www
ServerName 192.168.60.198
ErrorLog logs/error_log
CustomLog logs/access_log common
JkMountFile conf/uriworkermap.properties
</VirtualHost>
上面这段是添加一个虚拟主机,其实虚拟主机是通过不同的ServerName 来区分的,这里为了演示方便,使用IP代替域名。我们经常看到在一个web服务器上有很多个网站,并且每个站点都不相同,这就是通过虚拟主机技术实现的。
每个虚拟主机用<VirtualHost>标签设定,各个字段含义如下:
ServerAdmin:表示虚拟主机的管理员邮件地址。
DocumentRoot:指定虚拟主机站点文件路径。
ServerName:虚拟主机的站点域名
ErrorLog:指定虚拟主机站点错误日志输出文件。
CustomLog:指定虚拟主机站点访问日志输出文件。
JkMountFile:指定对此虚拟主机的URL映射文件。
例如,我们要在一个服务器上建立3个网站,只需配置下面3个虚拟主机即可:
<VirtualHost *:80>
ServerAdmin webmaster_www@ixdba.net
DocumentRoot /webdata/html
ServerName www.ixdba.net
ErrorLog logs/www.error_log
CustomLog logs/www.access_log common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster_bbs@ixdba.net
DocumentRoot /webdata/bbs
ServerName bbs.ixdba.net
ErrorLog logs/bbs.error_log
CustomLog logs/bbs.access_log common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster_mail@ixdba.net
DocumentRoot /webdata/mail
ServerName mail.ixdba.net
ErrorLog logs/mail.error_log
CustomLog logs/mail.access_log common
</VirtualHost>
这样,就建立了3个虚拟主机,对应的站点域名分别是www.ixdba.net、bbs.ixdba.net、mail.ixdba.net,接下来的工作就是将这3个站点域名对应的IP全部解析到一台web服务器即可。
3.Tomcat的配置
(1)tomcat的目录机构
在上面的操作中,Tomcat安装在了/usr/local/tomcat5.5.12下,tomcat每个目录的含义如表8.2所示:
表8.1
目录名称 目录作用
bin 存放各种平台下启动和关闭Tomcat的脚本文件
comm 存在Tomcat服务器及所有的web应用程序可以访问的JAR文件
conf 存放Tomcat的各种配置文件,最重要的是 server.xml和web.xml
logs 存放Tomcat日志文件
server 此目录又包含lib和webapps 2个主要目录,webapps存放Tomcat自带的两个WEB应用admin应用和manager应用,lib存放Tomcat服务器所需的各种JAR文件
shared 此目录又包含lib目录,lib目录主要存放所有web应用都可以访问的jar文件(但是不能被Tomcat服务器访问)
webapps Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录
work 存放JSP编译后产生的class文件
(2)server.xml的配置
server.xml是tomcat的核心配置文件,为了支持与apache的整合,在tomcat中也需要配置虚拟主机,server.xml是一个有标签组成的文本文件,找到默认的<Host>标签,在此标签结尾,也就是</Host>后面增加如下虚拟主机配置:
<Host name="192.168.60.198" debug="0" appBase="/webdata/www" unpackWARs="true">
<Context path="" docBase="" debug="1"/>
</Host>
其中:
l name:指定虚拟主机名字,这里为了演示方便,用IP代替。
l debug:指定日志输出级别
l appBase:存放Web应用程序的基本目录,可以是绝对路径或相对于$CATALINA_HOME的目录,默认是$CATALINA_HOME/webapps。
l unpackWARs:如果为true,则tomcat会自动将WAR文件解压后运行,否则不解压而直接从WAR文件中运行应用程序。
l autoDeploy:如果为true,表示Tomcat启动时会自动发布appBase目录下所有的Web应用(包括新加入的Web应用)
l path:表示此Web应用程序的url入口,如为“/jsp”,则请求的URL为http://localhost/jsp/
l docBase:指定此Web应用的绝对或相对路径,也可以为WAR文件的路径。
这样tomcat的虚拟主机就创建完成了。
注意:tomcat的虚拟主机一定要和apache配置的虚拟主机指向同一个目录,这里统一指向到/webdata/www目录下,所以接下来只需在/webdata/www中放置jsp程序即可。
在server.xml中,还需要注意的几个标签有:
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />
这是tomcat对http访问协议的设定,http默认的监听端口为8080,在apache和tomcat整合的配置中,是不需要开启tomcat的http监听的,为了安全期间,建议注释掉此标签,关闭http默认的监听端口。
<Connector port="8009"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
上面这段是tomcat对ajp13协议的设定,ajp13协议默认的监听端口为8009,整合apache和tomcat必须启用该协议,JK模块就是通过ajp协议实现apache和tomcat协调工作的。
(3)配置tomcat启动脚本
Tomcat的bin目录主要存放各种平台下启动和关闭tomcat的脚本文件,在linux下主要有catalina.sh、startup.sh和shutdown.sh 3个脚本,而startup.sh和shutdown.sh其实都用不同的参数调用了catalina.sh脚本。
Tomcat在启动的时候会去查找jdk的安装路径,因此,我们需要配置系统环境变量,这里详细讲述下linux下环境变量的设定。
l /etc/profile:是配置系统全局环境变量,系统中所有应用都可以使用这个环境变量。
l ~/.bash_profile:是用户环境变量,每个用户可以通过配置这个文件而设定不同的环境变量。
针对java环境变量的设置,可以在/etc/profile中指定JAVA_HOME,也可以在启动tomcat的用户环境变量.bash_profile中指定JAVA_HOME,这里我们在catalina.sh脚本中指定java环境变量,编辑catalina.sh文件,添加如下内容:
# OS specific support. $var _must_ be set to either true or false.
JAVA_HOME=/usr/local/jdk1.6.0_07
export JAVA_HOME
cygwin=false
os400=false
上面加粗部分是新加内容,其它为catalina.sh文件原有内容。通过JAVA_HOME指定了JDK的安装路径,然后通过export设置生效。
4.测试apache与tomcat整合
到这里为止,apache与tomcat整合配置已经完毕了,接下来我们通过添加jsp程序来测试整合的结果,看是否达到了预期的效果。
这里我们将/usr/local/tomcat5.5.12/webapps/ROOT/目录下的所有文件拷贝到/webdata/www下,然后启动tomcat与apache服务,执行步骤如下:
[root@localhost~]#cp –r /usr/local/tomcat5.5.12/webapps/ROOT/* /webdata/www
[root@localhost ~]# /usr/local/tomcat5.5.12/bin/startup.sh
[root@localhost ~]# /usr/local/apache2/bin/apachectl start
启动服务完毕,就可以访问站点了,输入http://192.168.60.198,如果能访问到tomcat默认的jsp页面,表示tomcat解析成功,接着,在/webdata/www下建立一个test.html的静态页面,内容如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Administration</title>
</head>
<body>
apache and tomcat sussessful,
This is html pages!
</body>
</html>
通过访问http://192.168.60.198/test.html,应该出现:
apache and tomcat sussessful ,This is html pages!
则表示静态页面也可以正确解析。
由于tomcat也能处理静态的页面和图片等资源文件,那么如何才能确定这些静态资源文件都是由apache处理了呢,知道这个很重要,因为做apache和tomcat集成的主要原因就是为了实现动、静资源分离处理。
亿恩科技地址(ADD):郑州市黄河路129号天一大厦608室 邮编(ZIP):450008 传真(FAX):0371-60123888
联系:亿恩小凡
QQ:89317007
电话:0371-63322206 本文出自:亿恩科技【www.enkj.com】
服务器租用/服务器托管中国五强!虚拟主机域名注册顶级提供商!15年品质保障!--亿恩科技[ENKJ.COM]
|