官方网站:)
Tomcat虽然可以跑jsp网页,通常不会使用它作为web服务器,而是作为中间件。

一、Tomcat服务的搭建与配置

如果你的系统已经安装了开发工具包,那么本机就已经有了java
如果没有安装开发工具包,使用yum源命令安装

  1. 英文系统安装: # yum -y groupinstall “Development tools”
  2. 中文系统安装: # yum -y groupinstall “开发工具”

    1. 验证java版本

  3. [root@Tomcat ~]# java -version

  4. openjdk version “1.8.0_161”
  5. OpenJDK Runtime Environment (build 1.8.0_161-b14)
  6. OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)

    2. 安装Java和Tomcat

    在这里系统自带的java我们不使用,我们使用下载的最新版java版本。因为jdk是java程序运行的环境,解压即能用,不需要修改。
    第一步:下载、解压安装jdk
    官网下载
    [https://www.oracle.com/java/technologies/downloads/#java8](https://www.oracle.com/java/technologies/downloads/#java8)

  7. [root@Tomcat ~]# wget http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.tar.gz

  8. [root@Tomcat ~]# tar xvf jdk-8u161-linux-x64.tar.gz -C /usr/local/

第二步:更改解压后的名称,方便识别
[root@Tomcat ~]# mv /usr/local/jdk1.8.0_161/ /usr/local/java/

第三步:下载、解压安装tomcat

  1. 官网下载Tomcat
  2. http://tomcat.apache.org/
  3. https://tomcat.apache.org/download-90.cgi #tomcat下载页面
  4. wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.62/bin/apache-tomcat-9.0.62.tar.gz

image.png

  1. wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.62/bin/apache-tomcat-9.0.62.tar.gz
  2. [root@Tomcat ~]# tar xvf apache-tomcat-9.0.5.tar.gz -C /usr/local/
  3. [root@Tomcat ~]# mv /usr/local/apache-tomcat-9.0.5/ /usr/local/tomcat/

    3. Tomcat 目录结构说明

  4. [root@Tomcat ~]# cd /usr/local/tomcat/

  5. [root@Tomcat tomcat]# ls
  6. bin —启动命令目录
  7. conf —配置文件目录 *重点
  8. lib —库文件目录
  9. logs —日志文件目录 *重点
  10. temp —临时缓存文件
  11. webapps —web应用家目录 *重点
  12. work —工作缓存目录

    4. 修改Tomcat环境变量

    Tomcat是需要jdk才能运行,上面解压安装后,还需要在tomcat里配置jdk的目录
    修改tomcat环境变量有三种方法:
    第一种:定义在全局里;如果装有多个JDK的话,定义全局会冲突,不建议
    [root@Tomcat ~]# vim /etc/profile 或者vim /etc/profile.d/tomcat_java.sh

    1. JAVA_HOME=/usr/local/java
    2. PATH=$PATH:$JAVA_HOME/bin
    3. CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    4. CATALINA_BASE=/usr/local/tomcat
    5. CATALINA_HOME=/usr/local/tomcat
    6. export JAVA_HOME PATH CLASSPATH CATALINA_BASE CATALINA_HOME

    第二种:写用户家目录下的环境变量文件.bash_profile
    第三种:是定义在单个tomcat的启动和关闭程序里,建议使用这种

  13. [root@Tomcat ~]# vim /usr/local/tomcat/bin/startup.sh —tomcat的启动程序

  14. [root@Tomcat ~]# vim /usr/local/tomcat/bin/shutdown.sh —tomcat的关闭程序

把startup.sh和shutdown.sh这两个脚本里的最前面加上下面一段:

  1. export JAVA_HOME=/usr/local/java
  2. export TOMCAT_HOME=/usr/local/tomcat
  3. export CATALINA_HOME=/usr/local/tomcat
  4. export CLASS_PATH=$JAVA_HOME/bin/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tool.jar
  5. export PATH=$PATH:/usr/local/java/bin:/usr/local/tomcat/bin

image.png
classpath是指定你在程序中所使用的类(.class)文件所在的位置。
path是系统用来指定可执行文件的完整路径。

5. 启动Tomcat

前面安装和配置好后,下面就可以启动了,启动时会有下面这一段输出。 :::info [root@Tomcat ~]# /usr/local/tomcat/bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/java
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started. :::

6.Tomcat启动脚本

[root@Xuegod63 ~]# vim /etc/init.d/tomcat

  1. #!/bin/bash
  2. # tomcat startup script for the Tomcat server
  3. # chkconfig: 345 80 20
  4. # description: start the tomcat deamon
  5. # Source function library
  6. prog=tomcat
  7. JAVA_HOME=/usr/local/java/
  8. export JAVA_HOME
  9. CATALANA_HOME=/usr/local/tomcat/
  10. export CATALINA_HOME
  11. case "$1" in
  12. start)
  13. echo "Starting Tomcat..."
  14. $CATALANA_HOME/bin/startup.sh
  15. ;;
  16. stop)
  17. echo "Stopping Tomcat..."
  18. $CATALANA_HOME/bin/shutdown.sh
  19. ;;
  20. restart)
  21. echo "Stopping Tomcat..."
  22. $CATALANA_HOME/bin/shutdown.sh
  23. sleep 2
  24. echo
  25. echo "Starting Tomcat..."
  26. $CATALANA_HOME/bin/startup.sh
  27. ;;
  28. *)
  29. echo "Usage: $prog {start|stop|restart}"
  30. ;;
  31. esac
  32. exit 0

