网络平台LAMP架构的实现与应用_第1页
网络平台LAMP架构的实现与应用_第2页
网络平台LAMP架构的实现与应用_第3页
网络平台LAMP架构的实现与应用_第4页
网络平台LAMP架构的实现与应用_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业论文网络平台LAMP架构的实现与应用系 (部)专 业(方向)学 号学生姓名指导教师提交日期毕业论文网络平台LAMP架构的实现与应用专 业: 学 号: 学生姓名: 指导教师: 毕业论文诚信声明书本人声明:我所提交的毕业论文是我在指导教师指导下独立研究、写作的成果,论文中所引用他人的无论以何种方式发布的文字、研究成果,均在论文中加以说明;有关教师、同学和其他人员对本文的写作、修订提出过并为我在论文中加以采纳的意见、建议,均已在我的致谢辞中加以说明并深致谢意。 论文作者签名: 日期: 年 月 日摘 要本架构是由linux系统 + Apache/Tomcat + mysql + php/Java/

2、Jsp组合而成的一个网络平台的完整架构,由linux系统提供网站服务的平台;Apache提供网络服务和连接后台的中间件;mysql是后台数据库的管理的软件;php/Java/jsp是网页的语言。本架构主要是实现LAMP平台,有详细的解说,以及论坛网站作为例子展示,还有动静态页面分离的应用。关键词: linux Apache mysql php Java jsp目 录中文摘要II目录引言1一、市场现状1(一)国内的状况1(二)国外的状况2二、平台架构与相关技术的背景介绍2(一)WEB server2(二)Apache的技术介绍3(三)Tomcat的技术介绍3三、架构部署的总体设计5(一)环境的介

3、绍5(二)部署思路6四、架构部署的详细实现7(一)LAMP的部署71 环境配置82 Apache、tomcat、jdk的安装93 Tomcat的启动方式jsvc方式94 Tomcat重点目录详解145 Tomcat配置文件的详细解说15(二)Mysql的部署191 安装Mysql和创建用户192 创建用户和初始化配置19(三)开源论坛JavaCenter_Home的部署201 论坛网页上传202 Tomcat配置文件修改203 开源论坛JavaCenter_Home网页安装22(四)网站注册测试25五、架构的测试和应用26(一)架构的测试261 模拟数据库不能正常运行262 模拟Tomcat不

4、能正常运行263 模拟测试结果27(二)整合Apache和Tomcat实现动静页面分离281 整合的目的282 整合的原理283 配置一:加载一个模块294 配置二:定义一个Workers315 配置三:定义Apache的虚拟主机326 整合效果33(三)动静页面分离测试331 动静分离测试(一)332 动静分离测试(二)343 动静分离测试(三)35六、结论36参考文献36广 东 警 官 学 院 本 科 生 毕 业 论 文 36引 言网络是时代的新生儿,现在的网络可以说是发展中的状态,它在生活中无处不在,用户对该电商评价的首因效应是网站使用是否流畅。所以,好的网站平台支持流畅的网站浏览给用户

5、更好地使用,是影响首因效应的重要因素。网站为人们提供了更广阔的环境:时间不再限制客户、空间不再制约人们,手提电脑接入网线、或者打开Wifi连接无线网络就能随时随地上网;不受传统获知信息的诸多限制,网页就是百科全书,搜索引擎可以帮到你;可以随时随地进行海外新闻查看、网上交易,网购也是现代大学生经常会做的事情;学生自行开发网页,并运行此网页能使别人访问具有鲜活的意义。本论题提供LAMP网站平台的架构,可供学习对比,并且该架构中所用的软件都是开源的,对于软件的购买没有了限制,而且架构上可以运行多种网络开发语言,所以可以和网站开发的热爱者一起分工,共同应用。一、 市场现状(一)国内的状况在我国,淘宝网

