一个Tomcat发布多个Springboot项目流程记录


一、首先,讲项目打包成war,如果是jar包,修改如下

1、修改pom.xml,

<packaging>war</packaging>

2、主启动类继承SpringBootServletInitializer,重写configure方法

/** * SprintBootApplication */ @Slf4j @SpringBootApplication @EnableCaching @EnableScheduling public class BootApplication extends SpringBootServletInitializer { public static void main(String[] args) { ApplicationContext context = SpringApplication.run(BootApplication.class, args); String serverPort = context.getEnvironment().getProperty("server.port"); log.info("webstarted at http://localhost:" + serverPort); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(BootApplication.class); } }

至此即可,不需要排除tomcat  jar包,排除也行,添加serverlet api支持

二、在磁盘任何位置,创建一个web-project(名称随便,主要是用来放多个项目)文件夹,比如,我们放一个叫做pan的项目,一个execute(一个是百度云盘网站,一个是爬虫执行器)

 

三、修改tomcat  conf  下面的service.xml,如果觉得源文件注释太多,可以直接删除,我是觉得那个注释看着眼花

xxxxx\tomcat8.5\conf

 

四、复制Servies节点,顺便做个优化

<Service name="Catalina.execute"> <Connector port="9911" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="600" minSpareThreads="100" maxSpareThreads="500" acceptCount="700" compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla, traviata" compressableMimeType="text/html,text/xml,text/javascript,application/javascript,text/css,text/plain,text/json" connectionTimeout="20000" redirectPort="8443" /> <Engine name="Catalina.execute" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="false"> <Context path="" docBase="C:\Users\gqsu\Desktop\web-project\execute" debug="0" reloadable="false"/> <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>

Connector节点属性,主要是配置最大线程、链接超时时间、开启GZIP压缩等功能,以及非阻塞式NIO协议。有不清楚的,可直接百度

重点:

配置Context节点,path相当于访问路径,为空,就相当于Springboot项目,Path为 / 一样,输入ip+端口即可访问

docBase,项目的绝对路径

reloadable 改为false,避免频繁重启。也不清楚为什么,本来没对class文件修改,但就是动不动重启,索性关了。一般情况下,对class文件也不会频繁改动,如果改了,重启tomcat就行

另一个项目,再复制一个Service节点,改一下端口和项目路径即可。一般情况下,不建议都配置到80端口,如果觉得这样做域名映射不方便,可以在前面再加个Nginx,让Nginx监听80端口,后端服务都由Nginx做个代理。

配置如下

## 任务调度中心
	upstream job{
		server ip:端口;
	}
	
	
	server{
		listen 80;
		server_name www.520mwx.com;
		
		location / {
			proxy_pass http://job;
			index  index.html index.htm;
		}
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM