最近由于项目需要,对apache与tomcat进行整合进行了学习,现将学习记录如下,方便自己以后查阅,同时也方便有需要的同学做为参考。
整合环境 :系统:ubuntu 18.04
apache版本: Apache/2.4.29 (Ubuntu)
tomcat版本: 8.5.31
java版本:1.8
一、卸载apache(如果电脑中已经安装过apache,则可通过以下指令进行卸载。)
(1)sudo apt-get remove apache*
(2)sudo find /etc/ -name "*apache" | xargs rm -rf
(3)sudo rm -rf /var/www
(4)sudo rm -rf /etc/libapache2-mod-jk/
二、安装apahce
(1) sudo apt-get install apache2
(2)apache2 -v(查看apache2版本信息)
(3)cd /etc/apache2 (可查看到apache2文件夹有如下信息)
(4)service apache2 status(查看apache2状态,显示如下信息)
(5)打开浏览器输入localhost(看到如下信息表示apache2已经安装成功)
(6) apache常用快捷键
Service apache2 start;
Service apache2 stop;
Service apache2 restart;
Service apache2 status;
三、apache2 配置文件说明
1. cd /etc/apache2(apache2配置都在此文件夹)
2. apache2.conf(apache2的主要配置文件)
(1) 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”)
</Direcotry>
⑨ IncludeOptional conf-enabled/*.conf(引入文件,文件位置为/etc/apache2/con-enabled)
⑩ IncludeOptional sites-enabled/*.conf(引入文件,文件位置为/etc/apache2/sites-enabled)
(2) ports.conf
① Listen 80 :表示监听80端口,默然的http请求访问端口,可修改此端口
② Listen 443:表示监听443端口,默然https请求访问端口
(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端口请求
四、apache2配置多个虚拟主机
(1)在上一步sites-available中的test.conf中新建如下
<VirtualHost *:80> 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 </VirtualHost> <VirtualHost *:80> 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 </VirtualHost> <VirtualHost *:80> 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 </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> |
*值得注意的点是:hosts中域名必须与test.conf中设置的serverName保持一致
apache.conf中Directory中访问路径必须与test.conf中的DocumentRoot 保持一致
4) 打开浏览器分别访问 www.apachetest1.com, www.apachetest2.com, www.apachetest3.com,分别能看到对应test文件定义的index.html中的内容.
至此,apache配置多个虚拟机已经完成。
五、apache2整合tomcat
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 [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处理) </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)整合测试
①打开浏览器,输入localhost:8080/apache-test访问结果如下
②打开浏览器,输入www.apache-test.com/apache-test访问结果如下
可以看到两次访问结果都一样。
③打开浏览器,输入www.apache-test.com:8080访问结果如下
可以看到通过apache中配置的域名访问8080端口,打开了tomcat主页,说明apache的请求被转发至tomcat处理。
至此:apache的安装、配置、配置多个虚拟主机、整合tomcat均完毕。