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说明:
<Direcotry />
Options FollowSymLinks(表示允许访问目录,如果要禁止目录访问,则添加上”Indexes”)
AllowOverride None(None表示.htaccess方件将被完全忽略,当此指令设置为All时,所具有的.htaccess作用域的指令都允许出现)
Require all denied(表示禁示所有访问,允许所有访问改为”granted”)
</Direcotry>
⑨ 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中新建如下
<VirtualHost *:80> ServerName www.apachetest1.com ServerAdmin t1@qq.com DocumentRoot /home/apacheTest/apache/test1 ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> <VirtualHost *:80> ServerName www.apachetest2.com ServerAdmin t2@qq.com DocumentRoot /home/apacheTest/apache/test2 ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> <VirtualHost *:80> ServerName www.apachetest3.com ServerAdmin t3@qq.com DocumentRoot /home/apacheTest/apache/test3 ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
(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配置文件如下
<Directory /home/apacheTest/apache/test1/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory /home/apacheTest/apache/test2/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory /home/apacheTest/apache/test3/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
注意:
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中新建一条信息如下
<VirtualHost *:80>
ServerName www.apache-test.com
ServerAdmin apache-test@qq.com
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处理)
</VirtualHost>
② 修改hosts文件进行域名配置
172.26.60.12 www.apache-test.com
③ apache2.conf 中添加如下数据
<Directory /home/apacheTest/setup/tomcat/webapps/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
④ 修改/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. <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />设置与apache通信端口”8010”,此端口为workers.properties中prop对应值
b. <Engine name="Catalina" defaultHost="localhost" jvmRoute="apache-test">只需修改jvmRoute中值,为项目名称。
至此: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均完毕。