在网上找了一些文档,还是觉得不是很清楚,自己走了些弯路,才把这个配置好,还是写下来吧,以备后查。
				
		
		
				
						1.   
				
				目标
		
		
				使用
				apache
				和
				tomcat
				配置一个可以应用的
				web
				网站,要达到以下要求:
		
		
				
						1、  
				
				Apache
				做为
				HttpServer
				,后面连接多个
				tomcat
				应用实例,并进行负载均衡。
		
		
				
						2、  
				
				为系统设定
				Session
				超时时间,包括
				Apache
				和
				tomcat
		
		
				
						3、  
				
				为系统屏蔽文件列表,包括
				Apache
				和
				tomcat
		
		
				
						2.   
				
				安装
				tomcat
		
		
				
						2.1. 
				
				下载,解压
				tomcat 
		
		
				不要下载安装版
				,
				下载地址
		
		
				
						http://tomcat.apache.org/
				
		
		
				
						2.2. 
				
				配置
				tomcat 
		
		
				
						2.2.1.     
				
				配置
				server
				的关闭口
		
		
				我们需要在一台机器上跑
				2
				个不同的
				tomcat
				,需要修改不同的
				tomcat
				的关闭口,避免出现端口被占用的情况。在
				server.xml
				中找到
				server,
				将:
		
		
				<Server port="8005" shutdown="SHUTDOWN">
		
		
				改为
		
		
				<Server port="XXXX" shutdown="SHUTDOWN">
		
		
				XXXX
				在这里表示不同的端口:我的两个
				tomcat
				分别使用
				8035
				,
				8045
		
		
				
						
						 
				
		
		
				注意:这里之所以要配置不同的
				tomcat
				关闭口,只是因为我们使用了多个
				tomcat
				,其实用一个
				server
				多个实例也可以。
		
		
				
						2.2.2.     
				
				配置
				service
		
		
				我们需要对不同的
				tomcat
				的
				service
				取不同的名字,在
				server.xml
				中找到:
		
		
				<Service name="Catalina">
		
		
				改为:
		
		
				<Service name="XXXX">
		
		
				两个
				service
				分别为
				tomcat6
				和
				tomcat5
		
		
				
						2.2.3.     
				
				配置
				Connector
		
		
				这个部分主要是要改两个
				Connector
				,当然前提是你的
				tomcat
				只有两个
				Connector
				。
		
		
				修改
				ajp1.3
				的端口:
		
		
				找到:
				<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
		
		
				改为:
				<Connector port="XXXX" protocol="AJP/1.3" redirectPort="8443" />
		
		
				两个
				Service
				的
				ajp/1.3
				的端口分别为:
				8019
				,
				8029
		
		
				修改
				http
				的端口:
		
		
				找到:
		
		
				<Connector port="8080" protocol="HTTP/1.1" 
		
		
				
						               maxThreads="150" connectionTimeout="20000" 
		
		
				
						               redirectPort="8443" />
		
		
				改为:
		
		
				<Connector port="XXXX" protocol="HTTP/1.1" 
		
		
				
						               maxThreads="150" connectionTimeout="20000" 
		
		
				
						               redirectPort="8443" />
		
		
				两个
				Service
				的
				ajp/1.3
				的端口分别为:
				8060
				,
				8070
		
		
				
						2.2.4.     
				
				配置
				Engine
		
		
				Engine
				主要是配置
				jvmRoute
				属性,找到:
		
		
				<Engine name="Catalina" defaultHost="localhost">
		
		
				改为:
		
		
				<Engine jvmRoute="XXXX" name="Catalina" defaultHost="localhost">
		
		
				两个实例分别为:
				tomcat6
				和
				tomcat5.
		
		
				
						2.2.5.     
				
				配置公用性
				Context
		
		
				如果有
				Context
				是多个系统公用的,比如图片等的存放地,可以做个配置:
		
		
				在
				Host
				中增加:
		
		
				<Context path="/image" docBase="D:\webRoot\image" debug="0" reloadable="false" crossContext="true"> 
		
		
				</Context> 
		
		
				
						2.2.6.     
				
				屏蔽文件列表 
		
		
				打开
				tomcat
				目录下的
				conf/web.xml
				,
		
		
				找到:
		
		
				<servlet>
		
		
				
						        <servlet-name>default</servlet-name>
		
		
				
						        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
		
		
				
						        <init-param>
		
		
				
						            <param-name>debug</param-name>
		
		
				
						            <param-value>0</param-value>
		
		
				
						        </init-param>
		
		
				
						        <init-param>
		
		
				
						            <param-name>listings</param-name>
		
		
				
						            <param-value>true</param-value>
		
		
				
						        </init-param>
		
		
				
						        <load-on-startup>1</load-on-startup>
		
		
				
						    </servlet>
		
		
				将
				listings
				参数改为
				false;
		
		
				
						2.3. 
				
				配置应用
				(web.xml) 
		
		
				对系统应用做些控制。
		
		
				配置
				session
				过期时间,大多数网站用户都只是做些浏览性的操作,为了减轻服务器负载压力,我们将
				session
				超时时间从默认的
				30
				分钟变为
				5
				分钟。
		
		
				在
				web
				应用程序的
				web.xml
				中
				servlet-mapping
				之后增加如下一段:
		
		
				<session-config>
		
		
				
						    <session-timeout>5</session-timeout>
		
		
				</session-config>
		
		
				
						3.   
				
				安装
				Apache
		
		
				
						3.1. 
				
				下载、安装
				Apache 
		
		
				下载地址
				
						http://httpd.apache.org/download.cgi
				
		
		
				下载后点击安装
				msi
				文件。
		
		
				安装的时候没有什么特别需要注意的地方,按照默认就行了。是否安装为
				service
				看具体情况而定。
		
		
				
						3.2. 
				
				下载、安装
				Apache 
				、
				tomcat 
				的
				Connector 
		
		
				
						http://tomcat.apache.org/download-connectors.cgi
				
		
		
				注意,很多网站上都介绍是
				JK2
				,可能是觉得
				JK2
				比
				JK
				要新吧,其实
				JK2
				已经停止研发了,建议使用
				jk1.2
				。
		
		
				下载压缩包,之后将
				module
				目录中的
				mod_jk-apache****.so
				文件放入
				/module/
				目录下。
		
		
				
						3.3. 
				
				配置
				Apache 
				(
				httpd.conf 
				)
		
		
				
						3.3.1.     
				
				配置端口: 
		
		
				找到
		
		
				Listen 80
		
		
				改为
		
		
				Listen **
		
		
				当然如果不需要改的话,就不用改了。正常情况无须更改。
		
		
				
						3.3.2.     
				
				配置
				DocumentRoot
		
		
				找到
				DocumentRoot
				段,将其改为:
		
		
				DocumentRoot "E:/MyWebsite"
		
		
				这里的
				"E:/MyWebsite"
				指的是你的
				web
				程序的根路径,视具体应用而定。
		
		
				
						3.3.3.     
				
				配置
				serverName
		
		
				找到
				serverName
				这个段,将其配置为你的
				ServerName
		
		
				如果没有配置为域名,配为
				IP
				也可以,此处还不是很清楚,多虚拟主机的情况的配置。
		
		
				
						3.3.4.     
				
				配置虚拟主机 
		
		
				<VirtualHost *:80>
		
		
				
						    ServerAdmin flyffa@gmail.com
		
		
				
						    DocumentRoot       E:/MyWebsite
		
		
				
						    ServerName localhost
		
		
				
						    DirectoryIndex index.html index.htm index.jsp
		
		
				
						    ErrorLog logs/error_log
		
		
				
						    CustomLog logs/access_log common
		
		
				
						    ErrorDocument 404 /sys/logon.jsp
		
		
				</VirtualHost>
		
		
				
						3.4. 
				
				配置
				JK 
				方式的负载均衡
		
		
				
						3.4.1.     
				
				配置
				module
		
		
				我们需要与
				tomcat
				做连接,所以要把
				tomcat
				的
				connector
				的模块配置进去。
		
		
				在
				LoadModule
				部分加入:
		
		
				LoadModule jk_module modules/mod_jk-apache-2.0.55.so
				-加载模块
				
		
		
				(根据网友于伟的建议,补上一段,mod_jk的版本会根据大家下载的版本不同,有不同的名字,请大家注意)
