Linux(centos 6.X)环境下LVS-NAT模式高可用负载均衡集群系统快速配置

本文简单记录下Linux环境下lvs-nat模式(基础调度器路由转发)负载均衡简单配置,揭开这个神秘东西的面纱,让你五分钟钟搞定配置LVS-NAT。

  • 环境配置: 三台centos 6.5
  • 调度器: DIP:192.168.1.11 VIP:192.168.1.110
  • web服务器: RIP:192.168.1.9 RIP:192.168.1.10

一、前期服务器环境搭建

由于是之前kvm克隆了dr模式下的服务器,这里和dr下边的IP和服务器环境信息是一样的。只不过是web服务器取消了arp禁响应和VIP配置。

(1) 配置lamp环境,这里不做演示。
(2)关闭selinux、调度器和所有web服务器上的iptables
(3)设置时间同步,保证服务器时间一致(后期nfs或数据同步用到,包括session同步需要)

二、配置调度器

1. 开启IP转发

vi /etc/sysctl.conf
net.ipv4.ip_forward = 1

sysctl -p可以查看是否开启。

2. 调度器安装ipvsadm和keepalived

首先安装依赖包:

yum -y install gcc make openssl-devel openssl net-snmp net-snmp-devel popt popt-devel

安装ipvs和keepalived:

yum install ipvsadm  keepalived  -y
chkconfig ipvsadm on
chkconfig keepalived on

修改keepalived.conf配置文件配置服务器IP信息:

! Configuration File for keepalived

global_defs {   
   router_id LVS_DEVEL
}

vrrp_instance VI_1 {
    state MASTER             #备用机器这里需要更改成BACKUP
    interface eth0           
    virtual_router_id 51     
    priority 100             #备机优先级设置低于100的数值。数值越高优先级越高。
    advert_int 1             
    authentication {         
        auth_type PASS       
        auth_pass 1111       
    }
    virtual_ipaddress {      
        192.168.1.110        
    }
}

virtual_server 192.168.1.110 80 {
    delay_loop 6       
    lb_algo rr        
    lb_kind NAT        
    nat_mask 255.255.255.0
    persistence_timeout 50  
    protocol TCP            

    real_server 192.168.1.9 80 {       
        weight 3                       
        TCP_CHECK {  
            connect_timeout 3          
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
    real_server 192.168.1.10 80 {
        weight 3
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }

}

配置完以后启动keepalived:

service keepalived start

现在通过ipvsadm查看ip信息:

[root@natlb ~]# ipvsadm  -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.1.110:http rr persistent 50
  -> 192.168.0.9:http             Masq    3      0          0         
  -> 192.168.0.10:http            Masq    3      0          0  

三、真实服务器配置

这个无需做特殊配置,只是把网关设置成VIP就可以了。设置以后可以用route查看网关。

好了。配置完成。测试下论坛访问,依旧是1.9和1.10轮流提供web访问。

拓展部分:

如果需要进行nfs系统配置,请参考《Linux下网络文件系统NFS的配置实现数据共享》
如果要进行mysql主从配置,请参考《mysql数据库如何设置互为主从》
DR模式配置过程,请参考《Linux(centos 6.X)环境下LVS-DR模式负载均衡集群系统快速配置》

补充LVS添加url检测防止假死:

real_server 192.168.1.120 80  {
     weight  50
     HTTP_GET {
        url {
            path   /ok.php
            status_code 200
        }
        connect_timeout  10
        nb_get_retry 3
        delay_before_retry 3
     }
}

centos6.5 vsftpd 虚拟用户

环境

  • SERVER:CENTOS6.5

  • CLIENT:WINDOWS10

要求

用windows10 访问 centos的vsftpd 使用虚拟用户ftp 密码为abc.123 进行访问使其有删除,写入权限

安装vsftpd 服务

未分类

创建一个文件存放用户名和密码
格式大约为:

user1
password
user2
password

未分类

未分类

使用db_load 命令生成出虚拟用户口令认证文件(如没有此命令 yum install db4-utils 进行安装)
选项-T允许应用程序能够文本文件转译载入进数据库由于我们之虚拟用户信息文件方式存储文件里了让Vsftpd应用程序能够通过文本来载入用户数据必须要使用选项
指定了选项-T定要追加子选项-t;子选项-t追加-T选项用来指定转译载入数据库类型
-f 参数面接包含用户名和密码文本文件文件内容:奇数行用户名、偶数行密码

未分类

编辑/etc/pam.d/vsftpd 把所有内容都#注释掉 然后添加下面两行
这里的auth是指对用户的用户名口令进行验证。
这里的accout是指对用户的帐户有哪些权限哪些限制进行验证。

未分类

建立一个用户用来给我们的虚拟用户登陆

未分类

修改vsftpd配置文件(vi /etc/vsftpd/vsftpd.conf)指定虚拟用户 并开启虚拟用户权限

未分类

重启服务

未分类

连接成功

未分类

发现无法创建文件我们开启虚拟用户个人的配置文件

未分类

未分类

write_enable=YES #开放ftp的写权限
anon_world_readable_only=NO #开放ftp的下载权限
anon_upload_enable=YES #开放ftp的上传权限
anon_mkdir_write_enable=YES #开放ftp创建目录的权限
anon_other_write_enable=YES #开放ftp删除和重命名的权限

重启服务

创建

未分类

未分类

未分类

CentOS6安装postfix并设置sasl

postfix是一个流行的smtp服务器。在不采用ssl/tls加密的情况下,smtp服务器默认端口是25/TCP。下面介绍如何在CentOS6上安装postfix。

1. CentOS6默认已经安装了postfix.如果系统没有postfix的话,可以采用如下命令安装它。

[root@mail ~]# yum -y install postfix

2. 配置postfix的main.cf,配置smtp-auth采用dovecot的sasl功能。需要安装和配置dovecot,见下篇。

[root@mail ~]# vi /etc/postfix/main.cf
# 第75行: 去掉注释,并设置主机名。
myhostname = mail.opsky.top
# 第83行: 去掉注释,并设置域名。
mydomain = opsky.top
# 第99行: 去掉注释。
myorigin = $mydomain
# 第116行: 
inet_interfaces = all
# 第119行: 如果只使用ipv4,那么设置如下。
inet_protocols = ipv4
# 第164行: 配置可接收邮件的域名。
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# 第264行: 去掉注释,并设置本地网络号段.
mynetworks = 127.0.0.0/8, 10.0.0.0/24
# 第419行: 去掉注释,采用Maildir格式。
home_mailbox = Maildir/
# 第571行: 
smtpd_banner = $myhostname ESMTP
# 添加如下配置到文件末尾
# 一封邮件大小限制为10M
message_size_limit = 10485760
# 一个邮箱大小限制为1G
mailbox_size_limit = 1073741824
# 配置SMTP-Auth采用dovecot的sasl功能
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject

main.cf配置完毕后,启动postfix,并设置自动启动。

[root@mail ~]# /etc/rc.d/init.d/postfix start 
Starting postfix: [  OK  ]
[root@mail ~]# chkconfig postfix on

3. 如果iptables在开启状态,那么设置iptables开放smtp的25端口。

[root@mail ~]# iptables -I INPUT 5 -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT