tomcat部署多个项目,tomcat部署java,tomcat部署前端(亲测可用)

1. 介绍

粗鄙的介绍:tomcat,很好用,可以跑java服务,也可以跑前端服务。但是都是要打包后的。

tomcat 在linux和windows上都可以运行。

2. 下载

官网地址 :https://tomcat.apache.org/

进入官网后,左侧有download,点需要的版本,然后在右边找到Binary Distributions,我下载的是Core的版本。

3. jdk和jre环境配置

  • 进入 /tomcat/bin 目录

  • 编辑 setclasspath.bat 文件

  • 在第二个分割线之后(建议),添加java环境变量

set JAVA_HOME=/home/java/jdk1.8.0_291   # 你自己的jdk安装目录,bin目录的上一层
set JRE_HOME=/home/java/jdk1.8.0_291/jre	# 你自己的jre安装目录,可以使用jdk里自带的
  • 保存后退出

4. 日志编码格式

作用:(避免日志乱码)

  • 进入 /tomcat/conf 目录
  • 编辑 logging.properties 文件
java.util.logging.ConsoleHandler.encoding = GBK # 把日志打印的字符编码改成GBK,原来是UTF-8

5. 服务配置

  • 进入 /tomcat/conf 目录

  • 编辑 server.xml 文件…原配置文件里有很多注释掉的东西,我直接删除了,下边附上简单易懂的配置文件。

注意: 建议把原始配置文件备份,然后新配置文件直接粘贴下方内容。。。多个service标签可同级并存(即可配置多个服务)

5.1 java服务

3个步骤:改完配置文件,运行一下,然后把war包丢进去。运行方式参考 6.

  • 改配置文件(重新运行后生效)

在下方,主要是 Service 这一组标签里的内容

  • 运行

参考6。运行后,会在/tomcat 目录下生成 java-browser 这个目录(服务1的工程名称,我的是java-browser

  • 部署

把 java打的war包改名成 ROOT.war,丢进这个目录里,即部署完成

<?xml version="1.0" encoding="UTF-8"?>

<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

  <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>

<!--服务1,放browser-->
  <Service name="java-browser">
<!--服务1的端口,就是java服务的端口-->
    <Connector port="6061" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
<!--服务1在conf里的工程名称-->
    <Engine name="java-browser" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
<!--服务1的工程名称-->
      <Host name="localhost"  appBase="java-browser"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>
    </Engine>
  </Service>
	
</Server>

5.2 前端服务

3个步骤:改完配置文件,运行一下,然后把index.html 整组文件丢进去。运行方式参考 6.

  • 改配置文件(重新运行后生效)

在下方,主要是 Service 这一组标签里的内容

  • 运行

参考6。运行后,会在/tomcat 目录下生成 web-browser 这个目录(服务2的工程名称,我的是web-browser

  • 部署

web-browser 目录下新建一个ROOT 目录,把前端内容丢进去(直接放index.html就是能直接访问了)。注意,如果是VUE项目,会有一个坑。

  • 解决vue项目 刷新404坑请看文章最下方。
<?xml version="1.0" encoding="UTF-8"?>

<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

  <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>

<!--服务2,放前端-->
  <Service name="web-browser">
<!--服务2的端口,通过这个端口访问前端页面-->
    <Connector port="8082" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
<!--服务2在conf里的工程名称-->
    <Engine name="web-browser" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
<!--服务2的工程名称-->
      <Host name="localhost"  appBase="web-browser"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>
    </Engine>
  </Service>
    
</Server>

6. 运行

  • windows上运行:

进入/tomcat/bin 目录,双击 startup.bat 文件

  • linux上运行:

进入 /tomcat/bin 目录, 命令 ./catalina.sh start 运行

查看是否启动成功(日志)
进入/tomcat/log 目录,命令 tail -f ./catalina.out

7. 停止

  • windows上运行:

进入/tomcat/bin ,双击 startup.bat 文件

  • linux上运行:

进入 /tomcat/bin , 命令 ./catalina.sh stop 停止

PS : 问题解决

前端vue项目打包后,是一个dist目录,将这个目录里的文件,全部放在ROOT 文件夹下,并且配置,即可通过tomcat访问。

进入非主业后,刷新会404。。需要进行设置(2步)

  • 改前端的router

前端工程中,route -->index.js

export default new Router({
    mode:'histroty',	//注意这里,把mode改成history
})
  • 添加一个配置文件

/tomcat/web-browser/ROOT 目录下(就是你前端tomcat的ROOT 目录),新建一个WEB-INF 文件夹,创建一个web.xml文件,内容如下.

web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0"
  metadata-complete="true">

  <display-name>webapp</display-name>
  <description>
     webapp
  </description>
  <error-page>  
   <error-code>404</error-code>  
   <location>/</location>  
</error-page>  
</web-app>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值