1. 简介
最近由于项目需要,对apache与tomcat进行整合进行了学习,现将学习记录如下,方便自己以后查阅,同时也方便有需要的同学做为参考。
2.环境要求
系统 | ubutun 18.04 |
tocmat | 8.5.31 |
jdk | 1.8 |
3.环境准备
3.1 卸载apache
$ sudo apt-get remove apache*
$ sudo find /etc/ -name "*apache" | xargs rm -rf
$ sudo rm -rf /var/www
$ sudo rm -rf /etc/libapache2-mod-jk/
3.2 安装apahce
$ sudo apt-get install apache2
# 查看版本信息
$ apache2 -v
$ cd /etc/apache2
$ service apache2 status
运行状态显示如下:
访问浏览器输入localhost,出现如下图所示,表示apache已经安装成功 :
3.3 apache常用快捷键
$ Service apache2 start;
$ Service apache2 stop;
$ Service apache2 restart;
$ Service apache2 status;
4. apache2 配置文件说明
4.1 主要配置(apache2.conf)
$ cat /etc/apache2/apache2.conf
① ServerRoot “/etc/apache2”: 表示apache2的安装路径,不需要修改
② Timeout 300: 接受和发送timeout的时间
③ KeepAlive on: 是否允许保持连接
④ MaxKeepAliveRequests 100: 每个连接的最大请求数,0表示无限制
⑤ User ${APPACHE_RUN_USER}: apache的用户,配合/etc/apache2/envvars进行修改,也可直接修改
⑥ Group ${APPACHE_RUN_GROUP}: apacher用户组,修改和User一样
⑦ Include ports.conf: 引入监听端口配置文件,/etc/apache2/ports.conf
⑧ Direcotry说明:
Options FollowSymLinks(表示允许访问目录,如果要禁止目录访问,则添加上”Indexes”)
AllowOverride None(None表示.htaccess方件将被完全忽略,当此指令设置为All时,所具有的.htaccess作用域的指令都允许出现)
Require all denied(表示禁示所有访问,允许所有访问改为”granted”)
⑨ IncludeOptional conf-enabled/*.conf: 引入文件,文件位置为/etc/apache2/con-enabled
⑩ IncludeOptional sites-enabled/*.conf: 引入文件,文件位置为/etc/apache2/sites-enabled
4.2 端口配置(ports.conf)
① Listen 80 :表示监听80端口,默然的http请求访问端口,可修改此端口
② Listen 443:表示监听443端口,默然https请求访问端口
4.3 虚拟主机配置(Sites-avaliable)
① touch test.conf,将000-default.conf中文件拷贝至test.conf中
② sudo ln -s /etc/apach2/sites-avaliable/test.conf /etc/apache2/sites-enable/test.conf(建立软链接)
③ ServerAdmin 管理员邮箱
④ DocumentRoot 配置虚拟访问路径
⑤ ServerName 配置虚拟主要域名
⑥ VirtualHost *:80 表示访问80端口请求
5. apache2配置多个虚拟主机
5.1 在上一步sites-available中的test.conf中新建如下
ServerName www.apachetest1.com ServerAdmin [email protected] DocumentRoot /home/apacheTest/apache/test1 ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined ServerName www.apachetest2.com ServerAdmin [email protected] DocumentRoot /home/apacheTest/apache/test2 ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined ServerName www.apachetest3.com ServerAdmin [email protected] DocumentRoot /home/apacheTest/apache/test3 ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined |
(1) 建三个虚拟主机,访部域名为随便设置的三个,分别如下:
www.apachetest1.com
www.apachetest2.com
www.apachetest3.com
(2) 新建三个域名需要配置相应的hosts,vi /etc/hosts,在其中新建三条数据信息
127.0.0.1 www.apachetest1.com
127.0.0.1 www.apachetest2.com
127.0.0.1 www.apachetest3.com
(3) 修改apache2.conf配置文件如下
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
注意:
1.hosts中域名必须与test.conf中设置的serverName保持一致
2. apache.conf中Directory中访问路径必须与test.conf中的DocumentRoot 保持一致
(4) 打开浏览器分别访问 www.apachetest1.com, www.apachetest2.com, www.apachetest3.com,分别能看到对应test文件定义的index.html中的内容,至此,apache配置多个虚拟机已经完成。
6.apache2整合tomcat
6.1安装apache2-mod-jk及相关配置(整合apache2与tomcat需要用此链接)
(1) sudo apt-get install libapache2-mod-jk
(2) cd /etc/apache2/mods-enabled 发现有jk.conf和jk.load
(3) cd /etc/libapache2-mod-jk文件下有workers.properties文件
(4)jk.conf文件说明
① JkWorkersFile /etc/libapache2-mod-jk/workers.propertie,表示workers.properties文件,后续会用到此文件
② 在文件中新建一条信息JkMount apache-test
(5)配置整合信息
① 在sites-avaliable文件中的test.conf中新建一条信息如下
ServerName www.apache-test.com
ServerAdmin [email protected]
DocumentRoot /home/apacheTest/setup/tomcat/webapps
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
JkMount /* apache-test(设置那些请求是通过apache转发至tomcat处理,这儿未做拦截,全部交给tomcat处理)
② 修改hosts文件进行域名配置
172.26.60.12 www.apache-test.com
③ apache2.conf 中添加如下数据
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
④ 修改/etc/libapache-mod-jk/worker.properties
workers.java_home=/home/apacheTest/setup/java(配置java安装路径)
workers.tomcat_home=/home/apacheTest/setup/tomcat(配置tomcat安装路径)
worker.list=ajp13_worker,apache-test(为需要访问的项目名)
worker.apache-test.port=8010(端口号,此端口号必须与tomct中配置端口号一致)
worker.apache-test.host=www.apache-test.com(访问域名,必须与test.conf中serverName保持一至)
worker.apache-test.type=ajp13(访问协议)
完成上述配置,apache端配置完成,注意每次设置了hosts和apache中配置都需要重启服务和网络;
重启网络方法:/etc/init.d/networkering restart
重启服务方法: service apache2 restart
⑤ 修改tomcat中配置
1)将项目打报成war包
2)放至在tomcat/webapps文件夹中
3)设置tomcat/conf/server.xml
a.
b.
至此:tomcat整合apache完毕
6.2 测试
①打开浏览器,输入localhost:8080/apache-test访问结果如下
②打开浏览器,输入www.apache-test.com/apache-test访问结果如下
可以看到两次访问结果都一样。
③打开浏览器,输入www.apache-test.com:8080访问结果如下
可以看到通过apache中配置的域名访问8080端口,打开了tomcat主页,说明apache的请求被转发至tomcat处理。
至此:apache的安装、配置、配置多个虚拟主机、整合tomcat均完毕。