SpringBoot nginx 负载均衡环境搭建

1: 下载并解压 nginx.zip

修改配置文件 nginx.conf

添加

upstream distribute {

server localhost:10010;

server localhost:10086;

}

修改原有的 location 为

location / {

proxy_pass http://distribute;

}

进入 cmd 使用命令 start nginx 启动服务

nginx -t 检查配置是否错误

其他命令

nginx -s stop 关闭服务

nginx -s reload 在运行状态下修改了配置之后 使用该命令重新加载配置,不需要重启服务

2: 在idea 中创建一个 springBoot 项目 ,我使用的是社区版 没有 init 工具 ,可以先创建一个 空的maven 工程手动添加 对应的 代码和配置文件路径

点 create 之后会去下载对应的 插件

3: 修改maven 路径 修改settings.xml 配置本地仓库路径和阿里云仓库路径

<mirror>

<id>aliyunmaven</id>

<mirrorOf>*</mirrorOf>

<name>maven aliyun</name>

<url>https://maven.aliyun.com/repository/public\</url>

</mirror>

重新reimport 一下

4: 编写代码 修改客户端为支持运行多实例以及集成日志

项目的子包要放在和启动类同一级别的目录下 这是springboot默认的包扫描规则,不在同一级别要手动扫描

复制代码
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class LockDemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(LockDemoApplication.class, args);
    }
}

application.properties

复制代码
server.port=10010
logging.config=classpath:logback.xml

logback.xml

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <contextName>logback</contextName>
    <!--输出到控制台-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!--按天生成日志-->
    <appender name="logFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <Prudent>true</Prudent>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>
                applog/%d{yyyy-MM-dd}/%d{yyyy-MM-dd}.log
            </FileNamePattern>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>
                %d{yyyy-MM-dd HH:mm:ss} -%msg%n
            </Pattern>
        </layout>
    </appender>
    <!-- logger节点,可选节点,作用是指明具体的包或类的日志输出级别,以及要使用的<appender>(可以把<appender>理解为一个日志模板)。addtivity:非必写属性,是否向上级loger传递打印信息。默认是true-->
    <logger name="com.leshangju.project" additivity="false">
        <appender-ref ref="console"/>
        <appender-ref ref="logFile"/>
    </logger>

    <root level="info">
        <appender-ref ref="console"/>
        <appender-ref ref="logFile"/>
    </root>

</configuration>

pom.xml

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.2.1</version>
        <relativePath/>
    </parent>
    <groupId>org.wl.study</groupId>
    <artifactId>lockDemo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </dependency>
    </dependencies>
    <!-- maven 打包运行插件 -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

搭建完成之后 修改 idea 的 配置 使其支持多个实例启用

点开之后 候选上 允许多实例运行并且添加启用端口

修改端口号和服务名称 在启用一个实例 然后 通过页面访问 ,检查控制台日志 ,发现 负载均衡生效了

相关推荐
.格子衫.19 小时前
Spring Boot 原理篇
java·spring boot·后端
多云几多19 小时前
Yudao单体项目 springboot Admin安全验证开启
java·spring boot·spring·springbootadmin
摇滚侠21 小时前
Spring Boot 3零基础教程,Spring Intializer,笔记05
spring boot·笔记·spring
Jabes.yang1 天前
Java求职面试实战:从Spring Boot到微服务架构的技术探讨
java·数据库·spring boot·微服务·面试·消息队列·互联网大厂
摇滚侠1 天前
Spring Boot 3零基础教程,Demo小结,笔记04
java·spring boot·笔记
Lucky GGBond1 天前
Vue + Spring Boot 实现 Excel 导出实例
vue.js·spring boot·excel
seven97_top1 天前
Springboot 常见面试题汇总
java·spring boot·后端
foundbug9991 天前
查看nginx日志文件
linux·nginx·github
瑶山1 天前
社区版Idea怎么创建Spring Boot项目?Selected Java version 17 is not supported. 问题解决
java·spring boot·intellij-idea·创建项目
陈小桔1 天前
SpringBoot之配置文件
spring boot