[root@xuegod63 ~]# chmod +x /etc/init.d/tomcat
[root@xuegod63 ~]# service tomcat start
[root@xuegod63 ~]# chkconfig —add tomcat
[root@xuegod63 ~]# chkconfig tomcat on

查看端口,tomcat默认是8080端口

  1. [root@Tomcat ~]# lsof -i:8080
  2. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
  3. java 31259 root 49u IPv6 465528 0t0 TCP *:webcache (LISTEN)

关闭tomcat方法
[root@Tomcat ~]# /usr/local/tomcat/bin/shutdown.sh

二、配置 Tomcat Web 管理界面

:::info 此处也是以下问题的解决方法:
TomcatWeb端403 Access Denied You are not authorized to view this page解决方法(Tomcat 10.2.12 版本) ::: 为了使用在上一步安装的 manager webapp,我们必须添加一个登录到我们的 Tomcat 服务器。

1、修改 tomcat-users.xml 文件:

vim /usr/local/tomcat/conf/tomcat-users.xml
在标签内添加以下信息:

  1. <role rolename="manager"/>
  2. <role rolename="manager-gui"/>
  3. <role rolename="manager-jmx"/>
  4. <role rolename="manager-status"/>
  5. <role rolename="manager-script"/>
  6. <user username="admin" password="admin" roles="manager,manager-gui,manager-jmx,manager-status,manager-script"/>

2、配置webapps下的两个context.xml

:::warning 注意: 重启 Tomcat 后再次访问 Manager Status 或 Manager App 页面,不出意外的话还是会报 403 Access Denied 错误的,为什么呢?我们再认真看看报错信息:

  • 访问 Manager Status 或 Manager App 页面时的报错信息:

If you wish to modify this restriction, you’ll need to edit the Manager’s context.xml file.

  • 访问 Host Manager 页面时的报错信息:

If you wish to modify this restriction, you’ll need to edit the Host Manager’s context.xml file. :::

此时才明白403页面说的 context.xml 并非 $CATALINA_HOME/conf/ 下的 context.xml 文件,
而是

$CATALINA_HOME/webapps/manager/META-INF/context.xml 
$CATALINA_HOME/webapps/host-manager/META-INF/context.xml

这两个文件,全部修改 RemoteAddrValve 的值:

<Valve className="org.apache.catalina.valves.RemoteAddrValve"                         
    allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />    
<Valve className="org.apache.catalina.valves.RemoteAddrValve"  
    allow="\d+\.\d+\.\d+\.\d+" />

如下图所示:
image.png

重启 Tomcat 服务:

service tomcat restart

打开浏览器在地址栏输入服务器 IP地址:8080 。
http://192.168.8.142:8080