6、站是新世纪经济迅速发展大潮流应运而生的产物。它是我国目前最大型最成功的网站,其网站背后的节点数目非常庞大,数据分布式存储,服务器有智能DNS可以按地区划分来选择最近的服务器提供客户访问,用的软件很多都是开源的,他们的后台数据库是Mysql,是阿里自己调优并且二次开发的硕果。开源的产品如果我们熟知并运用,它的魅力是很吸引人的。目前流行的一些收费的数据库软件是按照服务器的cpu核数来计算价格的,如果淘宝也用收费的软件,那么它现在目前那么庞大的节点群体,将要付巨款的服务费。而且Mysql适合分布式结构的数据库,恰好满足淘宝的架构需求。网络公司一开始都是烧钱的,花销很大,如果能一炮而红,那么将是发展非

7、常迅速。开源的力量是强大的,很多网络公司也在迅速发展,它鼓励着我们百花齐放,我们也借着这股力量,使得网络的发展更繁荣。(二)国外的状况开源这个词语叫Open Sources,在1999年出版了一本书,名字是Voices from the Open Source Revolution,中文版翻译成开源革命之声,开源的软件,是免费的吗?可以自由地不受限制地使用?我们都对它存有疑惑,“开源“的解释是:自由再发行、程序必须包括源代码、允许衍生作品。开源软件已经成为IT行业的大势,推动一个个IT公司像雨后春笋一样,蓬勃发展。二、 平台架构与相关技术的背景介绍(一)WEB ServerWEB Server

8、网络服务,是一个信息技术的词语。通过万维网,将信息进行分配分发,可以指一整个计算机系统,或者一套设备等。最核心的功能是接收和转发客户端信息。默认开放有这么两个端口为:80和443,其中:80端口:用于普通的http访问443端口:当你需要安全方式浏览网页或者给网页传输用户名或者密码的时候,浏览器里面网址会变成https:/xxx.xxx.xx这样的地址,默认走的是443这个端口。WebServer专门用于解析HTML、JS(JavaScript)、CSS、JPG/GIF等图片格式文件、TXT、PHP等“静态”网页内容。(二)Apache技术介绍Apache 是Apache软件基金会研发的一个开

9、放源代码的网页服务器,依然是目前最流行的网络服务器端软件之一。因为它跨平台度广,兼容很多计算机操作系统并流畅运行,免费又开源,所以深受欢迎。 功能强大:Apache为“模块”的设计,扩展新功能实际上就是拓展模块。配置简单:配置文件较简单,易懂。速度较快:处理静态页面效率高,应对大规模并发连接请求也没问题。 性能稳定:Apache在高负载请求下性能表现依旧不俗。第一章 第二章 34(三)Tomcat技术介绍它是Apache 软件基金会中最出名的一个核心项目Tomcat。 “汤姆猫”同样是开源又免费的Web 应用服务器(占用的系统资源小,扩展性好),而且它被使用的时间长,几乎入门级别的程序员都会选

10、择它,它占用系统资源小,拓展度高,很多网站也依旧选择Apache作为web服务器。Tomcat是Apache软件基金会于1999年,Sun和其他公司的雅加达(雅加达)项目共同合作的一个子项目,支持Java语言运行在服务器上。从理论上说,这种容器不是一个完整的服务器软件,因为它只能运行Java程序而不能生成HTML页面数据,不能处理并发事务。但它集成HTTP服务器程序,它可以单独作为一个服务器来部署软件处理HTTP请求,但tomcat的核心技术是无法在此,所以除了发展进程以及那些用于调试和事务处理速度是指小型用户的需求。以Tomcat作为单独、独立的个体网络服务器是非常少的,一般不会这么做,普通

11、情况都会和Tomcat的父公司软件Apache HTTP服务器一起工作。流程如下:客户的网络请求>Apache>Servle转发请求>Tomcat(端口号为8009)处理>Apache>交给客户。因此,运行在Tomcat Java程序是Servlet的模块,它体现的是tomcat,因为核心特征引起大家的注意,和模块的名称叫做Catalinna。根据网站Netcraft的统计,各大网络服务器的使用曲线图2-1如下图2-1一般用于小型企业的jsp页面,该文件就交给AJP13(指向Tomcat)处理,而一个Tomcat最大连接数一般在1024以下,处理能力有限。Tomc

