nginx+keepalived

基本概念+nginx+keepalived

什么是jre?
Java运行环境(Java Runtime Environment,简称JRE)的一个软件,JRE的内部有一个Java虚拟机(Java Virtual Machine,JVM)以及一些标准的类别函数库(Class Library)。
包含Java虚拟机,Java核心类库,支持文件
但是不包含开发工具JDK,调试器,和其他工具

什么是jdk?
jdk(Java Development Kit),从字面意思翻译过来就是java开发的工具。可以这样理解Jdk就是java,我们要写Java首先得要有java这个东西对吧?所以我们要做的第一步就是从官网下载jdk安装到自己的电脑。

nginx是个什么软件?nginx四层是怎么实现的?四层代理软件还有哪些?

nginx可以用作web服务器,四七层代理,负载均衡,还有缓存服务器。
nginx可以用作web服务器,四七层代理,负载均衡,还有缓存服务器。 nginx使用了一个stream模块来实现四层tcp。我们在stream里面配置一组 server,用proxy_pass指定server名字,然后在下面再配置该server的upstream轮 询,就是server加上代理服务的ip和端口,还有轮询的方式。这样就配置好了nginx 四层。
还有lvs、haproxy等等

keepalived的原理是什么?

keepalived实现高可用是通过VRRP虚拟路由冗余协议来实现的,n台相同功能 的服务器组成一个路由器组,它会产生一个虚拟ip在路由器组中按照一定规则在路由 器组进行切换,vip所在的机器被称为master,其他的是backup,当前的master会 定时地以多播的形式向backup发送心跳信息,如果master发生故障,backup无法 接收到信息,就会根据VRRP的优先级来选举一个新的master,虚拟ip就会切换到该 新的master上,从而实现高可用。keepalived有两种模式,一个是抢占模式,另一 个是非抢占模式。抢占模式就是当之前的master恢复的时候,就会将VIP抢占过来, 非抢占就是不会抢占,而是成为一个新的backup。我之前做keepalived时还遇到过 脑裂的问题,当时我在master和backup上都发现了vip,然后在backup上使用tcpdump抓包tcpdump -i eth0 | grep VRRP也看到了VRRP数据,就觉得很奇怪, 很正常呀。然后找了半天原因最后才发现是防火墙启用了,而且没有开启接收VRRP 协议,导致backup收不到VRRP包,就自己上位了。然后我就想,要如何防止这种情 况发生呢?就问了一下一些前辈,上网查找了资料,有说第三方仲裁的看了一下比较 麻烦,后面知道了一种简单的方法,借助keepalived配置里面自带的vrrp_script以及 tract_script指定运行一个脚本,去ping网关,如果不通的话,就关闭keepalived

keepalived和heartbeat有什么相同点和不同点?

**相同点就是都是做高可用的热门工具。**虽然它们目标是一样的,但是不同点有很 多。keepalived的配置相对来说更简单,而heartbeat的功能更为强大,它们的协议 不同,**keepalived使用的是VRRP协议通过发送VRRP包来保证高可用的,而 heartbeat使用的是心跳进行通信和选举,**心跳还可以走串口,可以有效的防止网络 带来的脑裂问题,它们都可以根据业务来自定义脚本,但是heartbeat脚本需要支持 service start这种方式,而keepalived没有限制。我觉得一般来说,keepalived就可 以满足大部分需求,而且它配置比较简单,在发生故障的时候解决问题的速度更快。

你们使用的是什么监控软件?

zabbix的原理,监控方式,监控的具体步骤 我们使用的监控软件是zabbix。zabbix需要一个lnmp环境,即 linux+nginx+mysql+php。zabbix的agentd被安装在被监控端主机上,agent负责 收集客户端本地监控数据,然后发送到server端,server端收到信息后将之存储在本地数据库中,nginx根据数据在前端进行展现和绘图。zabbix有agent、snmp、 ipmi三种监控方式。

网站的动静态分离是怎么做的?

我们是有单独的静态域名img,单独的nginx服务器,然后通过七层nginx对域名 进行判断,将静态文件的请求转发到静态服务器。具体是这样的,修改nginx的配置 文件,在http模块下加入两个upstream池,分别是动态服务器池和静态服务器池, 里面分别指定了动静态服务器的ip端口以及轮询算法。然后在下面指定两个server, 一个server加入proxy_pass匹配动态池,另一个server加入proxy_pass以及 proxy_set_head将所有访问静态域名的请求转到静态池中。由动态池和静态池利用 轮询算法将请求转发到相对应的服务器上去,这样就完成了nginx的动静态分离。 当然,如果没有单独的静态域名的话,也可以在nginx上配置location匹配jpg、 png、html等结尾的所有请求转到静态服务池去。 还可以使用haproxy实现动静态分离,这个我也做过,修改haproxy的配置文 件,设置mod为http七层代理,在frontent 里面加入acl访问控制,将所有html、 jpg、png等结尾的访问定义为一个规则名,use_bakend 静态池 如果匹配的是这个
规则名的话,然后在后面定义backend静态池,同样地,加入静态服务器ip端口以及 轮询方式等等,这样就实现了haproxy的动静分离了。

nginx做代理时的调度算法有哪些?

有轮询、权重、iphash、urlhash等
但是在1.9版本后nginx开始支持基于tcp 的四层负载均和反向代理,调度算法也和七层的有所不同,特别是一致性hash算法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值