点击 Server Status 或 Manager App 页面,需要登录,此时输入 tomcat-users.xml 文件设置的用户及密码:
image.png
登录成功后 Server Status 可以查看服务器状态:
image.png
Manager App 可以在Web页面上部署项目:
image.png
而 Host Manager 页面需要再次进行登录(密码相同)可以管理虚拟主机:
image.png

2、 修改Tomcat监听端口

  1. [root@Tomcat ~]# vim /usr/local/tomcat/conf/server.xml
  2. 69 <Connector port=”80” protocol=”HTTP/1.1” ——把8080改成80的话,重启后就监听80端口
  3. 70 connectionTimeout=”20000”
  4. 71 redirectPort=”8443” />

    3、目录布署

    Tomcat的数据目录(网站家目录)
    /usr/local/tomcat/webapps/ROOT/

  5. 把test目录与ROOT同级或者是在ROOT的下一级都是可行的

  6. [root@Tomcat ~]# mkdir /usr/local/tomcat/webapps/test —目录名字可自定义
  7. [root@Tomcat ~]# vim /usr/local/tomcat/webapps/test/index.jsp —自定义页面内容,如下面的话(不要写中文)
  8. welcome to here!

    4、使用浏览器打开网页进行测试

  9. [root@Tomcat ~]# firefox http://192.168.1.20/test/ —这个是端口改为80的打开浏览器网页的方法

  10. [root@Tomcat ~]# firefox http://192.168.1.20:8080/test/ —这个是端口为8080的打开浏览器网页的方法

image.png

三、搭建Java应用系统

1. 环境介绍

linux + apache + php + mysql —lamp环境这是php环境
linux + nginx + php + mysql —lnmp环境这是php环境
linux + tomcat + jsp + mysql —ljtm环境这是java环境

2. 软件包

jdk-8u161-linux-x64.tar.gz —java包
apache-tomcat-9.0.5.tar.gz —tomcat包
mysql-connector-java-5.1.45.tar.gz —tomcat连接mysql的工具包
jsprun_6.0.0_GBK.zip —java语言开发的应用系统(网上可以自行下载)

3. 开始部署

第一步:解压应用系统

  1. 解压应用系统:
  2. [root@Tomcat ~]# unzip jsprun_6.0.0_GBK.zip -d /usr/local/tomcat/webapps/
  3. 更改名称:
  4. [root@Tomcat ~]# cd /usr/local/tomcat
  5. [root@Tomcat tomcat]# mv ./webapps/JspRun!_6.0.0_GBK/ ./webapps/jsprun/
  6. 移动应用至前面文件夹:
  7. [root@Tomcat tomcat]# cd /usr/local/tomcat/webapps/jsprun/
  8. [root@Tomcat jsprun]# mv upload/* ./

第二步:下载、解压java连接mysql的工具包

  1. [root@Tomcat ~]# wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.45.tar.gz
  2. [root@Tomcat ~]# tar xvf mysql-connector-java-5.1.45.tar.gz -C /usr/src/
  3. 解压后,把连接工具拷到tomcat的应用目录
  4. [root@Tomcat ~]# cd /usr/src/mysql-connector-java-5.1.45/
  5. [root@Tomcat mysql-connector-java-5.1.45]# cp /usr/src/mysql-connector-java-5.1.45/mysql-connector-java-5.1.45-bin.jar /usr/local/tomcat/webapps/jsprun/WEB-INF/

第三步:安装mysql数据库(注意:CentOS 7版本开始,系统自带的数据库为mariadb,已经舍弃mysql数据库)

  1. [root@Tomcat ~]# yum -y install mariadb*
  2. [root@Tomcat ~]# id mysql
  3. uid=27(mysql) gid=27(mysql) 组=27(mysql)
  4. 如果没有mysql这个用户,手工创建一个mysql用户
  5. [root@Tomcat ~]# groupadd -g 27 mysql
  6. [root@Tomcat ~]# useradd -u 27 mysql -g mysql
  7. 启动数据库
  8. [root@Tomcat ~]# systemctl restart mariadb
  9. 登陆数据库,创建java应用所需要的帐号和库
  10. [root@Tomcat ~]# mysql # 登录数据库
  11. MariaDB> create database bbs; # 创建bbs库
  12. MariaDB> show databases ; # 查看所有库
  13. MariaDB> grant all on bbs.* to ‘bbs’@’localhost’ identified by ‘123’; # 授权
  14. MariaDB> flush privileges; # 刷新
  15. MariaDB> select user,host,password from mysql.user; # 查看user表允许登录的用户

