Nginx 负载均衡
前言
本环境是基于 Centos 7.8 系统构建Nginx学习环境
具体构建,请参考 Nginx-1.18.0 环境部署
Nginx 作为一款非常优秀的web服务器。不仅仅拥有web服务的功能,它还提供强大的反向代理、负载均衡,已经成为web集群,高可用性能的重要解决方案之一。接下来,我将详细介绍Nginx的负载均衡。
一、Nginx 负载均衡
设计架构
负载均衡的优势 ?
- 把单台计算机无法承受的大规模并发访问或数据流量分担到多台节点设备上,分别进行处理, 减少用户等待响应的时间, 提升用户体验。
- 单个重负载的运算分担到多台节点设备上做并行处理, 每个节点设备处理结束后, 将结果汇总, 返回给用户, 系统处理能力得到大幅度提高。
- 7 x 24 小时的服务保证, 任意一个或多个有限后面节点设备宕机, 不能影响业务。在负载均衡集群中, 同组集群的所有计算机节点都应该提供相同的服务。 集群负载均衡器会截获所有对该服务的入站请求。 然后将这些请求尽可能地平均地分配在所有集群节点上
二、实战案例
环境准备
role | host | ip | nginx-version | OS |
---|---|---|---|---|
nginx upstream host | node01 | 192.168.5.11 | Nginx-1.18.0 | Centos 7.8 |
nginx web server | node02 | 192.168.5.12 | Nginx-1.18.0 | Centos 7.8 |
nginx web server | node02 | 192.168.5.12 | Nginx-1.18.0 | Centos 7.8 |
nginx web server | node02 | 192.168.5.12 | Nginx-1.18.0 | Centos 7.8 |
nginx client1 | node03 | 192.168.5.13 | ---- | Centos 7.8 |
nginx client2 | windows 7 Ultimate. | 192.168.5.7 | ---- | windows 7 Ultimate. |
node02 部署基于nginx的三个虚拟主机 的web服务
[root@node02 ~]# mkdir /usr/share/nginx/html/web_page_{1..3}
[root@node02 ~]# echo 'web 1 test page...' > /usr/share/nginx/html/web_page_1/index.html
[root@node02 ~]# echo 'web 2 test page...' > /usr/share/nginx/html/web_page_2/index.html
[root@node02 ~]# echo 'web 3 test page...' > /usr/share/nginx/html/web_page_3/index.html
[root@node02 ~]# vim /etc/nginx/conf.d/vhost.conf
server {
listen 81;
server_name web1.wan.org;
location / {
root /usr/share/nginx/html/web_page_1;
index index.html index.htm;
}
}
server {
listen 82;
server_name web2.wan.org;
location / {
root /usr/share/nginx/html/web_page_2;
index index.html index.htm;
}
}
server {
listen 83;
server_name web3.wan.org;
location / {
root /usr/share/nginx/html/web_page_3;
index index.html index.htm;
}
}
[root@node02 ~]# systemctl restart nginx
node01 配置nginx负载均衡
[root@node01 ~]# vim /etc/nginx/conf.d/vhost.conf
upstream www_web_server_pools {
server web1.wan.org:81 weight=1;
server web2.wan.org:82 weight=1;
server web3.wan.org:83 weight=1;
}
server {
listen 192.168.5.11:80;
server_name www.wan.org;
location / {
proxy_pass http://www_web_server_pools;
}
}
[root@node01 ~]# systemctl restart nginx
测试
添加hosts文件
windows 7 Ultimate. 浏览器访问:http://www.wan.org/
刷新
继续刷新
继续刷新
继续刷新
继续刷新
node03测试
添加hosts文件
[root@node03 ~]# vim /etc/hosts
192.168.5.11 www.wan.org
192.168.5.12 web1.wan.org web2.wan.org web3.wan.org