Table of Contents
2.4 后台分别启动两个Springboot项目(通过nohup)
由于服务器数量不足,故此处采用不同端口进行模拟多台服务器
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)远程访问负载均衡生效