第五步:修改java应用配置连接数据库

  1. [root@Tomcat ~]# vim /usr/local/tomcat/webapps/jsprun/config.properties
  2. dbhost = localhost # 修改数据库地址
  3. dbport=3306 # 端口
  4. dbuser = bbs # 连接用户名
  5. dbpw = 123 # 密码
  6. dbname = bbs # 库名
  7. pconnect = 0 # 持久连接
  8. tablepre = jrun_
  9. database = mysql
  10. dbcharset =
  11. charset = gbk
  12. headercharset = 0
  13. tplrefresh = 1 # 风格模板自动刷新开关
  14. version=5.1

第六步:重启tomcat才能生效

  1. [root@Tomcat ~]# /usr/local/tomcat/bin/shutdown.sh —关闭omcat
  2. Using CATALINA_BASE: /usr/local/tomcat
  3. Using CATALINA_HOME: /usr/local/tomcat
  4. Using CATALINA_TMPDIR: /usr/local/tomcat/temp
  5. Using JRE_HOME: /usr/local/java
  6. Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
  7. [root@Tomcat ~]# /usr/local/tomcat/bin/startup.sh —启动tomcat
  8. Using CATALINA_BASE: /usr/local/tomcat
  9. Using CATALINA_HOME: /usr/local/tomcat
  10. Using CATALINA_TMPDIR: /usr/local/tomcat/temp
  11. Using JRE_HOME: /usr/local/java
  12. Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
  13. Tomcat started.

第七步:使用浏览器打开访问安装
[root@Tomcat ~]# firefox http://192.168.1.20:8080/jsprun/install.jsp —注意这里后面的jsprun和install.jsp要自己输出来(如果没有改端口的话还要加上端口)
image.png

然后按照图形指引安装步骤下一步即可。

四、模块调度举例

1. 使用 Apache 的 ajp 模块调用进行调度后面两台 Apache

image.png

第一步:先在调度机上的 apache 配置

  1. [root@Apache ~]# yum -y install httpd*
  2. [root@Apache ~]# vim /etc/httpd/conf.d/proxy_ajp.conf # 注意,centos 7下没有这个文件,但是也是支持 proxy_ajp 的,所以自己建立一个这个文件就可以了
  3. ProxyPass /apache balancer://apache/ # 定义一个负载调度的名字,这个 apache 后面要加/,否则就只能调网站家目录的主页,而不能调家目录的其它文件
  4. BalancerMember http://10.1.1.128 # 成员 128
  5. BalancerMember http://10.1.1.129 # 成员 129 ,如果 129 的端口为 8080 ,则就写http://10.1.1.129:8080就可以了
  6. [root@Apache ~]# systemctl restart httpd.service —启动Apache

扩展一:
ProxyPass /apache balancer://apache/ # proxypass 后面不是/,而是/tomcat

BalancerMember http://10.1.1.128
BalancerMember http://10.1.1.129:8080

这样实现的是当客户端访问http://192.168.1.200/apache时才会调度,如果访问http://192.168.1.200的话,则还是 192.168.1.200 上的网站
扩展二:
实现访问http://192.168.1.200/apache/调度给 128 和 129:8080
访问http://192.168.1.200/test/调度给 130 和 131:8081
访问http://192.168.1.200的话,则还是访问 192.168.1.200
ProxyPass /apache balancer://apache/

BalancerMember http://10.1.1.128
BalancerMember http://10.1.1.129:8080

ProxyPass /abc balancer://test/