12、at可以独立运行的,可以作为一个Apache 独立的进程单独运行的,但是一般不这样做,因为这样做对网页有限制,或者对条件有更多的限制。在Tomcat中有两个监听的端口,一个是8080提供网络服务,一个是8009监听Apache的请求。 Tomcat的总体结构,请看图2-2图2-2如上图,一个server服务器,包含多个service服务。Service服务里面有Connector和Container(容器)。容器作为连接器时负责外部连接和内部连接,其中充满了内部库文件。您可以选择一个容器对应多个连接器,或多个连接器容器,形成一个服务。Service生存在server中,有人能够给它生活,掌握它

13、生死的力量,所以Server是整个周期服务器的控制。三、架构部署的总体设计第三章 345(一)运行环境的介绍操作系统: Redhat6.3 (防火墙要关闭,iptables要清空)中间件:Tomcat -7.0.37、JDK工具、第三方模块mod_jk.so数据库:Mysql开发语言:php、jsp、java(二)部署思路LAMP部署思路:Apache-Tomcat + mod_jk (这是一个模块让Apache找到tomcat) + JDK(解析Java程序的一个工具) + Mysql + java应用(论坛)。如图3-1,图3-2。 图3-1 图3-1的流程是这样的:HTTP客户端浏览网页

14、。服务器也就是前端调试器Apache,如果是静态页面,Apache就直接解析,如果请求的是动态页面,则把动态页面发送给后端中间件服务,这个中间件服务叫mod_jk的模块,这个模块根据http的版本号也有不一样的版本号,这个模块负责找到Tomcat,Tomcat接收到动态页面的请求,呼叫JDK来编译动态页面。有数据需要的则由java servlet(容器)来调度数据库Mysql。然后再返回数据显示给客户端。图3-2图3-2的流程更具体:前端访问Apache,Apache有两层容器,主要是给AJP(端口是8009)访问的。前端容器首先找到Apache的主配置文件/etc/httpd/conf/ht

15、tpd.conf,也就是找到虚拟主机,虚拟主机会呼叫一个机器人workers模块,这个模块有一个配置文件Mod_jk.conf。静态页面Apache直接处理,动态页面呼叫一个Mod_jk.conf,主动通过SHM,再找到AJP,通过8080端口继续找到Server.xml,再找到Webapp和context内容。 四、 架构部署的详细实现(一)LAMP部署说明:以下的详细设计,带#号开头的是linux系统shell终端中需要输入的代码。1. 环境配置(1)防火墙要关闭。# vim /etc/selinux/conf SELINUX=disabled#setenforce 0关闭selinux下

16、次开机自启动#chkconfig selinux off(2)iptables防火墙规则要清空#iptables F#service iptables save关闭iptables#service iptables stop关闭iptables下次开机自启动#chkconfig iptalbes off(3)Host域名解析,编辑 /etc/hosts,添加如下内容:#vim /etc/hosts 本机ip (4)配置安装软件及依赖包的源#rm rf /etc/yum.repo/*#vim /etc/yum.repos.d/panxinxinyum.repo panxinxinyumName=

17、panxinxinyumBaseurl= enable=1gpgcheck=0(4)安装编译工具gcc#yum install gcc*2. Apache、Tomcat、jdk的安装(1)在Apache官方网站 下载一个apache-tomcat-7.0.37.tar.gz,解压到/opt目录后可以直接使用并做一个软连接(或者改名字)# tar xf apache-tomcat-7.0.37.tar.gz -C /opt/# ln -s /opt/apache-tomcat-7.0.37/ /opt/tomcat(2)下载一个JDK工具。将jdk解压到

18、opt目录后可以直接使用并做一个软连接(或者改名字)# tar xf jdk-7u15-linux-x64.tar.gz -C /opt/# ln -s /opt/jdk1.7.0_15/ /opt/jdk(3)安装Apache# yum install httpd3. tomcat的启动jsvc方式(1)进入目录/opt/tomcat/bin,解压当前文件commons-daemon-native.tar.gz。# cd /opt/tomcat/bin/# tar xf commons-daemon-native.tar.gz 进入解压后的目录,找到对应系统平台的目录unix # cd co

19、mmons-daemon-1.0.13-native-src/unix进入unix目录然后编译jsvc程序( -指定jdk目录)# ./configure -with-java=/opt/jdk # make最后把这个jsvc拷贝到tomcat目录。# cp jsvc /opt/tomcat/bin (2)创建启动tomcat脚本,添加catalina的目录(也就是tomcat的目录),方便启动。# vim /etc/rc.d/init.d/tomcat #!/bin/bash# tomcat Startup script for the Apache Tomcat Server# chkco

