- 浏览: 170789 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
龙碧云:
写的好
struts2 action 属性不写 get set -
异彩飞天:
请问连接字符串怎么写?
C#MysqlHelper -
winerdaxian:
...
ext form load -
zhanglufei2010:
问一下 为什么要把自己定义的放在最后面啊?
struts2 interceptor-stack -
oritenson:
很好!
S2SH所需jar包
转载http://lovemjd.blog.51cto.com/1373993/286094
本文对Apache和Tomcat服务器软件进行整合,并实现Tomcat多实例独立JVM的虚拟主机。 用虚拟主机方式为二级部门提供网站空间是一般学校的常见做法,这样既能节省服务器设备的投资又减少了管理工作量。Linux环境下,通常使用Apache实现静态HTML和动态PHP网站的虚拟主机,使用Tomcat实现JSP网站的虚拟主机。对于Apache虚拟主机,配合MySQL数据库的WEB管理工具PhpMyAdmin已经有了很成熟的实现;而对于Tomcat虚拟主机来说,当多个网站共享同一个Tomcat服务器实例时,若其中某个网站对Tomcat有一些特殊的需求,就需要服务器管理员对Tomcat进行配置,更多的时候,服务器管理员要经常重启Tomcat,程序不好的网站也可能导致Tomcat无法启动,从而影响其他网站也无法访问。另外一个问题是,同一台服务器上,单独的Apache和Tomcat服务程序端口不能冲突,要同时使用PHP和JSP,就需要使用不同的端口。 1 解决方案 为解决上述问题,本文对Apache与Tomcat进行整合,并实现Tomcat多实例独立JVM的虚拟主机(每个虚拟主机用户拥有独立可管理的Tomcat服务器),用Apache解释HTML和PHP等文件,Tomcat执行JSP程序,整合原理如图1所示。 图1中,Apache接受来自客户端的请求,并根据请求信息进行判断,若被请求的网站是JSP的,则由Apache的模块mod_jk将Servlet或JSP请求转发给Tomcat,mod_jk利用AJP worker通过AJP(Apache Jserv Protocol)协议与Tomcat进程通信,Tomcat检查来自AJP workers的请求,确定与请求相对应的虚拟主机,执行程序,并将执行结果通过AJP connector返回给mod_jk,最终由Apache将执行结果返回给客户端。 2 方案实现 2.1 基本系统安装准备 对所需软件进行准备和基本配置。 2.1.1 安装LAMP服务器软件 本文使用CentOS 5.3操作系统,Apache、Mysql、PHP采用源码方式安装(安装位置:/usr/local),软件版本分别是:Apache 2.2.11,Mysql 5.1.47,PHP 5.2.9。 2.1.2 安装tomcat服务器软件 1) 安装JDK(本文版本:1.6.0_17); 2) 安装Tomcat(本文版本:apache-tomcat-6.0.20),默认情况下Tomcat服务的端口为8080; 3) 在/etc/profile文件中配置JDK与Tomcat的环境变量如下: JAVA_HOME=/usr/local/jdk1.6.0_17 CLASSPATH=.:$JAVA_HOME/lib.tools.jar PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH CATALINA_HOME=/usr/local/apache-tomcat-6.0.20 BASEDIR=/usr/local/apache-tomcat-6.0.20 export CATALINA_HOME BASEDIR 确保上述软件正确运行,限于篇幅,软件的安装过程从略,可通过google搜索查阅。 2.1.3 下载Apache连接Tomcat的模块mod_jk 地址:http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.28/ 注意,要根据服务器的平台和Apache的版本下载相应的mod_jk.so文件,本文下载使用mod_jk-1.2.28-httpd-2.2.X.so文件。 2.2 Apache虚拟主机配置 2.2.1 配置DNS服务器,添加虚拟主机的域名 这里配置2个虚拟主机,域名分别是site1.lzptc.edu.cn和site2.lzptc.edu.cn,均指向这台服务器。 2.2.2 添加虚拟主机用户 添加虚拟主机用户,为用户设定家目录,如: useradd site1 -d /var/www/html/site1 passwd site1 以虚拟主机用户登陆服务器,在其家目录下建立conf、logs、temp、webapps/ROOT和work目录。 2.2.2 修改Apache配置文件httpd.conf,添加虚拟主机 虚拟主机site1.lzptc.edu.cn的配置如下: NameVirtualHost *:80 <VirtualHost *:80> DirectoryIndex index.html index.htm index.jsp index.php ServerName site1.lzptc.edu.cn # 虚拟主机用户程序位置 DocumentRoot /var/www/html/site1/webapps/ROOT ServerAdmin xxx@lzptc.edu.cn # Apache遇见下列文件后,转给Tomcat JkMount /*.jsp site1-worker JkMount /*.do site1-worker JkMount /servlet/* site1-worker # 目录访问权限设置 <Location “/var/www/html/site1/webapps/ROOT/WEB-INF/*”> Options Indexes FollowSymLinks AllowOverride None deny from all </Location> # 目录访问权限设置 <Location “/var/www/html/site1/webapps/ROOT/META-INF/*”> AllowOverride None deny from all </Location> </VirtualHost> 加入第二个虚拟主机site2.lzptc.edu.cn(用“site2”替换上边配置中的“site1”),更多的虚拟主机同理。 2.3 Apache与Tomcat整合,Tomcat多实例配置 2.3.1 安装配置mod_jk 1) 复制mod_jk-1.2.28-httpd-2.2.X.so文件到Apache的module目录; 2) 修改httpd.conf,添加mod_jk支持: # 添加mod_jk支持 LoadModule jk_module modules/mod_jk-1.2.28-httpd-2.2.X.so # mod_jk worker 配置文件workers.properties的位置:Apache的conf目录 JkWorkersFile conf/workers.properties # mod_jk 日志文件 JkLogFile logs/mod_jk.log JkLogLevel error # 日志时间格式 JkLogStampFormat “[%a %b %d %H:%M:%S:%Y]“ 2.3.2 在Apache的conf目录下建立mod_jk连接Tomcat的配置文件workers.properties: # 指定Tomcat和JDK的路径 workers.tomcat_home=/usr/local/apache-tomcat-6.0.20 workers.java_home=/usr/local/jdk1.6.0_17 ps=/ #—— DEFAULT worker list —————————————— worker.loadbalancer.type=lb worker.loadbalancer.balance_workers=ajp12, ajp13 worker.inprocess.type=jni worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)tomcat.jar worker.inprocess.cmd_line=start worker.inprocess.stdout=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stdout worker.inprocess.stderr=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stderr # 定义转发请求到不同Tomcat的worker列表,此处定义2个,分别对应虚拟主机site1 和site2 worker.list=site1-worker,site2-worker # 虚拟主机site1.lzptc.edu.cn的worker定义,端口8301随后在用户的server.xml定义 worker.site1-worker.port=8301 worker.site1-worker.host=site1.lzptc.edu.cn worker.site1-worker.type=ajp13 # 虚拟主机site2.lzptc.edu.cn的worker定义,端口8302随后在用户的server.xml定义 worker.site2-worker.port=8302 worker.site2-worker.host=site2.lzptc.edu.cn worker.site2-worker.type=ajp13 2.3.3 复制Tomcat的配置文件server.xml文件到每个虚拟主机用户的conf目录下,对每个用户的server.xml进行端口设定,注意,每个虚拟主机的Tomcat端口是独立的,虚拟主机site1.lzptc.edu.cn的配置文件如下,其中AJP/1.3协议的端口号为8301,这与workers.properties中site1-worker的端口号一致。同理可设定其他虚拟主机的server.xml文件。 <?xml version=’1.0′ encoding=’utf-8′?> <Server port=”8101″ shutdown=”SHUTDOWN”> …… <!—此处配置省略 –> <Service name=”Catalina”> <Connector port=”8201″ protocol=”HTTP/1.1″ connectionTimeout=”20000″ redirectPort=”8443″ /> <Connector port=”8301″ protocol=”AJP/1.3″ redirectPort=”8443″ /> …… <!—此处配置省略 –> </Service> </Server> 虚拟主机site2.lzptc.edu.cn的server.xml文件配置如下: <?xml version=’1.0′ encoding=’utf-8′?> <Server port=”8102″ shutdown=”SHUTDOWN”> …… <!—此处配置省略 –> <Service name=”Catalina”> <Connector port=”8202″ protocol=”HTTP/1.1″ connectionTimeout=”20000″ redirectPort=”8443″ /> <Connector port=”8302″ protocol=”AJP/1.3″ redirectPort=”8443″ /> …… <!—此处配置省略 –> </Service> </Server> 2.3.4 独立Tomcat的启动停止 1) 虚拟主机用户自行启动 每个虚拟主机用户启动独立的Tomcat,需要给它们设置独立Tomcat的CATALINA_BASE路径,这里将CATALINA_BASE的值设置为用户的家目录。为方便用户启动停止各自的Tomcat服务器,编写脚本tomcat.sh如下: #!/bin/bash # description: Start up the Tomcat servlet engine. # Source function library. . /etc/init.d/functions RETVAL=$? export CATALINA_BASE=”/var/www/html/site1″ # 用户的家目录,可修改 export CATALINA_HOME=”/usr/local/apache-tomcat-6.0.20″ case “$1″ in start) if [ -f $CATALINA_HOME/bin/startup.sh ]; then echo $”Starting Tomcat” $CATALINA_HOME/bin/startup.sh fi ;; stop) if [ -f $CATALINA_HOME/bin/shutdown.sh ]; then echo $”Stopping Tomcat” $CATALINA_HOME/bin/shutdown.sh fi ;; *) echo $”Usage: $0 {start|stop}” exit 1 ;; esac exit $RETVAL 将该脚本文件保存在虚拟主机用户的家目录下,添加执行权限,用户运行tomcat.sh start|stop命令即可启动/定制自己的Tomcat服务器。 2) 服务器管理员统一启动 当服务器重启后,需要服务器的管理员统一对各独立的Tomcat实例进行启动,编写脚本如下,可以将该脚本设置为开机启动。 #!/bin/bash CATALINA_HOME=”/usr/local/apache-tomcat-6.0.20” SITE_ROOT=”/var/www/html” # 所有的虚拟主机家目录都在此处 SITES=`ls ${SITE_ROOT}` for x in ${SITES} do CATALINA_BASE=${SITE_ROOT}/${x} echo “Starting server: ${x} with CATALINA_BASE=${CATALINA_BASE}” export CATALINA_BASE ${CATALINA_HOME}/bin/startup.sh done 2.4 为每个独立的JVM设定内存限制 增加Tomcat的环境变量JVM_OPTIONS,设置举例如下 JVM_OPTIONS=’-Xms32m –Xmx64m’ export JAVA_OPTS 其中“Xms32m –Xmx64m”表示该JVM的初始内存为32MB,设定该JVM能使用的最大内存为64MB。 3 总结 通过对Apache和Tomcat的整合,使客户端能够通过同一端口访问WEB服务器的PHP和JSP程序,并实现Tomcat多实例独立JVM的虚拟主机,方便虚拟主机用户对各自虚拟主机的控制,克服了单个Tomcat运行JSP程序时虚拟主机之间会产生影响的缺点。
发表评论
-
chattr -i
2013-08-18 17:35 12287、执行chattr #chattr -i /etc ... -
[error] client denied by server configuration
2012-11-12 17:48 961client denied by server config ... -
如何利用google,baidu进行站内搜索
2012-09-27 14:17 2093http://www.google.com/search?do ... -
CentOS自启动
2012-05-14 09:43 1394# /etc/profile #/etc/rc.d/rc.lo ... -
关于Context []startup failed due to previous errors有效解决方式
2011-11-23 22:04 1176log4j:WARN No appenders could b ... -
apahce 域名跳转
2011-10-19 14:34 808Options +FollowSymLinks Rewr ... -
apahce虚拟主机
2011-10-17 15:56 826NameVirtualHost *:80 <Virt ... -
tomcat connectors buildconf.sh
2011-10-11 17:41 1291rm autom4te.cache libtoolize - ... -
centos5.5 apache+php+mysql
2011-10-11 14:03 1069先执行find / -name httpd查看是否存在 rp ... -
Centos5.5 mysql
2011-10-10 16:41 856安装MySQL。 [root@sample ~]#yum ... -
Centos 防火墙设置
2011-10-09 13:30 12061、查看防火墙信息 /etc/init.d/ipt ... -
虚拟主机用户独享tomcat的配置详解
2011-09-29 17:52 955本文总结一下tomcat (v5.x)的虚拟主机配置方法,包括 ... -
tomcat 03下 服务
2011-09-22 15:09 659下载windows.zip版tomcat,找到service. ... -
Apache php Tomcat 环境最高效集成方式配置
2011-04-29 18:09 955http://www.quicku.cn/post-8.htm ... -
apache的tomcat负载均衡和集群配置
2011-04-28 18:55 792http://www.iteye.com/topic/6759 ... -
Tomcat IIS 整合 主要文件
2011-02-14 13:42 978reg文件 Windows Registry Editor V ... -
Tomcat 虚拟主机 多域名 绑定
2011-02-01 16:53 816<Host name="www.hello ... -
apache2.2 tomcat
2011-01-26 21:41 796http://callan.iteye.com/blog/73 ... -
mysql 开户远程用户
2010-08-05 15:41 929grant all PRIVILEGES on *.* to ...
相关推荐
标题 "ECLIPSE,TOMCAT,JVM内存设置" 涉及到的是在开发Java Web应用程序时,如何配置Eclipse集成开发环境(IDE)、Apache Tomcat服务器以及Java虚拟机(JVM)的内存参数,以优化性能和避免内存溢出等问题。...
总之,Apache Tomcat的配置是一个涉及多个层次和组件的过程,包括服务器、应用、日志以及与其他服务器的集成。理解这些配置文件和组件的工作原理,将有助于你更好地管理和维护你的Java Web应用。
在这个示例中,我们将在一个机器上配置一个Apache实例和四个Tomcat实例。 **Apache配置**: 1. **启用相关模块**:打开Apache的配置文件`httpd.conf`,取消对以下模块的注释,这些模块是Apache与Tomcat通信的关键:...
配置Tomcat涉及修改conf目录下的多个配置文件,如server.xml定义了服务器的端口、线程池、连接器和虚拟主机等;web.xml包含全局的Servlet和过滤器配置;context.xml用于配置特定的应用上下文。 管理方面,Tomcat...
对于高可用性和负载均衡,可以配置多个Tomcat实例并通过反向代理(如Nginx或HAProxy)进行负载均衡。更高级的配置可以通过Apache HTTP Server与Tomcat的mod_jk模块实现集群。 总之,Apache Tomcat 8.5.64是部署和...
Apache Tomcat是一个开源的软件应用服务器,主要用于部署和运行Java Servlet和JavaServer Pages(JSP)应用程序。在本文中,我们将深入探讨Apache Tomcat 8.5.16版本的相关知识点,包括其功能、安装与配置、管理以及...
1. **Clustering**:Tomcat 7支持集群配置,可以通过复制多个Tomcat实例并配置负载均衡,实现高可用性和故障转移。 2. **JMX监控**:通过JMX(Java Management Extensions),可以远程监控和管理Tomcat的状态和性能...
Apache Tomcat 7.0.68 是一个广泛使用的开源软件,它是一个实现了Java Servlet、JavaServer Pages(JSP)和Java EE的Web应用程序容器。这个版本是Tomcat 7系列的一个具体发行版,提供了对Java标准版7(Java SE 7)的...
6. **集群和负载均衡**:在高并发场景下,可以通过配置Tomcat集群,实现多个实例之间的session复制和负载均衡,提升系统的可用性和扩展性。 7. **与数据库的集成**:Tomcat可以与各种数据库通过JDBC进行连接,需要...
- 虚拟主机分为基于IP的虚拟主机和基于名称的虚拟主机。 2. **基于IP的虚拟主机**: - 每个域名分配一个唯一的IP地址,服务器根据接收到的IP地址来识别并服务相应的站点。 - 这种方式可能需要为每个站点配置额外...
- 也可以通过修改Tomcat的conf/server.xml文件来配置虚拟主机和上下文路径。 4. **JSP和Servlet** - JSP是用于创建动态网页的Java技术,它将HTML代码与Java代码分离,使得页面逻辑和表现逻辑分开。 - Servlet是...
1. **Apache基础**:讲解Apache服务器的基本配置和管理,包括虚拟主机的设置、URL重写规则的使用(如通过mod_rewrite模块)、模块的加载和配置,以及安全性设置,如SSL/TLS加密。 2. **Tomcat基础**:介绍Tomcat的...
Apache Tomcat 是一款开源的、基于Java Servlet和JavaServer Pages(JSP)技术的应用服务器,由Apache软件基金会开发和维护。这个"apache-tomcat-8.5.78.tar.gz"文件是一个针对Linux/Unix系统的归档压缩文件,包含了...
Apache Tomcat是一个开源的软件应用服务器,主要用于运行Java Servlet和JavaServer Pages(JSP)应用程序。这个名为"apache-tomcat-7.0.108(UTF8).zip"的压缩包包含了Apache Tomcat 7.0.108版本,这是一个支持UTF-8...
Apache Tomcat是一款开源的Java Servlet容器,主要用于部署和运行Java Web应用程序。这个“apache-tomcat-9.0-windows-x64.zip”压缩包包含了专为64位Windows操作系统设计的Tomcat 9.0的三个不同版本。下面将详细...
它是由Apache Software Foundation维护的Tomcat项目的一部分,专注于提供一个轻量级、高性能的Java应用服务器,用于部署和运行基于Java的Web应用程序。 在Java开发环境中,Eclipse是一个流行的集成开发环境(IDE)...
安装Apache Tomcat 7.0.26通常包括解压文件到指定目录,配置`conf/server.xml`文件以定制服务器设置,如端口号、连接器和虚拟主机。此外,还需要设置环境变量`CATALINA_HOME`指向Tomcat的根目录。 **3. 启动与管理*...
在IT行业中,构建高效、可扩展的Web服务是至关重要的,而Apache2.2和Tomcat的组合在处理高并发请求时常常被用作负载均衡和集群解决方案。本主题主要探讨的是如何在Apache2.2和Tomcat-6.0.18环境下实现负载均衡与集群...
Apache Tomcat 9.0.86 是一个广泛使用的开源软件,它是一个实现了Java Servlet、JavaServer Pages(JSP)和Java EE的Web应用程序容器。这个版本是为Windows 64位操作系统设计的,因此“apache-tomcat-9.0.86-windows...
- 通过`tomcat-users.xml`配置用户和角色,实现基于角色的访问控制(RBAC)。 - 可以使用SSL/TLS配置HTTPS连接,提供安全的数据传输。 6. **性能优化**: - 调整线程池大小,通过修改`server.xml`中的Connector...