SpringBoot项目部署到nginx
准备好Maven项目
修改pom.xml打包方式为war
将tomcat依赖改为 provided
<!--tomcat-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
配置maven打包
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<!--如果想在没有web.xml文件的情况下构建WAR,请设置为false。-->
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
修改配置文件的端口号
server:
#端口号
port: 8081
找到maven-》项目名——》Lifecycle——》package,
双击packege 项目会自动打包
打包成功后项目的target目录会出现一个war包
再打一个8082端口的war包,一会配置负载均衡时用
然后准备两个tomcat
将项目打成war包,放到webapps里面,两个tomcat都要放
这是我的项目war包
打开conf目录下的server.xml
端口号8080改为8081,和项目中的端口号匹配
<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8081" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"/>
host标签代码如下:docBase路径为8081项目路径
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="/" docBase="D:\software\tomcat\tomcat-8081\webapps\blog-8081-1" reloadable="false"></Context>
</Host>
第二个tomcat相同配置
但要注意:防止端口冲突,所有端口号加1
docBase路径为8082端口项目路径
启动两个tomcat
双击bin目录下的startup.bat
浏览器查看端口是否启动
启动后开始配置负载,打开nginx的conf文件
upstream 项目名
下面8081,8082是需要nginx代理的端口号 weight设置权重,都是1的话就是,每一个端口号出现的次数是50%
server中listen是nginx的端口号,当nginx代理成功后,访问8080端口,server_name是主机ip地址,本地的话是127.0.0.1或localhost,远程的话是ip地址proxy_pass是上面upstream 项目名 中的项目名
配置静态资源 root中写的是静态资源的路径
我这里就是把静态资源都放到了nginx下的html
配置成功后
命令行cmd启动nginx
发现8080端口代理了8081和8082