linux下apache+tomcat部署项目

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010956470/article/details/53034230

1、tomcat 安装(略)

2、apache 安装

参考文章: linux下安装apache详解
其中要修改-so为-proxy
这里写图片描述

3、tomcat 配置

假设项目路径放在/usr/local/getjia/mobile/下,
tomcat安装在/usr/local/tomcat/下,
为了不把项目直接放在webapps下面,需要在/usr/local/tomcat/conf/server.xml文件中的Host标签(最后的位置)中添加Context标签,path指的是访问项目路径,docBase指的是项目文件具体位置,配置完重启tomcat即可访问。

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
    <Context path="/mobile" docBase="/usr/local/getjia/mobile/" privileged="true"></Context>
</Host>

4、apache 配置

假设apache安装在/usr/local/apache/下,
打开/usr/local/apache/conf/http.conf 配置文件添加相关配置

ServerRoot "/usr/local/apache"
Listen 80
ServerName localhost:80
#如果监听多个servername的80端口,需要开启
#NameVirtualHost *:80
<VirtualHost *:80>
  DocumentRoot "/usr/local/getjia/"
  ServerName www.test.com


  <Directory "/usr/local/getjia/">
  Order Deny,Allow
  Allow from all
  </Directory>

  <Proxy ajp://localhost:8009*>
    Allow from all
  </Proxy>
  # 静态文件直接经过apache访问,不经tomcat
  ProxyPass        /mobile/css/ !
  ProxyPass        /mobile/images/ !
  ProxyPass        /mobile/js/ !  
  # 通过ajp跳转到tomcat项目
  ProxyPass        /mobile   ajp://localhost:8009/mobile
  ProxyPassReverse /mobile   ajp://localhost:8009/mobile
</VirtualHost>

这个配置的结果是,当我们访问www.test.com/mobile时,首先请求到apache服务器,apache将请求跳转,访问tomcat对应项目下的首页,如果该首页请求了对应的css/images/js时,apache将相关路径的文件访问不经tomcat,而是通过DocumentRoot 和Directory配置的路径来将请求跳转,并查找相对应的文件。这样的结果可以大大提高页面刷新的速度。
待完善的地方:apache缓存文件的时间
至此,项目的配置基本就完成了。

另外(关于shell脚本)

开发前期会经常更新服务器,而且也为了更新的方便,我们会写一个shell脚本来代替繁琐的操作,直接通过执行执行脚本,来一键部署并备份原来的项目。
前提是我们要将项目的war包上传至/usr/local/getjia/temp/下,并修改相关的文件名。
脚本程序如下:

#!/bin/sh
###############################
#FileName:updateMobile.sh
#Function:备份并更新mobile项目
#Author:huangxiaojie
#Date:2016.09.02
###############################
#定义文件夹
time=`date +%Y_%m_%d_%H_%M_%S`
mobile="/usr/local/getjia/mobile"
mobileDir="/usr/local/getjia/backup/${time}_mobile"
temp="/usr/local/getjia/temp/${time}_temp"
mobileWar="/usr/local/getjia/temp/sc-getjia-web-site.war"
#创建文件夹
echo "创建备份文件夹${mobileDir}"
mkdir ${mobileDir}
echo "创建临时文件夹${temp}"
mkdir ${temp}
#备份
echo "备份${mobile}至${mobileDir}"
\cp -rf ${mobile} ${mobileDir}
#清空temp目录
rm -rf ${temp}/*
#解压并替换mobile
echo "解压${mobileWar}至${temp}"
unzip -oq ${mobileWar} -d ${temp}
echo "开始更新项目"
\cp -ru ${temp}/* ${mobile}
echo "删除临时文件夹${temp}"
rm -rf ${temp}
echo "结束更新项目"

给updateMobile.sh添加执行权限命令:
chmod +x updateMobile.sh
执行脚本文件命令:
./updateMobile.sh

猜你喜欢

转载自blog.csdn.net/u010956470/article/details/53034230
今日推荐