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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。