这个
				so
				是我下载的版本,个人可以根据自己下载的文件名加以配置
		
		
				JkWorkersFile conf/workers.properties
				-指定
				connector
				的配置文件名称
				
						
						
				
		
		
				JkLogFile logs/mod_jk.log
				-指定
				connector
				的日志文件名称
				
						
						
				
		
		
				JkLogLevel info
				-指定
				connector
				的日志等级
		
		
				
						3.4.2.     
				
				配置
				worker
				列表
				(conf/workers.properties)
		
		
				
						定义列表
						
								
								
						
				
		
		
				worker.list=tomcat6,tomcat5,loadbalancer
		
		
				
						定义一个名为
						“loadbalancer” 
				
				
						的
						worker 
				
		
		
				其作为对多个
				Tomcat 
				进程的负载平衡使用:
				
				
		
		
				worker.loadbalancer.type=lb 
		
		
				worker.loadbalancer.balanced_workers=tomcat5, tomcat6
				
				
		
		
				(
				负载平衡类型的
				worker 
				并不与
				Tomcat worker 
				通讯,它负责管理这些
				Tomcat worker 
				。
				)
		
		
				
						定义多个
						worker
				
				
						列表
						
								
								
						
				
		
		
				# Set properties for tomcat6 (ajp13)
		
		
				worker.tomcat6.type=ajp13
		
		
				worker.tomcat6.host=localhost
		
		
				worker.tomcat6.port=8019
		
		
				worker.tomcat6.lbfactor=50
		
		
				worker.tomcat6.cachesize=10
		
		
				worker.tomcat6.cache_timeout=600
		
		
				worker.tomcat6.socket_keepalive=1
		
		
				worker.tomcat6.reclycle_timeout=300
		
		
				
						 
				
		
		
				# Set properties for tomcat5 (ajp13)
		
		
				worker.tomcat5.type=ajp13
		
		
				worker.tomcat5.host=localhost
		
		
				worker.tomcat5.port=8029
		
		
				worker.tomcat5.lbfactor=50
		
		
				worker.tomcat5.cachesize=10
		
		
				worker.tomcat5.cache_timeout=600
		
		
				worker.tomcat5.socket_keepalive=1
		
		
				worker.tomcat5.reclycle_timeout=300
		
		
				注意:
				
						lbfactor=
						
						
				
				
						50
				
				(
				当此
				Tomcat worker 
				被用于一个负载平衡
				worker 
				使用时,此属性将被使用。它定义了此
				worker 
				的负载平衡权值。
				)
				
						
								
										
										
								
						
				
		
		
				
						cachesize=
						
						
				
				
						10
				
				(
				当在多线程的
				web server 
				(例如
				apache2.0 
				、
				IIS 
				、
				Netscape 
				)中使用
				JK 
				时,此属性是有效的。如果将
				cachesize 
				的值设置为较高的值,这些支持多线程的
				web server 
				将获得很好的处理能力。如果此属性不被设置,则连接
				cache 
				特性将失效。
				)
		
		
				
						3.4.3.     
				
				配置
				Apache
				到
				tomcat
				的桥接
		
		
				在
				DocumnetRoot
				片段下加入
		
		
				JkMount /*.jsp tomcat6
		
		
				JkMount /*.do tomcat6
		
		
				JkMount /*Servlet tomcat6
		
		
				这里只是简单的将
				apache
				的请求转到其中的一个
				tomcat
				中,形成桥接,至于负载均衡的时候,就无须进行这步操作,直接启动负载均衡。启动负载均衡见下一节。
		
		
				
						3.4.4.     
				
				启动负载均衡 
		
		
				在
				DocumnetRoot
				片段下加入
		
		
				JkMount /*.jsp loadbalancer
		
		
				JkMount /*.do loadbalancer
		
		
				JkMount /*Servlet loadbalancer
		
		
				-指定对所有的请求启动负载均衡,这里的
				loadbalancer
				是定义的
				worker
				的名字
				
						
						
				
		
		
				这里我在配置的时候犯了两个错误:
				
						
						
				
		
		
				第一是没有配置
				JkWorkersFile conf/workers.properties
				,以为
				Apache
				会自动认识(其实
				apache
				是自动产生了一个叫做
				ajp13
				的
				worker
				,指向本机的
				8009
				端口)。
		
		
				第二是以为
				JkMount
				语句中出现
				loadbalancer,ajp13
				之类的是系统设定的东西,其实都是在
				workers.properties
				文件中定义的,结果出现名字不匹配的情况。后来配置了
				JkLogFile logs/mod_jk.log
				之后看到错误日志才明白。
		
		
				
						3.5. 
				
				配置
				Proxy 
				方式的负载均衡
		
		
				使用
				Apache2.1
				以上的版本,就可以用
				mod_proxy_ajp
				来完成负载均衡的配置,不过到目前为止,没有看到如何让
				Apache
				负责静态部分,
				tomcat
				负责动态部分的配置方式,只能用
				path
				进行区分分发请求。如:在虚拟主机的配置中增加:
		
		
				ProxyPass / ajp://localhost:8019/
		
		
				ProxyPassReverse / ajp://localhost:8019/
		
		
				而形如:
		
		
				ProxyPass /*.jsp ajp://localhost:8019/
		
		
				ProxyPassReverse /*.jsp ajp://localhost:8019/
		
		
				这样的配置是不能通过的。
		
		
				请高手指教。