SpringBoot+Nginx负载均衡集群搭建

Table of Contents

1.服务器安装JDK环境

2.创建SpringBoot应用

2.1应用初始化:

2.2 mvn打包(与pom同目录)

2.3 java 包上传

​2.4 后台分别启动两个Springboot项目(通过nohup)

2.5 两个SpringBoot项目已启动

3.Nginx安装

4. 补充

5.Reference

 


由于服务器数量不足,故此处采用不同端口进行模拟多台服务器

 

1.服务器安装JDK环境

(1)上传JDK压缩包至服务器(从官网下载,地址:https://www.oracle.com/java/technologies/javase-jdk14-downloads.html

(2)解压JDK

tar -xzvf jdk-8u251-linux-x64.tar.gz

(3)配置环境变量

# step1: vim /etc/profile:
export JAVA_HOME=/root/jdk1.8.0_251
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=.:${JAVA_HOME}/bin:$PATH

# step2: source /etc/profile

# step3: java -version 确认是否配置成功 

java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)

 

2.创建SpringBoot应用

2.1应用初始化:

(1)controller层

/**
 * @ClassName HelloController
 * @Author Gavin
 * @Date 2020/4/29
 **/
@RestController
public class HelloController {

    @Autowired
    HelloService helloService;

    @RequestMapping("/hello")
    public String index() {
        return helloService.hello();
    }



(2)service层

/**
 * @ClassName HelloService
 * @Author Gavin
 * @Date 2020/4/29
 **/

@Service
public class HelloService {

    @Autowired
    Environment environment;

    public String hello(){

        String port = environment.getProperty("local.server.port");
        InetAddress localHost = null;
        try {
            localHost = Inet4Address.getLocalHost();
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }

        String ip = localHost.getHostAddress();
        return String.format("hello World, Ip:%s   Port:%s",ip,port);
    }

}

(3)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 https://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>2.2.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

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

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

(4)application.properties 两个应用除了该文件端口不一致外,其他完全一致。

# 第一个应用
server.port=7001

# 第二个应用
server.port=7002

2.2 mvn打包(与pom同目录)

将两个应用分别打包,生成两个jar

mvn clean package

2.3 java 包上传

2.4 后台分别启动两个Springboot项目(通过nohup)

nohup java -jar demo-0.0.1-SNAPSHOT.jar >springboot.log 2>&1 &

2.5 两个SpringBoot项目已启动

 

3.Nginx安装

(1)基于apt-get安装

   1)apt-get update

   2)apt-get install nginx

(2)默认安装位置

(3)配置代理

(4) Nginx配置文件重载

nginx -s reload

(5)Nginx关闭,重新启动

   1)nginx -s quit

   2) /usr/sbin/nginx -c /etc/nginx/nginx.conf 

(6)访问,Bingo!!!反向代理成功

4. 补充

Nginx server_name可以配置为IP,由于这里用的阿里云ECS服务,但是没有买域名,配置IP后就可以直接外网访问

(1)修改Nginx.config

(2)远程访问负载均衡生效

 

5.Reference

[1]https://www.cnblogs.com/memoryXudy/p/7778101.html

[2]https://www.cnblogs.com/EasonJim/p/7806879.html

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了在Spring Boot中使用HTTPS,你需要进行以下几个步骤: 1. 首先,确保你的Nginx服务器已经安装了SSL模块,并且已经配置好了HTTPS。你可以参考中提供的链接来了解如何判断Nginx是否安装了SSL模块以及如何配置HTTPS。 2. 接下来,你需要在Spring Boot应用程序中配置SSL。生成证书是配置SSL的一部分。你可以参考中的说明来生成证书。 3. 一旦你生成了证书,你可以在Spring Boot应用程序的配置文件中指定证书的路径和密码。你可以使用以下配置来启用HTTPS: ```properties server.port=443 server.ssl.key-store=/path/to/your/keystore.p12 server.ssl.key-store-password=your_password server.ssl.keyStoreType=PKCS12 ``` 在上述配置中,你需要将`/path/to/your/keystore.p12`替换为你生成的证书的实际路径,并将`your_password`替换为你设置的证书密码。 4. 完成上述配置后,你的Spring Boot应用程序将在HTTPS协议下运行。你可以使用浏览访问应用程序的URL,它应该是`https://your_domain`。 希望这些步骤能够帮助你在Spring BootNginx中成功使用HTTPS。如果你还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Win10:SpringBoot+Vue+Nginx前后端分离](https://blog.csdn.net/chenyang_wei/article/details/127653574)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [springboot+vue+nginx 配置Https访问——自签名证书验证](https://blog.csdn.net/The_mighty_tiger/article/details/121856300)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值