Ubuntu16.04下Apache和tomcat服务器的整合
Posted haiyoushenmemingzi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu16.04下Apache和tomcat服务器的整合相关的知识,希望对你有一定的参考价值。
1.区别
Apache是一个Web服务器,只支持静态网页,也可以用作文件的存储和访问,但是动态网页就无法处理了。
Tomcat可以作为独立的web服务器来运行,也可以是应用(java)服务器(用来跑Java应用),是一个Servlet容器。
由于Apache解释静态页面要比tomcat快速而且稳定,网站可以使用一个Apache作为Web服务器,为网站的静态页面请求提供服务;同时使用Tomcat服务器作为一个Servlet/JSP插件,显示网站的动态页面。
2.怎么整合
整合:所有访问都先经过Apache,Apache经过筛选,把符合一定规则的请求转发给Tomcat进行处理。
Apache中有一个模块叫module_jk,专门负责做转发的工作,该模块以动态库的形式存在,需要的时候才进行加载。Tomcat在Apache端叫做worker,module_jk一般通过8009的TCP端口跟Tomcat使用AJP协议进行通信。
3.经验【划重点】
(1)如果你只是单纯地写一个后台服务,然后想开一个图片托管(存储)或类似的文件存储和访问,那么只用tomcat就可以了,不需要费劲进行两个服务器一起用。只需要把要管理的文件(图片)放到tomcat的webapps目录下,访问路径就能获取到对应的文件(图片)。
(2)如果你想apache使用80和443(默认是8443的),tomcat使用8080和443,那就不用试了,443会冲突起不来。(需求来源:不想要带端口访问,而是直接用域名,还都得是https)
(3)如果碰到安装过程或者启动过程出错的,那么思考一下原因,复制一下报错信息,搜索一下解决方法。
4.整合步骤
(1)安装Java环境,官网下载JDK并安装
(2)安装apache服务器(httpd安装)。
官网下载链接:http://httpd.apache.org/download.cgi
安装教程:https://www.cnblogs.com/chevin/p/10222681.html
在bin目录下执行命令: ./httpd -k start
访问80端口查看安装是否成功。
(3)安装tomcat服务器。
官网下载链接:http://tomcat.apache.org/
解压:tar -zxvf XXX.tar.gz
名字太长了重命名:mv 原名字 新名字(比如tomcat7)
挪位置:mv tomcat7 路径(比如/usr/local)
XXXX 参见教程: https://blog.csdn.net/jenyzhang/article/details/70159769
启动tomcat : sudo ./bin/startup.sh
【怎么找Java安装路径】:update-alternatives --config java (whereis Java 有的时候没用)
【看tomcat的module】:到安装目录下的modules里面查看有什么module 比如这里是:/usr/local/tomcat7/modules
【日志】:在安装目录的logs里面,比如这里是: /usr/local/tomcat7/logs 启动日志:catalina.log
(4)整合
源教程来自,可直接访问:https://www.jianshu.com/p/2547f295b6a2
【注意】:下面涉及到的路径,请根据自己的实际安装路径来。
【查看端口开启状况】:使用命令 lsof -i:8080
一、安装mod_jk.so并配置
1.安装mod_jk
# apt-get install libapache2-mod-jk
安装完后,在/etc/apache2/mods-enabled下会多出一个jk.load文件,重启apache2后,apache自动装载这个文件以加载mod_jk
2.找到worker配置文件
# vi jk.conf
找到JkWorkersFile:
JkWorkersFile /etc/libapache2-mod-jk/workers.properties
说明了jk_worker的配置文件为/etc/libapache2-mod-jk/workers.properties,要将tomcat作为一个worker就得修改这个文件。
3.在Apache端设置worker
# vi /etc/libapache2-mod-jk/workers.properties
(1)修改worker名称为mytomcat
a.找到worker.list:
worker.list=ajp13_worker
b.将文件中所有ajp13_worker替换成mytomcat
(2)设置mytomcat运行环境
tomcat和jdk的安装目录,以便worker能正常运行
workers.tomcat_home=/usr/share/apache-tomcat-8.5.35
workers.java_home=/usr/share/jdk1.8.0_131
(3)设置转发规则(如果没有的可以新建一个)
vi /etc/apache2/sites-available/000-default.conf
在VirtualHost标签末尾添加:JkMount /examples/* mytomcat
<VirtualHost *:80>
...
JkMount /examples/* mytomcat
</VirtualHost>
意思是凡是/examples/开头的链接请求都交给mytomcat处理,如:http://192.168.1.155/examples/index.html
examples的路径位于tomcat目录下:/usr/share/apache-tomcat-8.5.35/webapps/examples
/**到此Apache端的配置完成,需要修改的文件:
jk.load (mod_jk加载设置,可能要改)
jk.conf (mod_jk设置,可能要改)
workers.properties (worker设置,必须要改)
sites-available/000-default.conf (转发规则设置,必须要改)**/
二、在tomcat端设置worker
#vi /usr/share/apache-tomcat-8.5.35/conf/server.xml
1.修改worker名称
修改Engine标签为:
<Engine name="Catalina" defaultHost="localhost" jvmRoute="mytomcat">
这样Apache和tomcat就能通过8009端口,使用AJP1.3协议进行通信了
2.检查监听端口是否是8009,协议是否跟Apache端设置一样(AJP1.3(apache端为ajp13))
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
三、功能验证
1.重启apache
到httpd目录下重启: ./httpd -k restart
2.重启tomcat
到bin目录下执行shutdown.sh
到bin目录下执行startup.sh
3.浏览器请求
以上是关于Ubuntu16.04下Apache和tomcat服务器的整合的主要内容,如果未能解决你的问题,请参考以下文章