Tomcat多端口部署多个SpringBoot应用

一、Tomcat开启多个端口

找到conf目录中server.xml
比如添加9090端口,在server.xml中添加

   <Service name="Catalina2">
    <Connector port="9090" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
     
    <Engine name="Catalina2" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      Realm>
      <Host name="localhost"  appBase="webapps_second"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b" />
            Host>
    Engine>   
    Service>

其中 service name 和 engine name需要和之前的service name 和 engine name不同

二、SpringBoot设置

SpringBoot Application继承SpringBootServletInitializer

public class Application extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(Application.class);
    }
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

Maven依赖:

导出方式为war包

<packaging>warpackaging>

不把tomcat放进最后导出的包中

<dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-tomcatartifactId>
        <scope>providedscope>
dependency>

application.properties中添加:

spring.jmx.enabled=false

三、直接用jar包部署SpringBoot项目

后台运行

nohup java -jar  xxx.jar >xxx.log 2>&1 & 

后台启动xxx.jar并且在当前目录下新建xxx.log存放日志

使用jar部署需要注意 目录问题
默认根目录为 static templates
比如static/css/x.css
直接css/x.css 如果使用/css/x.css默认情况会无法访问
thymeleaf中
需要用ModelAndView返回页面,String可能解析不了

你可能感兴趣的:(SpringBoot)