centos7下通过LVS实现负载均衡访问

一、2台服务器作为real server ,一台作为director 

172.28.18.103和172.28.18.71作为real server 

172.28.18.69作为director

二、在两台real server上安装nginx

配置nginx yum源

[root@localhost ~]# vim /etc/yum.repos.d/nginx.repo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

安装

[root@localhost ~]# yum install -y nginx

查看

[root@localhost ~]# whereis nginx
nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz
[root@localhost ~]# 

配置文件

查看默认根目录页面地址

[root@localhost ~]# vim /etc/nginx/conf.d/default.conf 

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

编辑/usr/share/nginx/html/index.html

加上本机IP地址,在测试负载均衡的时候,才知道分发到了哪台real server上

[root@localhost ~]# vim /usr/share/nginx/html/index.html 

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!-71</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

保存、退出

启动nginx

[root@localhost conf.d]# nginx -c /etc/nginx/nginx.conf

在浏览器查看

可以显示IP了,同样另外一台103的服务器也这样安装和配置nginx

 三、在172.28.18.69上安装ipvsadm

[root@localhost mysql-5.7.26]# yum install -y ipvsadm
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.huaweicloud.com
 * updates: mirrors.tuna.tsinghua.edu.cn
base                                                                                | 3.6 kB  00:00:00     
extras                                                                              | 3.4 kB  00:00:00     
updates                                                                             | 3.4 kB  00:00:00     
正在解决依赖关系
--> 正在检查事务
---> 软件包 ipvsadm.x86_64.0.1.27-7.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

===========================================================================================================
 Package                  架构                    版本                         源                     大小
===========================================================================================================
正在安装:
 ipvsadm                  x86_64                  1.27-7.el7                   base                   45 k

事务概要
===========================================================================================================
安装  1 软件包

总下载量:45 k
安装大小:75 k
Downloading packages:
ipvsadm-1.27-7.el7.x86_64.rpm                                                       |  45 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
警告:RPM 数据库已被非 yum 程序修改。
** 发现 2 个已存在的 RPM 数据库问题, 'yum check' 输出如下:
2:postfix-2.10.1-7.el7.x86_64 有缺少的需求 libmysqlclient.so.18()(64bit)
2:postfix-2.10.1-7.el7.x86_64 有缺少的需求 libmysqlclient.so.18(libmysqlclient_18)(64bit)
  正在安装    : ipvsadm-1.27-7.el7.x86_64                                                              1/1 
  验证中      : ipvsadm-1.27-7.el7.x86_64                                                              1/1 

已安装:
  ipvsadm.x86_64 0:1.27-7.el7                                                                              

完毕!

四、开启director服务器路由转发功能

vim /etc/sysctl.conf

最后一行加上 

net.ipv4.ip_forward=1

保存,退出,执行

[root@director ~]# sysctl -p

立即生效

五、配置虚拟服务器

[root@director ~]# ipvsadm -A -t 172.28.18.69:80 -s rr

增加一个虚拟服务器 172.28.18.69,分发算法为rr(轮询) -t:tcp协议 -s:分发算法

六、增加后端实际服务器

[root@director ~]# ipvsadm -a -t 172.28.18.69:80 -r 172.28.18.103:80 -m
[root@director ~]# ipvsadm -a -t 172.28.18.69:80 -r 172.28.18.71:80 -m

七、查看配置规则

[root@director ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.28.18.69:80 rr
  -> 172.28.18.71:80              Masq    1      0          0         
  -> 172.28.18.103:80             Masq    1      0          0 

八、测试

[root@director ~]# curl http://172.28.18.69
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!-71</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

分发到71上

[root@director ~]# curl http://172.28.18.69
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!-103</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
[root@director ~]# curl http://172.28.18.69
<!DOCTYPE html>

再次请求,分发到103上。

猜你喜欢

转载自www.cnblogs.com/sky-cheng/p/10905063.html