在服务器上部署java web项目,免不了重启,每次重启总会影响到其他部署在tomcat容器上的项目
1.将tomcat下的conf、logs、temp、webapps、work复制到你要部署项目的文件夹下(我的是/var/sites/appliance/,下面提到前路径都用appliance代替)
2.删除appliance/webapps下的全部内容,将你的项目编译好的代码和页面上传到appliance/webapps/ROOT下
3.删除appliance/conf/Catalina下的内容,不然在启动的时候会报找不到项目的错误。
4.修改appliance/conf/server.xml
<?xml version='1.0' encoding='utf-8'?>
<Server port="8001" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JasperListener" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
<Connector port="8091" protocol="HTTP/1.1"
connectionTimeout="20000" URIEncoding="UTF-8"
redirectPort="8443" />
<Connector port="8011" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Host name="localhost" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"/>
</Engine>
</Service>
</Server>
修改红色字的那两个端口,8091是通过该端口接收HTTP请求,第二个是通过8011端口接收由其它服务器转发过来的请求
5.创建appliance/bin/文件夹,并在下面创建启动和关闭的脚本(start.sh和stop.sh)
start.sh
export CATALINA_HOME=/var/tomcat //tomcat安装的路径
export CATALINA_BASE=/var/sites/appliance //项目路径
$CATALINA_HOME/bin/startup.sh -Dcatalina.base //启动命令
tail -f /var/sites/appliance/logs/catalina.out //查看控制台输出
stop.sh
export CATALINA_HOME=/var/tomcat
export CATALINA_BASE=/var/sites/appliance
$CATALINA_HOME/bin/shutdown.sh -Dcatalina.base
6.整合apache,在apache配置文件上httpd.conf追加
#NameVirtualHost *:80
#The configure of TomCat
<VirtualHost *:80>
ServerName appliance.appgether.com
DocumentRoot /var/sites/appliance/webapps/ROOT
#Entrus httpd to do
ProxyPass /images !
ProxyPass /resources !
ProxyPass /styles !
ProxyPass /scripts !
ProxyPass /resouces !
ProxyPass / http://localhost:8091/
ProxyPassReverse / http://localhost:8091/
ErrorLog "logs/appliance-access.log"
</VirtualHost>