天天看点

在阿里云ECS上部署Apache和Tomcat并整合一、基本环境安装准备二、安装module_jk并进行配置三、在Tomcat中设置worker四、功能验证

首先需要购买阿里云ECS服务器。我购买的是低配置,OS为Ubuntu18.04。

本文中所有的命令操作均是以Putty连接到ECS服务器后进行的操作。

一、基本环境安装准备

要运行Tomcat,首先要确认有没有安装Java。运行命令:

java --version           

如果输出下面的字样,证明已经安装了Java。

openjdk 11.0.3 2019-04-16           

上面证明我安装的是OpenJDK,如果是Oracle JDK输出的可能是其它字样。

如果没有安装的话,可以使用apt-get install命令安装openjdk。

apt-get install default-jdk           

安装Tomcat和apache2。

安装apache2使用命令:

apt-get install apache2           

Tomcat是从apache官网下载的8.5.1,直接解压到/usr/local目录下。

启动Apache和Tomcat,分别访问如下:

在阿里云ECS上部署Apache和Tomcat并整合一、基本环境安装准备二、安装module_jk并进行配置三、在Tomcat中设置worker四、功能验证
在阿里云ECS上部署Apache和Tomcat并整合一、基本环境安装准备二、安装module_jk并进行配置三、在Tomcat中设置worker四、功能验证

下面重点介绍Tomcat和Apache的整合。

Tomcat虽然也提供了WebServer的功能,但是一般只用作调试使用,其主要功能还是处理Servlet,作为Servlet容器使用。对于Web的处理还是Apache的Httpd这专业的WebServer更优秀。

要整合,就需要将所有的HTTP请求都经过Apache的筛选,把符合一定规则的请求转发给Tomcat处理。这其中需要的模块是module_jk,专门负责转发工作,这个模块是以动态库形式存在,需要的时候才进行加载。而Tomcat相对于Apache叫worker,一般通过8009的TCP端口使用AJP协议和Tomcat通信。

二、安装module_jk并进行配置

安装命令如下:

apt-get install libapache2-mod-jk           

安装后在/etc/apache2/mods-enabled目录下会多出一个jk.load文件,文件内容就是标准的apache加载模块的LoadModule命令。重启Apache2会自动加载这个模块。

在阿里云ECS上部署Apache和Tomcat并整合一、基本环境安装准备二、安装module_jk并进行配置三、在Tomcat中设置worker四、功能验证

在同一个目录有一个jk.conf文件,它是对mod_jk的相关配置,如下图:

在阿里云ECS上部署Apache和Tomcat并整合一、基本环境安装准备二、安装module_jk并进行配置三、在Tomcat中设置worker四、功能验证

从上面的配置文件我们可以确认,jk_worker的配置文件/etc/libapache2-mod-jk/workers.properties,要将Tomcat作为一个Worker就得修改这个文件。编辑这个文件,会看到一个worker.list,默认是ajp13_worker,如果你不喜欢可以将此名字进行修改,如果不想修改一定要记住,后面的配置会使用。如果修改就得将文件中的所有地方都修改为统一的名字如myworker什么的。如果在替换,在vi的命令模式输入如下的命令即可:

:%s#ajp13_worker#myworker#g           

然后回车即完成全文替换。

另外还要修改Tomcat和JDK目录,如下:

在阿里云ECS上部署Apache和Tomcat并整合一、基本环境安装准备二、安装module_jk并进行配置三、在Tomcat中设置worker四、功能验证

然后设置apache2的转发规则,

vi /etc/apache2/sites-available/000-default.conf           

在VirtualHost节点的未尾添加转发规则(一条或多条),如下图:

在阿里云ECS上部署Apache和Tomcat并整合一、基本环境安装准备二、安装module_jk并进行配置三、在Tomcat中设置worker四、功能验证

这条规则的意思是把所有的/examples/和/MyWebApp/的请求转交给tomcat处理。

整个配置中涉及和可能修改的文件列表如下:

  • /etc/apache2/mods-enabled/jk.load
  • /etc/apache2/mods-enabled/jk.conf
  • /etc/libapache2-mod-jk/workers.properties
  • /etc/apache2/sites-available/000-default.conf

    其中jk.load/jk.conf是mod_jk的加载和配置,可能会修改。workers.properties是worker设置,必须修改。000-default.conf转发规则,必须修改。

三、在Tomcat中设置worker

修改Engine节点。添加worker名称,如下图:

在阿里云ECS上部署Apache和Tomcat并整合一、基本环境安装准备二、安装module_jk并进行配置三、在Tomcat中设置worker四、功能验证

并确定8009端口已监听协议为AJP1.3。

四、功能验证

进行上述配置后,需要重启tomcat和apache2。

systemctl stop apache2
systemctl start apache2           

进入tomcat的主目录,然后进入bin目录。执行

./shutdown.sh
./startup.sh &           

打开浏览器,输入

http://xxx.xxx.xxx.xxx/examples/
在阿里云ECS上部署Apache和Tomcat并整合一、基本环境安装准备二、安装module_jk并进行配置三、在Tomcat中设置worker四、功能验证

我再也不为输入:8080就可以访问tomcat了。如果我在tomcat上布置了其它应用,通过apache2的转发规则,直接就可以访问了,如我的MyWebApp。如下图:

在阿里云ECS上部署Apache和Tomcat并整合一、基本环境安装准备二、安装module_jk并进行配置三、在Tomcat中设置worker四、功能验证