功能:
反向代理:代理服务端
负载均衡:轮询、加权轮询和ip_hash(固定ip只会访问到一台服务器)
动静分离:对css、js等静态资源进行缓存,提高响应速度
下载安装:
①编译安装:nginx: download
②直接安装:yum install nginx -y
配置文件 (/etc/nginx/nginx.conf):
不同的server块都可以监听80端口,但域名不同(虽然域名指向同一个IP地址),根据域名解析到不同的目录。
若访问时使用了配置文件中不存在的ServerName,则会匹配配置文件中的第一个server块
常用指令:
动静分离:
server {
location /css {
root html; #网页需要的css文件夹在nginx目录下的html文件夹中
}
}
负载均衡:
upstream balance {
server x.x.x.x:80 weight=1; #weight 权重是1
server y.y.y.y:80 weight=2 down; #down下线
server z.z.z.z:80 weight=3 backup; #备用状态,不会上线
}
server {
...
location / {
proxy_pass http://balance;
}
}
负载均衡算法:
upstream balance {
least_conn; #最少连接访问
ip_hash; #根据用户的ip地址固定访问到一台服务器
url_hash; #根据访问的url定向转发请求(需要插件支持)
fair; #根据后端服务器响应时间转发请求(需要插件支持)
...
}
Nginx 高可用(High Availability):
目的:使用keepalived当一台nginx服务器不能提供服务时另一台nginx服务器能够快速顶替
下载安装:yum install keepalived -y
配置文件:/etc/keeplived/keeplived.conf
修改配置信息:
global_defs{
router_id xxx #不同机器需要更改
}
vrrp_instance yyyy{
state MASTER #身份 BACKUP
interface ????? #网卡名称 /etc/sysconfig/network-scripts/ifcfg-?????
virtual_router_id x #不需要更改,主备得一致
priority 100 #优先级,主备竞选使用
advert_int 1 #间隔检测时间
authentication {
auth_type pass
auth_pass 1111
} #配对keeplived,相同认证信息组成一个组
virtual_ipaddress{
x.x.x.x #虚拟IP地址
}
}
启动keepalived:systemctl start keepalived
keeplived检测宿主机是否可用依托其进程是否存在,并不能实际知悉服务器对应程序是否还在正常运行。可以使用脚本检测应用服务是否异常,终止keepalived进程达到漂移IP地址的目的。
具体应用:
keepalived使用的虚拟IP需要绑定外网IP,阿里云或腾讯云的普通ECS云服务器使用的是NAT转发,这样安装keepalived并指定virtual ip外网是访问不到的。笔者搜了很多教程,全是自己用虚拟机安装keepalived搭建的环境。
正确方式是使用VPC(私有/专有网络)创建HAVIP(高可用虚拟IP)绑定到ECS服务器上,同时HAVIP需要绑定公网IP。
学习参考:
私有网络 用 HAVIP+Keepalived 搭建高可用主备集群 - 最佳实践 - 文档中心 - 腾讯云
HaVip结合keepalived实现主备双机高可用 - 专有网络 VPC - 阿里云
云速搭部署高可用虚拟 IP HaVIP-最佳实践-阿里云
云速搭CADT:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台