nginx的负载均衡

nginx的负载均衡

文章目录

    • nginx的负载均衡
      • 1.以多台虚拟机作服务器
        • [1.1 在不同的虚拟机上安装httpd服务](#1.1 在不同的虚拟机上安装httpd服务)
        • [1.2 在不同虚拟机所构建的服务端的默认路径下创建不同标识的文件](#1.2 在不同虚拟机所构建的服务端的默认路径下创建不同标识的文件)
        • [1.3 使用windows本机的浏览器分别访问3台服务器的地址](#1.3 使用windows本机的浏览器分别访问3台服务器的地址)
      • 2.在新的一台虚拟机上配置nginx实现反向代理以及负载均衡
        • [2.1 安装配置nginx](#2.1 安装配置nginx)
        • [2.2 在所安装nginx的虚拟机上配置nginx的反向代理及负载均衡](#2.2 在所安装nginx的虚拟机上配置nginx的反向代理及负载均衡)
        • [2.3 在浏览器上测试代理网站访问情况](#2.3 在浏览器上测试代理网站访问情况)
        • [2.4 修改所代理服务器的权重来实现不同服务器的访问次数](#2.4 修改所代理服务器的权重来实现不同服务器的访问次数)

1.以多台虚拟机作服务器

1.1 在不同的虚拟机上安装httpd服务

我这里采用3台虚拟机分别建立3台服务器:192.168.32.137、192.168.32.138、192.168.32.147。

在3台虚拟机服务器上安装httpd服务

bash 复制代码
#使用yum安装httpd服务
[root@node0-8 /]# yum install httpd -y

#开启httpd服务
[root@node0-8 /]# systemctl start httpd
[root@node0-8 /]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           └─php-fpm.conf
   Active: active (running) since Mon 2022-12-05 23:34:13 CST; 8 months 7 days ago

1.2 在不同虚拟机所构建的服务端的默认路径下创建不同标识的文件

bash 复制代码
#查看httpd的配置文件所指向的网站主页文件路径
[root@node0-8 /]# vim /etc/httpd/conf/httpd.conf
</Directory>

# Further relax access to the default document root:
<Directory "/var/www/html">

#在/var/www/html路径下创建index.html文件,文件内容标识不同的服务器端
#在虚拟机137上创建
[root@server79 /]# vim /var/www/html/index.html
这是主机137
#在虚拟机138上创建
[root@node0-8 /]# vim /var/www/html/index.html
这是主机138
#在虚拟机147上创建
[root@node1-79 /]# vim /var/www/html/index.html
这是主机147

1.3 使用windows本机的浏览器分别访问3台服务器的地址

注意:访问前需要关闭3台建立服务器的虚拟机的防火墙,或者写上防火墙策略

bash 复制代码
#关闭服务器主机的防火墙
[root@node1-79 /]# systemctl stop firewalld
[root@node1-79 /]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

使用windows主机的浏览器分别访问

2.在新的一台虚拟机上配置nginx实现反向代理以及负载均衡

2.1 安装配置nginx

这里我已经提前安装配置好了,具体安装配置过程可以查看我的上一篇博客。

2.2 在所安装nginx的虚拟机上配置nginx的反向代理及负载均衡

进入nginx的配置文件,我这里nginx的配置文件所在的路径有所不同。

bash 复制代码
#查看nginx所有配置文件的路径
[root@localhost ~]# nginx -V

#在添加所要代理的服务器前先测试与服务器之间是否信息互联
[root@localhost /]# ping 192.168.32.137
PING 192.168.32.137 (192.168.32.137) 56(84) bytes of data.
64 bytes from 192.168.32.137: icmp_seq=1 ttl=64 time=0.553 ms

#修改nginx的配置文件配置服务器代理
#在nginx的nginx.conf文件中添加以下内容
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
#在http模块中插入
 upstream servers {                          #upstream XXX(自定义命名)
        server 192.168.32.137;              #server 后面的地址为被代理的服务器的地址
        server 192.168.32.138;
        server 192.168.32.147;
    }
#在同一http模块下的server中的location修改为以下内容
location / {                              #/后面自定义命名路径名
            proxy_pass http://servers;      #这里的//后面的XXX必须与上端的upstream后面的相同
        }
        
#配置修改完毕后重加载nginx配置
[root@localhost sbin]# ./nginx -s reload

#关闭防火墙
[root@localhost sbin]# systemctl stop firewalld
[root@localhost sbin]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Tue 2023-08-08 15:08:34 CST; 5 days ago
     Docs: man:firewalld(1)

2.3 在浏览器上测试代理网站访问情况

通过windows主机的浏览器进行访问,当然可以修改本地的C:\Windows\System32\drivers\etc\hosts文件通过域名映射来访问

2.4 修改所代理服务器的权重来实现不同服务器的访问次数

bash 复制代码
#在原本的代理地址后面加上权重
[root@localhost sbin]# vim /usr/local/nginx/conf/nginx.conf
    upstream servers {
        server 192.168.32.137 weight=1;
        server 192.168.32.138 weight=5;
        server 192.168.32.147 weight=2;
    }
 
#重新加载nginx的配置
[root@localhost sbin]# ./nginx -s reload

可以看出,权重分配不同,所访问服务器的次数不同,权重大的,访问的次数多。

相关推荐
wdfk_prog6 小时前
Wi-Fi Direct 源码分析(11):P2P-GROUP-STARTED 之后——Group Interface、IP 配置与真实数据通路
运维·服务器·网络协议·tcp/ip·asp.net·p2p·wifi-direct
MicrosoftCloud6 小时前
用户权限 02|/etc/passwd、/etc/shadow、/etc/group:三个文件讲透 Linux 用户体系
linux·运维·ubuntu·用户管理·权限·useradd
天远API6 小时前
零信任架构实战:基于天远人车核验加强版构建自动化商用车承保核验网关
运维·人工智能·架构·自动化
崽崽..6 小时前
【Linux】ping命令刨析
linux·运维·服务器·网络
张小姐的猫7 小时前
【Linux】网络编程 —— 五种IO模型
linux·运维·服务器·网络·c++·人工智能·php
程序员-Benothing7 小时前
Shell脚本调试与最佳实践:set -eux、shellcheck实战
linux·运维·服务器
海宇AI7 小时前
零信任架构实战:基于海宇活体识别V步骤1构建自动化直播开播鉴权网关
运维·人工智能·架构·自动化
ZeroNews内网穿透7 小时前
企业内网穿透安全避坑:路由白名单,解决整站映射带来的接口泄露风险
运维·内网穿透·api安全·zeronews·企业网络安全·运维实践
Thomas.Sir7 小时前
第13课:Spring Cloud LoadBalancer 新版负载均衡核心原理
spring cloud·负载均衡
Wang's Blog7 小时前
Java 项目实战: 外卖平台优化-Nginx常用命令与环境变量配置
java·网络·nginx