Apahce+Tomcat服务器整合及配置管理

news/2024/7/11 2:50:17 标签: 配置管理, Tomcat, 浏览器, Apache, IIS
软件要求:
Apache服务器
apache_2.0.58-win32-x86-no_ssl.msi
Tomcat服务器
jakarta-tomcat-5.0.28.exe
连接器
mod_jk-apache-2.0.58.so

Apache是当前最流行的WEB服务器,用于处理静态页面的效率很高。Tomcat是当前比较流行的基于Java平台的WEB服务器,长处是处理动态的交换页面。两者整合后可以很好的处理动态页面和静态的页面,以平衡服务器的负载。
整合的第一步是要准备好相应的软件和开发环境。JAVA开发环境是基本的要求,这里不多说了。TomcatApache服务器软件这也是要的。连接器是最重要的,也是最不好找的,可以在Tomcat的官方网站上面找到,而且要注意的是版本要和Apache的版本一致。而且在官方网站上看到说以后不支持改连接器了。
有了这三样东西就可以开始做整合了。首先安装Apache,它会提示要你输入域名和服务器名,瞎填一个搪塞它就够了。邮件地址也要填写,Apache做的很简单,一个@就打发它了:)。服务器端口设置为80,前提是你没有开IIS,开了IIS的话关掉IIS,因为IIS占用了80端口。
接下来是安装Tomcat的,服务器端口设置为88。TomcatApache最好安装在一起,免得修改的时候麻烦。安装没有什么巧的一般安装就够了。
都安装好了现在可以开始做整合了。
1.把连接器下载后拷贝到Apache的modules目录下,并且记下名字为mod_jk_2.0.58.so
2.下面开始修改服务器的配置文件。Tomcat的服务器的配置信息在conf文件夹下面。在最后的</HOST>前面加一句<Context path="" docBase="D:\www" debug="0" /> 把Tomcat的目录改到D:\www
这个也可以换到其他的地方,但是一定要和Apache的目录一致,我这样配置是为了方便管理。Apache的配置也是在conf目录下,打开httpd.conf,用记事本打开。找到注释中的DocumentRoot,向下看就可以看到Apache的默认路径了,改成DocumentRoot "D:/www"。
在注释中找到这样一句话#This should be changed to whatever you set DocumentRoot to.看E文就知道要改了。把下面的改成<Directory "D:/">。两个路径都配置好了,配置好了你可以分别开一下服务器,看是否是工作正常。对应的目录都在D:\www下了,建立一个静态的WEB页面跑下,然后建立一个JSP的页面跑下。JSP 的页面怎么建立不用我教把WEB-INF这东西少不了的。
3.修改Apache的httpd.conf文件。在最后加上:
#设置ApacheTomcat之间的连接,让Apache遇到jsp文件时,在后台将其交由Tomcat去处理
LoadModule jk_module modules/mod_jk_2.0.58.so
#此处mod_jk的文件为你下载的文件
JkWorkersFile "C:/Program Files/Apache Group/Tomcat 5.0/conf/workers.properties"
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
#后面的是注释加不加都无所谓的。你注意到没有我配置文件里面有C:/Program Files/Apache Group/Tomcat 5.0/conf/workers.properties
5.明摆的一句话,Tomcat的conf目录下面要有这么个文件workers.properties。建一个把,用记事本写文件的内容是
workers.tomcat_home=C:\Program Files\Apache Group\Tomcat 5.0
workers.java_home=C:\j2sdk1.4.2
ps=\
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1
workers.tomcat_home=C:\Program Files\Apache Group\Tomcat 5.0是我的Tomcat的安装目录。workers.java_home=C:\j2sdk1.4.2是我的机器的JAVA的安装目录。
6.整合成功拉!

