Nginx环境搭建、负载均衡测试
系统环境:
win10,IDEA2020,JDK8
一、nginx环境搭建
1.ngxin下载
Nginx官网下载: http://nginx.org/en/download.html
Nginx有三种版本,分别是Mainline version(开发版)、Stable version(稳定版)、Legacy versions(早期版本)。一般选用稳定版本。
Linux使用时选用中间的版本下载然后通过Xftp或Filezilla工具上传到Linux服务器上即可。也可以从浏览器上复制下载文件的URL地址后在服务器中使用wget命令进行下载。
下载的是个zip包,解压到文件夹即可。
2. nginx的启停
启动:可以双击nginx.exe
停止:打开nginx文件夹,在地址栏输入cmd,然后回车打开命令终端,输入
nginx -s stop
验证:输入网页localhost,出现nginx的欢迎页面则启动成功。
二、负载均衡测试
1.先用IDEA创建一个Springboot+Thymeleaf的项目。
File==>New ==>Project
修改pom文件:
修改application.yml文件:
java
server:
port: 8080
spring:
thymeleaf:
# 关闭thymeleaf的缓存
cache: false
# 文件的地址
prefix: classpath:/templates/
# 文件的后缀名
suffix: .html
# 是否启用thymeleaf
enabled: true
controller文件代码:
java
@Controller
public class NginxTestController {
@Value("${server.port}")
private String port;
@RequestMapping("/")
public ModelAndView index(){
ModelAndView model = new ModelAndView();
model.addObject("port", port);
model.setViewName("index");
return model;
}
}
index.html文件代码:
java
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div style="border: 2px solid red;margin: auto;width: 800px;text-align: center">
<div id="nginx_title">
<h1>欢迎来到XXX高级会所,我是<span th:text="${port}"></span> 号!</h1>
</div>
</div>
</body>
</html>
修改nginx的配置文件(conf/nginx.conf):
java
upstream nginx_boot{
# 30s内检查心跳发送两次包,未回复就代表该机器宕机,请求分发权重比为1:2
server 192.168.0.000:8080 weight=100 max_fails=2 fail_timeout=30s;
server 192.168.0.000:8090 weight=200 max_fails=2 fail_timeout=30s;
# 这里的IP请配置成你WEB服务所在的机器IP
}
server {
location / {
root html;
# 配置一下index的地址。
index index.html index.htm index.jsp index.ftl;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 请求交给名为nginx_boot的upstream上
proxy_pass http://nginx_boot;
}
}
修改完配置文件需要重启nginx。
下面我们启动两个web服务:
测试:
nginx负载均衡
可以看到,一次80的端口两次90的端口。负载均衡测试成功。