今天因为一件事情,结果引发犹如被打鸡血的冲动,把前几天想完成的事情一下子都做完了,花了几个小时看了一下书,然后搜了不少的材料做好了两件事情:
1.搭建好了i帝国建站系统,典型的使用apache+php+mysql的配置环境
2.做好了tomcat集群配置应用
------我的心情
最近压力很大,不是找工作的事情,因为其他的一件比较重要的破事,终于完了。后面好好努力,明年再跳槽!保持发帖速度,两周发一个技术帖,必须要多学点东西才行了,什么都不知怎么跳槽!
-----为了不忘记这心血来潮的结晶,把心得贴出来,网上这种帖子多的是,我这里的基本都是自己实现了的,不过和网上的材料基本说的一个事情。
++++++++++++++++++++++++++++++++++++++++++++++++++++
1.准备软件下载并安装
Apache2.2 apache-tomcat-6.0.20.zip php-5.3.6-Win32-VC9-x86.msi mysql
2.apache,tomcat的关系,还有tomcat做集群是什么玩意
前几天面试的时候被问到这个问题,不知道,总是使用tomcat服务器,就知道apache基金会,但是不知道具体的关系。其实apache是一种web服务器(其他的windows下面的IIS也是另外一种web服务器),在tomcat做集群的时候是多个tomcat之间通过一个apache联系起来,apache服务器处理静态请求内容,tomcat处理动态内容,中间的桥梁是一个叫做mod_jk或者mod_proxy的本地代码模块(C或者C++写的)。涉及到的通信协议叫做AJP协议。
3.apache+php配置结合的要点
修改php配置文件php.ini:
搜索找到register_globals
register_globals = Off --->
On
搜索找到short_open_tag
short_open_tag = Off --->
On
搜索找到extension_dir配置,找到下面的ext目录
extension_dir="D:\Program Files\PHP\ext"
搜索找到DocumentRoot 配置php工程的根目录地址
DocumentRoot "D:/apacheroot"//服务器根目录
//设置缓存地址
session.save_path="C:\WINDOWS.0\Temp"
修改apache配置文件httpd.conf
配置php工程的根目录,和之前的配置的一致
DocumentRoot "D:/apacheroot"
下面继续搜索这里也要配置:
#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "D:/apacheroot">
配置可能的首页文件,目录等,
<IfModule dir_module>
DirectoryIndex index.html index.htm index.php
</IfModule>
继续配置httpd.conf,添加下面内容(位置任意):
LoadModule php5_module "D:/Program Files/PHP/php5apache2_2.dll"
AddType application/x-httpd-php .php
AddType application/x-httpd-php .htm
到此apache可以支持php了
4.php和mysql配置
找到先前重命名并编辑过的 php.ini,把“;extension=php_mysql.dll”前的“;”去掉,加载mysql模块
以上关于apache+php+mysql可以看这个帖子,图文并茂,很详细:http://tech.163.com/06/0206/11/299AMBLT0009159K_3.html
++++++++++++++++++++++++++++++++++++++++++++++++++
tomcat简单集群,我从这个帖子开始了解的:
http://www.iteye.com/topic/1017961
然后发现使用过程中本人基础比较差,有几个前提问题就没有处理好,于是又继续搜索加翻书,自己继续总结了一下。
1.如何实现一台机器上面跑多个tomcat
a.首先去掉环境变量里面的关于tomcat home的相关配置,没有的话就不用删了
b.复制tomcat6为三个,分别文件夹叫tomcat1,tomcat2,tomcat3
c.对每一个tomcat里面bin下面的startup.bat配置文件修改如下:
if not "%CATALINA_HOME%" == "" goto gotHome
set CATALINA_HOME="D:\负载均衡测试\tomcat1" //修改这一行即可
//使用当前目录下面的tomcat
d:修改各个tomcat的配置文件server.xml
1.设置不同的ajp连接器端口(默认的ajp1.3协议监听8009端口,对于各个tomcat 运行在一个机器上面必须端口不一样才行)
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
tomcat1:8009(默认的不变)
tomcat2:8010
tomcat3:8011
2.设置不同的服务端口(避免启动端口冲突,编辑server.xml文件并设置每个tomcat的服务端口不一样!)
<Server port="8006" shutdown="SHUTDOWN">
tomcat1:8005(默认的不变)
tomcat2:8006
tomcat3:8007
3.因为要做负载均衡,所有的请求应该通过apache服务器的worker负载均衡器,应该禁止默认的htp连接器直接访问tomcat,所以要注释相关配置(重要)
<!--
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
-->
4.修改tomcat在catalina顶层容器里面的唯一标识,不得重复。
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">
tomcat1:tomcat1
tomcat2:tomcat2
tomcat3:tomcat3
2.apache配置文件修改
1.首先下载关于tomcat和apache整合的插件
将下载到的Apache和Tomcat的整合插件mod_jk-1.2.31-httpd-2.2.3.so放入D:\WebServer\Apache\modules
2.修改tomcat配置文件httpd.conf:
在最后一行添加,表示引用一个新的配置文件,很简单“D:\Program Files\Apache Software Foundation\Apache2.2\”是按照tomcat的位置
include "D:\Program Files\Apache Software Foundation\Apache2.2\conf\mod_jk.conf"
3.然后添加这个叫做mod_jk.conf的新配置文件
内容如下:
LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so
#下面又使用了一个新的配置属性文件,是最重要的定义各个tomcat与负载均衡器之间逻辑的文件
JkWorkersFile conf/workers.properties
#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器名
JkMount /*.jsp controller
4.然后到conf文件夹下面新建这个workers.properties
内容如下:
#server
worker.list = controller
#========tomcat1========
worker.tomcat1.port=8009
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor = 1
#========tomcat2========
worker.tomcat2.port=8010
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 1
#========tomcat3========
worker.tomcat3.port=8011
worker.tomcat3.host=localhost
worker.tomcat3.type=ajp13
worker.tomcat3.lbfactor = 1
#========controller,负载均衡控制器========
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2,tomcat3
worker.controller.sticky_session=false
worker.controller.sticky_session_force=1
#worker.controller.sticky_session=1
3.开始进行测试,
将一个简单的应用放到3个tomcat下面的webapps目录下面
新建一个目录test,下面有一个test.jsp,内容如下
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.util.*" %>
<html><head><title>Cluster App Test</title></head>
<body>
Server Info:
<%
out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%>
<%
out.println("<br> ID " + session.getId()+"<br>");
// 如果有新的 Session 属性设置
String dataName = request.getParameter("dataName");
if (dataName != null && dataName.length() > 0) {
String dataValue = request.getParameter("dataValue");
session.setAttribute(dataName, dataValue);
}
out.print("<b>Session 列表</b>");
Enumeration e = session.getAttributeNames();
while (e.hasMoreElements()) {
String name = (String)e.nextElement();
String value = session.getAttribute(name).toString();
out.println( name + " = " + value+"<br>");
System.out.println( name + " = " + value);
}
%>
<form action="index.jsp" method="POST">
名称:<input type=text size=20 name="dataName">
<br>
值:<input type=text size=20 name="dataValue">
<br>
<input type=submit>
</form>
</body>
</html>
然后在test 新建WEB-INF目录,WEB-INF下新建web.xml,内容如下
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<display-name>TomcatDemo</display-name>
<distributable/>
</web-app>
注意:在你的应用的web.xml加入 <distributable/> 即可
启动三个tomcat,启动apache,开始输入网页地址,注意不是http://localhost:8008/test/test.jsp(因为前面已经禁止了http端口,如果不禁止的话三个tomcat http端口不一样,就不可以进行刷新跳转到其他服务器了)而是统一的从http://localhost/test/test.jsp进入,通过刷新就可以看到不停在三个服务器间跳转。。
还有一个配置,在apache中之前只是配置了支持index.php,现在还要加上index.jsp,不过不影响前面的测试test.jsp
<IfModule dir_module>
DirectoryIndex index.html index.htm index.php index.jsp
</IfModule>
+++++++++++++++++++++++++++++++++++++++++++++++
附件为全部的相关配置文件。。
分享到:
相关推荐
NULL 博文链接:https://szqfsx123.iteye.com/blog/2266607
Apache作为前端服务器,负责接收客户端请求并通过mod_jk模块转发给后端的Tomcat集群处理。这种方式不仅提高了系统的并发处理能力,还增强了系统的可靠性和扩展性。对于大型网站或高并发场景下的应用部署来说,这是一...
### Nginx+Apache+MySQL+PHP+Memcached+Squid 搭建门户网站 #### 一、前言与架构概述 随着互联网技术的发展,如何构建一个高效、稳定且能够应对高并发访问的Web服务器成为了许多企业和开发者关注的重点。本文将...
首先,Apache与Tomcat集群是提升Web应用程序性能和可用性的常用方法。通过在多台服务器上部署相同的Apache和Tomcat实例,可以实现负载分摊,当一台服务器出现问题时,其他服务器能够接管工作,从而提高系统的整体...
本压缩包提供了实现Tomcat集群配置所需的Apache服务器和mod_jk模块,具体版本为Apache 2.0.55和mod_jk-apache-2.0.55.so。 Apache HTTP Server是一个开源的Web服务器,它能够处理静态HTML文件和动态内容,如PHP、...
Apache 和 Tomcat 是两种广泛应用的 Web 服务器软件,它们在 Web 开发领域...在实际部署中,根据应用的需求,可以通过配置 Apache 和 Tomcat 的协同工作,优化性能和资源利用,以满足不同规模和复杂度的 Web 应用场景。
Tomcat是Apache软件基金会Jakarta项目的一部分,它是轻量级的,相对其他如JBoss、WebLogic等商业应用服务器来说,更易于配置和管理。 **Java Servlet技术** Java Servlet是一种Java编程语言的接口,允许Java代码在...
本案例旨在实现一个基于Windows平台的NGINX与TOMCAT的负载均衡集群配置。具体而言,通过配置NGINX作为前端HTTP服务器,后端连接两个TOMCAT应用实例,以此达到负载均衡的效果。此外,还需要为整个系统设定Session超时...
7. **集群与负载均衡**:高级用法中,Tomcat可以配置为集群,实现负载均衡和故障转移,提高应用的可用性和可伸缩性。 8. **与其他技术的整合**:Tomcat可以与Spring Boot、EJB、JMS、JNDI等其他Java技术集成,构建...
- 在Apache的配置文件中添加Mod_JK的相关配置,通常位于`/usr/local/apache/conf/httpd.conf`。 ```bash LoadModule jk_module modules/mod_jk.so JkWorkersFile conf/workers.properties JkLogFile logs/mod_...
### 知识点详解:轻松配置 Linux 下的 Tomcat 集群 #### 1. 综述 本文旨在指导用户如何在 Linux 环境下配置一个具有高可用性、可扩展性以及具备负载均衡与错误恢复能力的 Tomcat 集群。 #### 1.1 目标 配置的最终...
Apache 和 Tomcat 是两种在 web 开发中常见的服务器软件,它们各自有着不同的角色和功能。 首先,Apache 是一款开源的 HTTP 服务器,主要用于提供静态网页服务,如 HTML、CSS、JavaScript 等。Apache 的设计简洁、...
首先,我们来看如何进行Tomcat集群配置。在集群中,每个Tomcat实例都是一个节点,它们之间通过共享session数据来协同工作。以下是一般的步骤: 1. **配置主从复制**:为了在节点间同步session,我们需要启用主从...
本文将深入探讨如何在CentOS上安装Nginx服务,并配置PHP和Tomcat集群,以及实现反向代理。 一、Nginx安装与配置 1. 更新系统: ``` sudo yum update -y ``` 2. 安装EPEL仓库: ``` sudo yum install epel-release...
本文将详细介绍Apache的安装与配置过程,包括基本的安装步骤、代理设置以及如何构建高可用的集群。 1. **修改记录** 修改记录通常用于跟踪软件更新和改动,对于Apache服务器的维护来说,记录每次配置变更或版本...