基于centos7.9通过nginx实现负载均衡以及反向代理

摘要:负载均衡: 负载均衡是一种技术,用于在多个服务器之间分发传入的网络流量,以平衡服务器的负载,提高系统的可用性和性能。当您有多台服务器时,您可以使用负载均衡将请求分发到这些服务器上,从而防止单个服务器过载而影响用户体验。

反向代理: 反向代理是一种服务器配置,它将传入的客户端请求转发到后端服务器,并将响应从后端服务器返回给客户端。在负载均衡环境中,反向代理位于客户端和后端服务器之间。客户端将请求发送到反向代理,然后反向代理将请求转发到一个或多个后端服务器。反向代理还可以执行其他任务,如 SSL 终止、安全性增强、缓存等。

总结:在配置 Nginx 的负载均衡时,您将配置反向代理服务器,该服务器将负责将传入的请求分发给后端服务器。这种配置可以提高系统的可伸缩性和稳定性。通常情况下,您会使用 Nginx 的 upstream 指令定义后端服务器列表,并使用 location 块将请求转发给这些后端服务器。

1.安装nginx(三台主机全部需要)

bash 复制代码
上传rpm包,使用yum安装
[root@node1 ~]# yum install nginx-1.22.0-1.el7.ngx.x86_64.rpm  -y

2.配置两台测试的web服务器(两台web服务器node3和node4都执行)

bash 复制代码
[root@node3 ~]# cd /etc/nginx/conf.d/
[root@node3 conf.d]# mv default.conf{,.bak}
[root@node3 conf.d]# vim vhost.conf
# 配置虚拟主机
server  {
  listen  80;
  server_name     bbb.itxuan.com;
  location / {
    root /usr/share/nginx/html/bbb;
    index   index.html      index.htm;
  }
  access_log /usr/share/nginx/html/bbb/logs/access_bbb.log main;
}


server  {
  listen  80;
  server_name     www.itxuan.com;
  location / {
    root /usr/share/nginx/html/www;
    index   index.html      index.htm;
  }
  access_log /usr/share/nginx/html/www/logs/access_www.log main;
}

3.配置web测试页(node3,node4都执行)

bash 复制代码
[root@node3 conf.d]# mkdir -p /usr/share/nginx/html/{www,bbb}/logs
[root@node3 conf.d]# echo "`hostname -I ` www" > /usr/share/nginx/html/www/index.html
[root@node3 conf.d]# echo "`hostname -I ` bbb" > /usr/share/nginx/html/bbb/index.html

4.启动服务进行测试

bash 复制代码
[root@node1 ~]# systemctl start nginx
[root@node1 ~]# curl -H host:bbb.itxun.com 192.168.136.164
192.168.136.164  bbb
[root@node1 ~]# curl -H host:bbb.itxun.com 192.168.136.163
192.168.136.163  bbb

5.配置node1端的负载均衡

bash 复制代码
[root@node1 ~]# vim /etc/nginx/conf.d/default.conf 
upstream www_server_pools{
        server  192.168.136.163:80;
        server  192.168.136.164:80;
}
server {
    listen       80;
    server_name  www.itxuan.com;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
    #   root   /usr/share/nginx/html;
    #   index  index.html index.htm;
        proxy_pass      http://www_server_pools;
 }

nginx检查并重启服务

[root@node1 ~]# nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

[root@node1 ~]# systemctl restart nginx

6.配置node1端hosts解析并测试

bash 复制代码
[root@node1 ~]# vim /etc/hosts
192.168.136.161         www.itxuan.com
[root@node1 ~]# for ((i=1;i<=4;i++)); do curl http://www.itxuan.com; done
192.168.136.164  bbb
192.168.136.163  bbb
192.168.136.164  bbb
192.168.136.163  bbb

7.stop掉任意一个节点在进行测试

bash 复制代码
[root@node3 ~]# systemctl stop nginx
[root@node1 ~]# for ((i=1;i<=4;i++)); do curl http://www.itxuan.com; done
192.168.136.164  bbb
192.168.136.164  bbb
192.168.136.164  bbb
192.168.136.164  bbb

7.节点恢复正常后在进行测试

bash 复制代码
[root@node3 ~]# systemctl start nginx
[root@node1 ~]# for ((i=1;i<=4;i++)); do curl http://www.itxuan.com; done
192.168.136.164  bbb
192.168.136.164  bbb
192.168.136.163  bbb
192.168.136.164  bbb
相关推荐
_.Switch1 小时前
高级Python自动化运维:容器安全与网络策略的深度解析
运维·网络·python·安全·自动化·devops
2401_850410831 小时前
文件系统和日志管理
linux·运维·服务器
JokerSZ.2 小时前
【基于LSM的ELF文件安全模块设计】参考
运维·网络·安全
芯盾时代2 小时前
数字身份发展趋势前瞻:身份韧性与安全
运维·安全·网络安全·密码学·信息与通信
心灵彼岸-诗和远方3 小时前
DevOps业务价值流:架构设计最佳实践
运维·产品经理·devops
一只哒布刘3 小时前
NFS服务器
运维·服务器
苹果醋34 小时前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx
二十雨辰4 小时前
[linux]docker基础
linux·运维·docker
Jason-河山5 小时前
【自动化更新,让商品信息跳舞】——利用API返回值的幽默编程之旅
运维·自动化
雨雪飘零5 小时前
Windows系统使用OpenSSL生成自签名证书
nginx·证书·openssl