Nginx和keepalived基础学习总结

功能:

        反向代理:代理服务端

        负载均衡:轮询、加权轮询和ip_hash(固定ip只会访问到一台服务器)

        动静分离:对css、js等静态资源进行缓存,提高响应速度

下载安装:

        ①编译安装:nginx: download

        ②直接安装:yum install nginx -y

配置文件 (/etc/nginx/nginx.conf):

全局配置

        worker_processes 1; #nginx进程数,通常与CPU核数一致

events块

        work_connections 1024; #每个进程允许最大并发数

http块

        include mime.types; #决定返回数据是展示还是下载

        default_type application/octet-stream; #mime.types没有包含的数据类型,此配置为默认项

        sendfile on; #数据零拷贝,nginx不再缓存文件,直接文件读取发送给客户端

server块(每个server块都可以看作一个虚拟主机virtual host)

        listen 80;

        server_name localhost;   #域名、主机名(可同时配置多个)

        location /{

                root html;   #相对路径,使用nginx根目录下的html文件夹

               index index.html index.htm;   #默认页

                proxy-pass http://x.x.x.x:xx;   #指定服务器

                #注意:在一个location中 proxy-pass 和 root index只能二选一,要么使用本机网页要么指定服务器

        }

        error_page 500 502 /50x.html;   #出现错误跳转50x.html页面

不同的server块都可以监听80端口,但域名不同(虽然域名指向同一个IP地址),根据域名解析到不同的目录。

若访问时使用了配置文件中不存在的ServerName,则会匹配配置文件中的第一个server块

常用指令:

        nginx -v   #查看nginx版本

        nginx -s stop    #强制关闭

        nginx -s quit   #退出nginx

        nginx -s reload    #重新加载配置文件

        nginx -c /path/x   #启动时指定配置文件

动静分离:

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:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值