Apahce+Tomcat服务器安全配置
成功整合,但是这是不够的,现在刚刚整合的系统有不少的漏洞,下面一步一步介绍如何做安全的配置。
ApacheTomcat的强就强在这里,配置命令很多。大都在httpd.conf这个文件下面配置。打开看看就是拉。
现在介绍最基本的配置:
注释掉: Options Indexes FollowSymLinks None
在UserDir 后面加上
UserDir public_html
# 为防止在UserDir指令上的漏洞,对root用户设置
# 象“./”这样的UserDir是非常有用的。
# 如果你使用Apache 1.3或以上版本,我们强烈建议你
# 在你的服务器配置文件中包含下面的行
UserDir disabled root
系统出错时会出现不友好的界面,我们可以单独配置每个出错的界面
找到这么一句
# ErrorDocument 506 /error/HTTP_VARIANT_ALSO_V
ARIES.html.var
这是被注释掉的错误页面的配置方法,也是默认的方法
我加了不少的错误页面的配置
ErrorDocument 400 /error.html
ErrorDocument 401 /error.html
ErrorDocument 403 /error.html
ErrorDocument 404 /error.html
ErrorDocument 405 /error.html
ErrorDocument 408 /error.html
ErrorDocument 410 /error.html
ErrorDocument 411 /error.html
ErrorDocument 412 /error.html
ErrorDocument 413 /error.html
ErrorDocument 414 /error.html
ErrorDocument 415 /error.html
ErrorDocument 500 /error.html
ErrorDocument 501 /error.html
ErrorDocument 502 /error.html
ErrorDocument 503 /error.html
ErrorDocument 506 /error.html
这样有错就都会转到error.html页面。这个页面可以自己写,就放在你的WWW目录下面。特别要提起注意的是这个error.html页面如果要正常显示的话必须要大于512字节,这是WINDOWS的浏览器决定的。如果小于的话WINDOWS会采用自己的报错方式。
查找ServerSignature,它默认为ON改为ServerSignature Off 。大致对Apache的配置就完成了。
但是这只是对Apache的配置,在处理动态的页面时需要对Tomcat进行配置,在做整合的时候不是提到过
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
表示对所有的以jsp结尾的或者是servlet目录下的一律转发Tomcat处理。Tomcat有时候也会报错误,所以要对其进行配置。
错误页面要处理需要对其进行专门的配置在其web.xml文件的后面加上:
<error-page>
<error-code>404</error-code>
<location>/error/404.htm</location>
</error-page>
<error-page>
<error-code>400</error-code>
<location>/error/400.htm</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error/500.htm</location>
</error-page>
<error-page>
<error-code>503</error-code>
<location>/error/503.htm</location>
</error-page>
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/error/500.htm</location>
</error-page>
<error-page>
<exception-type>java.lang.NullPointerException</exception-type>
<location>/error/500.htm</location>
</error-page>
当然是要在</web-app>之前加拉,看好地方别加到其他的标签中间拉。错误页面的位置是放在WWW目录下的error目录下。错误的页面扩展名拉htm不是html。


http://www.niftyadmin.cn/n/602745.html

相关文章

让JTextField添加“自动完成”功能

2019独角兽企业重金招聘Python工程师标准>>> 在越来越重视“用户体验”的今天&#xff0c;一个简单的文本框也演进的越来越智能了。比如Google的搜索&#xff0c;当我们输入搜索关键字的过程中&#xff0c;文本框就会动态的下拉列出最常输入的近似文字&#xff0c;以…

java和安卓的主线程的区别_java多线程和android平台下的多线程

一、多线程的概念多线程即是进程的多个执行路径&#xff0c;但并不能理解为这几个路径是同时执行的。在单cpu下应该是根据优先级调度法则轮流给这些个线程的执行时间片。二、Java中的多线程1)、如何创建一个线程两种方式&#xff0c;实现Runnable接口和继承Thread类。一般建议使…

spring应用示例

spring中对hibernate的支持是非常强大的&#xff0c;从一个简单的例子就看得出来&#xff0c;从这个例子中我们还将对所谓的轻量级容器做一些讨论。首先需要配置数据源&#xff0c;通常我们有两种方式获得Connection&#xff0c;一是自己编写代码获得连接&#xff0c;二是从JND…

TWaver3D特效系列之环境映射

2019独角兽企业重金招聘Python工程师标准>>> 随着TWaver3D的快速发展&#xff0c;越来越多的各种功能都在不断加强&#xff0c;包括性能的极大提升&#xff08;可以参考这里&#xff09;,3D编辑器的易用性和功能持续增强(欢迎大家申请试用),各种特效的增加&#xff…

SQL条件判断语句

第一种&#xff1a; SELECTCASE WHEN price IS NULL THEN Not yet pricedWHEN price < 10 THEN Very Reasonable TitleWHEN price > 10 and price < 20 THEN Coffee Table TitleELSE Expensive book!END AS "Price Category",CONVERT(varchar(20), title) …

判断java_JAVA判断

1)if语句if语句包含一个条件&#xff0c;后面是语句或一组语句&#xff0c;如下所示&#xff1a;if(条件判断表达式){执行语句}这些语句只有在给定条件判断为true(真)时才会执行。如果条件为false(假)&#xff0c;则if语句正文中的语句将被完全忽略。条件表达式的结果一定是tru…

Apache中多任务并发处理机制研究

1 多进程并发处理概述1.1概述第五章中我们讨论Apache主程序的时候&#xff0c;当主程序调用了函数ap_mpm_run之后&#xff0c;整个主程序就算结束了。那么函数进入到ap_mpm_run之后它干什么去了呢&#xff1f;如果让我们来写服务器程序的话&#xff0c;按照正常的思路&#xff…

php -- 超级全局变量

PHP 超级全局变量 超级全局变量在PHP 4.1.0之后被启用, 是PHP系统中自带的变量&#xff0c;在一个脚本的全部作用域中都可用。 PHP 超级全局变量 PHP中预定义了几个超级全局变量&#xff08;superglobals&#xff09; &#xff0c;这意味着它们在一个脚本的全部作用域中都可用。…