20、nfig: - 81 21# description: Apache Tomcat is a servlet/JSP container.# processname: tomcat# Source function library. /etc/rc.d/init.d/functionsJAVA_HOME=/opt/jdkCATALINA_HOME=/opt/tomcatCATALINA_BASE=/opt/tomcatTOMCAT_USER=rootprog=tomcatlockfile=/var/lock/subsys/tomcatpidfile=/var/run/tomcat.pidRET

21、VAL=0# Ensure that any user defined CLASSPATH variables are not used on startup,# but allow them to be specified in setenv.sh, in rare case when it is needed.CLASSPATH=JAVA_OPTS=if -r "$CATALINA_BASE/bin/setenv.sh" ; then. "$CATALINA_BASE/bin/setenv.sh"elif -r "$CATALINA_HOM

22、E/bin/setenv.sh" ; then. "$CATALINA_HOME/bin/setenv.sh"fi# Add on extra jar files to CLASSPATHtest ".$CLASSPATH" != . && CLASSPATH="$CLASSPATH:"CLASSPATH="$CLASSPATH$CATALINA_HOME/bin/bootstrap.jar:$CATALINA_HOME/bin/commons-daemon.jar"test "

23、.$CATALINA_OUT" = . &&CATALINA_OUT="$CATALINA_BASE/logs/catalina-daemon.out"test ".$CATALINA_TMP" = . &&CATALINA_TMP="$CATALINA_BASE/temp"# Add tomcat-juli.jar to classpath# tomcat-juli.jar can be over-ridden per instanceif -r "$CATALINA_BASE/b

24、in/tomcat-juli.jar" ; thenCLASSPATH="$CLASSPATH:$CATALINA_BASE/bin/tomcat-juli.jar"elseCLASSPATH="$CLASSPATH:$CATALINA_HOME/bin/tomcat-juli.jar"fi# Set juli LogManager config file if it is present and an override has not been issuedif -z "$LOGGING_CONFIG" ; thenif

25、-r "$CATALINA_BASE/conf/perties" ; thenLOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_BASE/conf/perties"else# Bugzilla 45585LOGGING_CONFIG="-Dnop"fifitest".$LOGGING_MANAGER"= .&&LOGGING_MANAGER="-Djava.util.logging

26、.manager=org.apache.juli.ClassLoaderLogManager"JAVA_OPTS="$JAVA_OPTS $LOGGING_MANAGER"# The semantics of these two functions differ from the way apachectl does# things - attempting to start while running is a failure, and shutdown# when not running is also a failure. So we just do it

27、the way init scripts# are expected to behave here.start() echo -n $"Starting $prog: "$CATALINA_HOME/bin/jsvc -home "$JAVA_HOME" -jvm server -user "$TOMCAT_USER" -outfile "$CATALINA_OUT" -errfile "&1" -pidfile $pidfile -classpath "$CLASSPATH&

28、quot; "$LOGGING_CONFIG" $JAVA_OPTS $CATALINA_OPTS -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -Dcatalina.base="$CATALINA_BASE" -Dcatalina.home="$CATALINA_HOME" -Djava.io.tmpdir="$CATALINA_TMP" org.apache.catalina.startup.BootstrapRETVAL=$? $RETVAL = 0

29、 && touch $lockfile && echo_success | echo_failureechoreturn $RETVAL# When stopping httpd a delay of >10 second is required before SIGKILLing the# httpd parent; this gives enough time for the httpd parent to SIGKILL any# errant children.stop() echo -n $"Stopping $prog: "

30、$CATALINA_HOME/bin/jsvc -stop -home $JAVA_HOME -jvm server -pidfile $pidfile -classpath "$CLASSPATH" -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -Dcatalina.base="$CATALINA_BASE" -Dcatalina.home="$CATALINA_HOME" -Djava.io.tmpdir="$CATALINA_TMP" org.apa

