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