BalancerMember http://10.1.1.130
BalancerMember http://10.1.1.131:8081
第二步:在两台后台 web 服务器上也安装 httpd,并做一个不同的主页方便测试

  1. 在 128 上操作:
  2. [root@Apache1 ~]# yum -y install httpd*
  3. [root@Apache1 ~]# echo 128 > /var/www/html/index.html
  4. 在 129 上操作:
  5. [root@Apache2 ~]# yum -y install httpd*
  6. [root@Apache2 ~]# echo 129 > /var/www/html/index.html

第三步:在Apache调度机上访问http://192.168.1.20/apache,就可以实现调度

2. 使用 Apache 的 ajp 模块调用进行调度后面两台 Tomcat

image.png

第一步:先在 Apache 调度机上配置

  1. [root@Apache ~]# yum -y install httpd*
  2. [root@Apache ~]# vim /etc/httpd/conf.d/proxy_ajp.conf
  3. ProxyPass /tomcat balancer://tomcat/ # 定义一个调度,随便写
  4. BalancerMember ajp://10.1.1.128:8009/ route=tomcat1 # 定义消息路由,名字自定义 BalancerMember ajp://10.1.1.129:8009/ route=tomcat2
  5. [root@Apache ~]# systemctl restart httpd.service —启动Apache

第二步:分别在被调度机 Tomcat 上加上消息路由

  1. 在 128 上的 Tomcat1 上操作:
  2. [root@Tomcat1 ~]# vim /usr/local/tomcat/conf/server.xml
  3. 128
  4. 在 128 的 tomcat 这一句后面加上 jvmRoute=”tomcat1”,名字和调度机上的对应

  5. [root@Tomcat1 ~]# /usr/local/tomcat/bin/shutdown.sh
  6. [root@Tomcat1 ~]# /usr/local/tomcat/bin/startup.sh
  7. 在 129 上的 Tomcat2 上操作:
  8. [root@Tomcat2 ~]# vim /usr/local/tomcat/conf/server.xml
  9. 128
  10. 在 128 的 tomcat 这一句后面加上 jvmRoute=”tomcat2”,名字和调度机上的对应

  11. [root@Tomcat2 ~]# /usr/local/tomcat/bin/shutdown.sh
  12. [root@Tomcat2 ~]# /usr/local/tomcat/bin/startup.sh

第三步:在 Apache 调度机上访问http://192.168.1.20/tomcat,就可以实现调度
(1)它支持健康检查,当一台挂掉,就不调度它,当它 OK 了,需要对 apache reload 一下,才能再重新都调度两台。
(2)tomcat1 和 tomcat2 监听的端口是 80 还是 8080 都可以,因为是由 8009 调过来的。
(3)在两台的tomcat的index.jsp 主页里做两个不同的标记:

  1. 在 128 上的 Tomcat1 上操作:
  2. [root@Tomcat1 ~]# echo 128 >> /usr/local/tomcat/webapps/ROOT/index.jsp
  3. 在 129 上的 Tomcat2 上操作:
  4. [root@Tomcat2 ~]# echo 129 >> /usr/local/tomcat/webapps/ROOT/index.jsp

最后,在 Apache 调度机上访问http://192.168.1.20/tomcat,就可以实现调度,看到效果。

3. mod_jk 结合 Apache+Tomcat 实现负载均衡,动静分离

image.png

在完成两台Tomcat1,Tomcat2的安装之后,实现负载均衡,使用mod_jk可以实现节点的故障恢复功能,即一个节点出现问题,mod_jk会其不参与负载,在节点故障恢复后,mod_jk会让其参与负载,对此节点是否失败,对用户而言是透明的。
实现流程:

  • (1)用户访问数据达到Apache后,如果是静态内容,Apache立即回应;
  • (2)如果Apache发现用户请求的是动态内容如jsp,就将请求丢给其中的一台tomcat来处理。
  • (3)每次用户重复访问时,都被分配到同一台机器上(可以做会话粘滞或是会话复制)

负责负载均衡的主要是由一个配置文件完成!那就是workers.propertise。通过定义worker.list,port,host,type,lbfactor的值来定义每一台Tomcat的主机;通过lbfactor来区别每台机器的权重,权重数值越大得到的用户请求数就越多。所以,只要重点关注这个文件的内容就行了。
第一步:实验前准备写/etc/hosts记录

  1. [root@Apache ~]# echo “10.1.1.1 Apache.com” >> /etc/hosts
  2. [root@Apache ~]# echo “10.1.1.128 Tomcat1.com” >> /etc/hosts
  3. [root@Apache ~]# echo “10.1.1.129 Tomcat2.com” >> /etc/hosts
  4. [root@Apache ~]# scp /etc/hosts 10.1.1.128:/etc/hosts —远程拷贝 /etc/hosts 文件到128机子
  5. [root@Apache ~]# scp /etc/hosts 10.1.1.129:/etc/hosts —远程拷贝 /etc/hosts 文件到129机子

时间同步:详见CentOS 7.3 Xinetd服务的安装与配置(https://blog.51cto.com/13525470/2060765)
关闭 iptables,selinux
第二步:在 Tomcat1 和 Tomcat2 上安装好 Tomcat
详见上面部分
第三步:在 Apache调度机上安装 Apache,下面是源码版的做法

  1. 如果以前编译过 Apache,先使用下面两条命令把源码和安装路径全删除
  2. [root@Apache ~]# rm -rf /usr/src/httpd-2.4.28/
  3. [root@Apache ~]# rm -rf /usr/local/apache2/
  4. [root@Apache ~]# tar xf httpd-2.4.28.tar.bz2 -C /usr/src —解压编译安装
  5. [root@Apache ~]# cd /usr/src/httpd-2.4.28/
  6. [root@Apache ~]# ./configure —prefix=/usr/local/apache2 —enable-so —enable-rewrite —enable-modules=all —enable-mods-shared=all —with-mpm=prefork
  7. [root@Apache ~]# make && make install
  8. 上面的编译参数,可以不加—enable-proxy,—enable-proxy-ajp,—enable-proxy-balancer。因为,我们这里是使用 mod_jk 的。

第四步:在 Apache 调度机上编译 mod_jk 模块

  1. [root@Apache ~]# wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.42-src.tar.gz
  2. http://tomcat.apache.org/download-connectors.cgi —上面的包(mod_jk)下载地址
  3. [root@Apache ~]# tar xf tomcat-connectors-1.2.42-src.tar.gz -C /usr/src/
  4. [root@Apache ~]# cd /usr/src/tomcat-connectors-1.2.42-src/
  5. [root@Apache ~]# ls —这里面 conf 里有配置的模版,native 目录里可以与 apache 的 apxs 指令编译出 mod_jk 模块
  6. conf HOWTO-RELEASE.txt LICENSE NOTICE support xdocs
  7. docs jkstatus native README.txt tools
  8. [root@Apache ~]# cd native/
  9. [root@Apache ~]# ./configure —with-apxs=/usr/local/apache2/bin/apxs —源码版的编法
  10. [root@Apache ~]# make && make install
  11. [root@Apache ~]# ls /usr/local/apache2/modules/mod_jk.so —编译后产生 mod_jk 模块

第五步:配置 Apache 主配置文件,使其使用 mod_jk 的子配置文件

  1. [root@Apache ~]# vim /usr/local/apache2/conf/httpd.conf
  2. Include conf/extra/httpd-jk.conf # 主配置文件加上这一句

第六步:拷贝要用到的配置文件模版

  1. —拷贝 mod_jk 的配置文件模版到对应的 apache 配置目录
  2. [root@Apache ~]# cp /usr/src/tomcat-connectors-1.2.42-src/conf/httpd-jk.conf /usr/local/apache2/conf/extra/
  3. —拷贝定义调度的配置文件模版
  4. [root@Apache ~]# cp /usr/src/tomcat-connectors-1.2.42-src/conf/workers.properties /usr/local/apache2/conf/extra/
  5. —拷贝定义动静分离的配置文件模版
  6. [root@Apache ~]# cp /usr/src/tomcat-connectors-1.2.42-src/conf/uriworkermap.properties /usr/local/apache2/conf/extra/

第七步:配置这三个配置文件

  1. [root@Apache ~]# vim /usr/local/apache2/conf/extra/httpd-jk.conf
  2. 28 JkWorkersFile conf/extra/workers.properties # 因为我拷到 conf/extra,所以这里改成对应的路径
  3. 99 JkMountFile conf/extra/uriworkermap.properties # 打开注释
  4. 115 SetEnvIf REQUEST_URI”.(htm|html|css|gif|jpg|js)$”no-jk # 打开注释
  5. JkMountjk-status
  6. Orderdeny,allow
  7. Deny from all
  8. Allowfrom 127.0.0.1 192.168.1.20 # 加上允许 192.168.1.20 查看 jk-status
  9. JkMount jk-manager
  10. Order deny,allow
  11. Deny from all
  12. Allowfrom 127.0.0.1 192.168.1.20 # 加上允许 192.168.1.20 查看 jk-manager
  13. [root@Apache ~]# vim /usr/local/apache2/conf/extra/workers.properties
  14. worker.list=balancer
  15. worker.balancer.type=lb
  16. worker.balancer.balance_workers=node1 # 指定的后面被调度的jvmroute
  17. worker.node1.reference=worker.template
  18. worker.node1.host=10.1.1.128 # 后面被调度的 tomcat 的 IP
  19. worker.node1.port=8009 # 改成 8009
  20. worker.node1.activation=A
  21. worker.balancer.balance_workers=node2
  22. worker.node2.reference=worker.template
  23. worker.node2.host=10.1.1.129 # 另一台的 IP
  24. worker.node2.port=8009 # 改为 8009
  25. worker.node2.activation=A
  26. worker.template.type=ajp13
  27. [root@Apache ~]# vim /usr/local/apache2/conf/extra/uriworkermap.properties
  28. /admin/*=balancer # 这些目录下的所有文件都交给 balancer 去调度
  29. /manager/*=balancer
  30. /jsp-examples/*=balancer
  31. /servlets-examples/*=balancer
  32. /examples/*=balancer
  33. /.jsp=balancer # 表示 apache 家目录下.jsp 就给 balancer 去进行后台两个 tomcat 的调度

第八步:部署网站内容
一个网站,在 Apache 和后台 Tomcat 的家目录里都要部署相同的内容,实际情况可以使用共享存储。
我这里就把 Tomcat 里的内容拷过来
要注意的是目录的对应
我现在编译版 Apache 的家目录为默认的/usr/local/apache2/htdocs/
所以我现在在 Tomcat1 上操作:
把下面目录所有文件拷到 Apache 的家目录
[root@Tomcat1 ~]# scp -r /usr/local/tomcat/webapps/ROOT/ 10.1.1.1:/usr/local/apache2/htdocs/
*第九步:配置两台 Tomcat 的 jvmroute

  1. 在 Tomcat1 上操作
  2. [root@Tomcat1 ~]# vim /usr/local/tomcat/conf/server.xml
  3. 在 Tomcat2 上操作:
  4. [root@Tomcat2 ~]# vim /usr/local/tomcat/conf/server.xml

第十步:启动服务

  1. 在1上的 Apache 上操作:
  2. [root@Apache ~]# /usr/local/apache2/bin/apachectl restart
  3. 在 128 上的 Tomcat1 上操作:
  4. [root@Tomcat1 ~]# /usr/local/tomcat/bin/shutdown.sh
  5. [root@Tomcat1 ~]# /usr/local/tomcat/bin/startup.sh
  6. 在 129 上的 Tomcat2 上操作:
  7. [root@Tomcat2 ~]# /usr/local/tomcat/bin/shutdown.sh
  8. [root@Tomcat2 ~]# /usr/local/tomcat/bin/startup.sh

第十一步:测试
最后
[root@Tomcat1 ~]# scp -r /usr/local/tomcat/webapps/jsprun/ apache.com:/usr/local/apache2/htdocs/
再访问
http://10.1.1.1/jsprun
会看到所有的文件都以列表形式显示,因为默认 Apache 访问的主页为 index.html。所以http://10.1.1.1/jsprun/index.jsp访问,就可以访问 OK 了。