31、che.catalina.startup.BootstrapRETVAL=$? $RETVAL = 0 && rm -f $lockfile && echo_success | echo_failureechoreturn $RETVALcase "$1" instart)start;stop)stop;restart)stopstart;*)echo $"Usage: $prog start|stop|restart"exit 1esacexit $RETVAL(3)加tomcat到启动列表# chkconfig -ad

32、d tomcat# chkconfig tomcat on(4)启动tomcat服务并且查看其进程和端口。Jsvc只开两个端口,提高了安全性。# service tomcat start# netstat -tnlp |grep jsvc tcp 0 0 :8009 :* LISTEN 8972/jsvc.exec tcp 0 0 :8080 :* LISTEN 8972/jsvc.exec (5)访问http:/localhost:8080/ ,可以看到tomcat的主页,证明tomcat安装成功。主页如下图4-1。图4-14. Tomcat 重点目录详解l Bin 存放启动和关闭tomca

33、t的脚本,脚本是二进制命令。l Tmp 存放临时文件。l Conf 存放不同的配置文件(server.xml和web.xml 或者其他)。l Doc 存放文档。l Lib 存放运行需要的内部库文件。l Logs 存放执行时的log日志文件。l Src 存放tomcat 的源代码。l Webapps tomcat的主要jsp网页目录(包括应用程序示例)。l Work 工作目录,存放jsp 编译后产生的calss文件;解析的中间结果集(以后再次访问九直接读取结果集)5. tomcat配置文件的详细解说Tomcat的配置文件目录为/*/tomcat/conf/server.xml,配置文件的内容有如

34、下图4-2.图4-2<Server>元素 它代表整个容器的,是org.apache.catalina的元素,更是顶部元素,更是Tomcat实例。它包含一个或多个<service>元素。不能用作任何元素的子元素。1>className:实现接口的类。2>port: 监听shutdown命令的端口. 3>shutdown: 此属性必须设置为SHUTDOWN 例图如下图4-3图4-3<Service>元素 该元件包含一个<Engine>元素,和多个“连接”,这些元件用相同的元件共用连接器引擎。1>name: 定义Service的

35、名字,默认是Catalina. 例图4-4如下图4-4<Connector>元素代表请求的连接器“端点”表示已被接收和响应所需的。通过相关联的“容器”,每个连接器用来处理该请求。默认情况下,HTTP /1.1非SSL连接器绑定到端口8080,还可以有第二个连接器建立一个SSL的HTTP/1.1,端口是8443。例图4-5如下图4-5<Engine>元素 一个引擎元素对应一个Service,处理接收到的客户请求. 1>defaultHost: 默认的主机名指定为<引擎>的默认主机。在与客户打交道的<Host>子元素必须在主机中定义。2>

36、name: 定义Engine的名字 。在<Engine>可以包含如下元素<Logger>, <Realm>, <Value>, <Host>。例图4-6如下图4-6<Host>元素1> appBase : 指定虚拟主机目录,一般指定为<CATALINA_HOME>的相对目录。如果未选中,默认是<CATALINA_HOME>/webapps为默认路径。它将自动匹配Context的路径。2> autoDeploy: 如果设置为真,有一个新的Web应用页面或者程序添加,该Web应用程序的操作会

37、被自动发布。3> unpackWARs: War为压缩文件。该设置为真,表示程序可识别扩展的压缩文件,然后运行解压后的目录。如果设置为假,则将直接作为压缩文件运行。 4> alias: 别名 5> deployOnStartup: Tomcat服务器启动时是否要主动加载虚拟主机目录下所有的网页或者应用并且发布。默认采用Context目录(/opt/tomcat/webapps),但是如果server.xml有相应的<Context>元素,将被优先采用。例图4-7如下图4-7<Context>元素它描述了信息的应用环境,是一个抽象的概念。通过它我们可以得

38、到的资源和应用程序类,包括一些应用层的操作,如:启动活动,发送广播,接受意向信息。个人的理解就是一个容器,一个变量在这个。容器里的作用域范围,它所能做的事不能超过这个容器的最大范围。如例图4-8 1> Path: 指定访问Web应用的URL入口,注意/webroot,是目录。2> Reloadable: 如果这个属性设为true, Tomcat服务器在运行状态下如果监视到有网页文件被更新,就自动加载。图4-8(二)Mysql的部署1.安装mysql 和创建用户Redhat6.3系统光盘自带mysql软件,可以直接安装,并启动。# yum -y install mysql-serve

39、r mysql# service mysqld start# mysql 2.创建用户和初始化配置(1)登录mysql后进行初始化配置,把空用户删掉,修改本地root登录用户密码为123。mysql> delete from mysql.user where user=''mysql> UPDATE mysql.user SET password=password('panxinxin') where user='root' AND host='localhost' mysql> flush privi

40、leges; (2)为java论坛创建数据库及对应数据库用户:mysql> create database java1;mysql> grant all on java1.* to runjava1'localhost' identified by 'java1'(3)服务器重启,手工启动mysql服务。#service mysqld start(三)开源论坛JavaCenter_Home的部署1. 论坛页面上传在网站搜索下载一个开源论坛JavaCenter_Home_2.0_Source_UTF8.zip。新建网页文件目录,目录名为# mkdir

41、/webroot/ -p# unzip JavaCenter_Home_2.0_Source_UTF8.zip # cp -r JavaCenter_Home_2.0_Source_UTF8/source/WebRoot/* /webroot/ 2. Tomcat配置文件修改(1)修改Tomcat的配置文件,发布这个页面。修改后配置文件内容如下图4-9,和接驳文字。#vim /opt/tomcat/conf/server.xml图4-9图4-9的代码部分不变动,下面文字才是需要变动的。 <Host name="" appBase="webapps"

42、 unpackWARs="true" autoDeploy="true" deployOnStartup="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="java1_gdpc_access_log." suffix=".txt" pattern="%h %l %u %t &quot;%r&

43、amp;quot; %s %b" /><Context path="" docBase="/webroot/ " > </Context> </Host> </Engine> </Service></Server>(2)修改了配置文件,重启Tomcat服务# Service tomcat restart3. 开源论坛JavaCenter_Home页面安装因为这个开源论坛有自己的install安装页面,所以我们可以直接在浏览器打开 :8080/install,按照下面的

44、命令逐一对应输入:(1)首页如下图4-10:图4-10(2)然后填写与数据库连接的信息:数据库服务器地址 localshost数据库服务端端口 3306数据库用户名 runjava1数据库密码 java1数据库名java1表明前缀(默认)填写情况如下图4-11:图4-11(3)填写用户名密码,开通管理空间。用户名 admin密码 admin例如如下图4-12:图4-12(4)安装完成。可以分别进入空间首页和管理平台。如图4-13图4-13(四)网站注册测试(1)登录空间首页,然后注册一个自己的账号panxinxin,密码是123。如图4-14.图4-14(2)注册后,可以正常使用网站了。发表心

45、情,开始和别人的交流。如图4-15图4-15五、架构的测试和应用(一)架构的测试1. 模拟数据库不能正常运行测试内容:模拟数据库不能正常运行。如图5-1操作:# service mysqld stop结果:网页连接出现500错误图5-12. 模拟tomcat程序不能正常运行测试内容:模拟Tomcat程序不能正常运行。操作:修改Tomcat的Server.xml配置文件出错,少了一个对应context,如图5-2。结果:网页无法连接 ,如图5-3。图5-2图5-33. 模拟测试结果整个网页由Tomcat支撑着,提供服务。如果访问量过大或者数据库掉线了,那么网页将访问不了。而且论坛的网页有动态,有

46、静态,可以实现动静态分离,使得系统的处理能力更均衡高效。(二)整合Apache和Tomcat实现动静页面分离1. 整合的目的整合是提供一种在现有的硬件的最大负载的最重要手段。如果单独用Tomcat做 JSP的服务器,将出现因为超出并发连接的最大数目1024所以工作效率低的情况,Tomcat的处理能力不如静态HTML的Apache。在实际中,当更多的并发连接发生时,Tomcat的将是在一个“僵死”状态,响应的后续请求连接损耗。所以现在提出了互相磨合互相配合方案(因为Tomcat是Apache公司下的项目,属于同一个公司,其磨合程度很高): Tomcat处理动态页面,例如jsp等;静态页面交给Ap

47、ache处理。 Apache和Tomcat充分发挥各自特长,而且磨合度高,非常适合组合在一起,使得整合网络服务很流畅。 2. 整合的原理 在Apache中装载一个模块,这个模块叫mod_jk; Apache的80端口负责解析静态网页内容; 其他动态的信息,告诉mod_jk,让mod_jk去找Apache。这个模块相当于是apache与tomcat之间的桥梁。想象工Worker是Tomcat的员工,代表一个实例,属于Connector 连接这个部门。例如Apache传递请求到Tomcat进程,是放在Servelet(相当于前台)那里,再由工作人员Worker进行后台

48、处理。它执行着一些Servelet的程序。不同的虚拟主机可以使用不同的Tomcat流程进行处理,这应该是彼此完全独立个体的。多重的Tomcat worker在同一台机器上运行又意味着可以均衡分布工人之间的Web请求,这样就是负载均衡。整合之后流程如下:直接访问Apache 的http 80端口为入口>调用mod_jk模块>调用Workers>交给AJP传给Tomcat>Tomcat调用java>java处理*.Jsp页面Tomcat workers的定义文件是 perties,具体的使用说明这里不作详细解释。Apache如何配置虚拟主机在本文

49、中亦不作详细解释。3. 配置一:加载一个第三方模块(1)在网上搜索这个模块mod_jk-1.2.30-httpd-2.2.X,在Apache配置文件中,加载它,定义一个搬运工worker给tomcat,定义一个模块的配置文件,定义哪些动态页面的类型。# vim /etc/httpd/conf/httpd.conf#指定模块路径LoadModule jk_module modules/mod_jk.so #定义appache是如何呼叫tomcat程序处理jsp页面Include conf/mod_jk.conf#指定mod_jk的workers定义JkWorkersFile conf/worke

50、perties#加载workers的请求处理分配文件JkMountFile conf/perties (2)创建mod_jk模块,也就是将模块拷贝到/etc/httpd/modules/目录下:# cp mod_jk-1.2.30-httpd-2.2.X.so /etc/httpd/modules/mod_jk.so(3)定义mod_jk的级别、日志文件、日志格式、启动访问的日志、请求,mod_jk的选项。这个文件是直接新建的。# vim /etc/httpd/conf/mod_jk.conf#指定日志级别JkLogLevel warn#指定jk的日

51、志输出文件JkLogFile logs/jk.logJkShmFile logs/jk-runtime-status#时间戳格式#%y 两位数的年份表示(00-99)#%Y 四位数的年份表示(000-9999)#%m 月份(01-12)#%d 月内中的一天(0-31)#%H 24小时制小时数(0-23)#%I 12小时制小时数(01-12)#%M 分钟数(00=59)#%S 秒(00-59)#%a 本地简化星期名称#%A 本地完整星期名称#%b 本地简化的月份名称#%B 本地完整的月份名称#%c 本地相应的日期表示和时间表示#%j 年内的一天(001-366)#%p 本地A.M.或P.M.的等

52、价符#%U 一年中的星期数(00-53)星期天为星期的开始#%w 星期(0-6),星期天为星期的开始#%W 一年中的星期数(00-53)星期一为星期的开始#%x 本地相应的日期表示#%X 本地相应的时间表示#%Z 当前时区的名称#% %号本身JkLogStampFormat “%a %b %d %H:%M:%S %Y”#Options Description(选项的说明)# %b 发送的字节, 不包括 HTTP headers (CLF format)# %B 发送的字节, 不包括 HTTP headers# %H 协议# %m 请求方式(get/post)# %p 服务器响应请求的规范端口.

53、# %q 查询字符串 (如果存在以?开头,否则是空串)# %r 请求的第一行.# %s HTTP状态码# %T 请求间隔, 处理请求耗费的时间 秒.微秒# %U 请求的url路径,不包含查询字符串.# %v 响应请求的规范服务器名字# %V 根据UseCanonicalName设置的服务器名字.# %w Tomcat worker 名字#JkRequestLogFormat 设置个人用户请求的log格式.JkRequestLogFormat “%w %V %T”JkOptions +ForwardKeySize +ForwardURICompat - ForwardDirectories4. 配置二:定义一个Workers (1)编辑文件/et

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论