2

nginx负载均衡

nginx支持L7,L4负载均衡。主要优点是简单,轻量。
实现负载均衡需要nginx的两个功能模块:

  • ngx_http_proxy_module #proxy代理模块,用于把请求转给服务器节点或upstream
  • ngx_http_upstream_module #负载均衡模块,实现网站的负载均衡及节点的健康检查

主要工作模式有权重,轮询,IPhash模式三种,如果需要实现会话保持,需要reddis或memcache数据库

配置文件:

upstream web{   #定义服务器池
    server 172.0.0.7:80;   #默认权重1
    server 172.0.0.8:80;    #weight=1
    server unix:/tmp/web3;

}


 server {
    listen 80;
    server_name lemonbk.com
    location / {
        proxy_pass http://web; #将请求抛给web服务器池
        proxy_set_header Host $host; #将请求携带host
        proxy_set_header X-Forwarded-For $remote_addr; #将用户ip携带在请求中
}

}

keepalived配置

主配置文件:

vrrp_instance VI_1 {
    state MASTER #主
    interface ens33
    virtual_router_id 51
    priority 100 #优先级
    advert_int 1
    authentication { #主备通信的验证信息
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
    172.0.0.3/24 dev ens33 label ens33:1 #指定配置ip的网卡
    }
}

备配置文件:

vrrp_instance VI_1 {
    state BACKUP #备
    interface ens33
    virtual_router_id 51
    priority 80 #低优先级
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
    172.0.0.3/24 dev ens33 label ens33:1
    }
}

!!需要注意的是,原因是keepalived.conf配置中默认vrrp_strict打开了,如果没有配置相关项,一定要将此项注释掉,否则防火墙会DROP掉VIP

mysql主从

主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是准实时的业务数据库。数据库主从可以做热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性能,读写分离,提高并发。

修改主配置文件:
在/etc/my.cnf中的[mysqld]添加如下字段:

server-id=1 #唯一标识ID

log-bin=master-bin #开启二进制日志

修改从配置文件:

server-id=2 

log-bin=master-bin

重启主从数据库

在主数据库建立账号:

GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' identified by '12580';

从服务器开启同步:

change master to master_host='172.0.0.9',master_user='mysync',master_password='12580';
start slave; #启动同步

检查同步状态:

show slave status\G



*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 172.0.0.9
                  Master_User: mysync
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: backup-bin.000002
          Read_Master_Log_Pos: 2142
               Relay_Log_File: mariadb-relay-bin.000003
                Relay_Log_Pos: 2427
        Relay_Master_Log_File: backup-bin.000002
             Slave_IO_Running: Yes #此状态必须为YES
            Slave_SQL_Running: Yes #此状态必须为YES
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 2142
              Relay_Log_Space: 2767
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 1

lemon
44 声望2 粉丝

人生苦短,我用python,shell,java