接着前俩篇继续记录fastDFS篇,记录如何实现高可用的分布式文件服务。如果生产环境中nginx对外提供的服务万一挂掉,这时高可用就显得非常重要。开发求新,运维求稳。个人感觉目前开发和运维的工作越来越不分的那么细了,技术不分隔阂。
1.Nginx配置反向代理,在tracker 跟踪器节点上安装Nginx并记载ngx_cache_purge模块。
wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz #没有就下载一个
进入到自己放工具包的位置解压ngx_cache_purge-2.3.tar.gz
tar -zxvf ngx_cache_purge-2.3.tar.gz -C /usr/local/
解压完之后我们在/usr/local/ 目录下可以看到多了一个ngx_cache_purge-2.3文件夹
2.安装nginx,先安装nginx需要的依赖项:
yum install pcre
yum install pcre-devel
yum install zlib
yum install zlib-devel
3.进入工具包文件夹下 解压nginx离线安装包,我解压到了/var 下
4..进入到 解压完成的nginx-1.13.7目录下编译安装nginx
./configure --prefix=/usr/local/nginx --add-module=/usr/local/ngx_cache_purge-2.3
make && make install
5.配置缓存,修改 listen 端口为8000
a.设置缓存存储路径,存储方式,分别内存大小,磁盘最大空间,缓存期限
b.各个组的负载均衡配置
我提供出我自己这次配置完的nginx.conf,需要的话可以去百度网盘下载,还有一些这次操作过程中的安装包,注意使用的时候更改下自己对应的storage节点的IP和端口信息。
(百度网盘永久有效)
链接:https://pan.baidu.com/s/1NOtan5Lmt9i7ZFgpVFW9ig
提取码:n2e9
6.创建nginx.conf配置文件下的缓存存放路径。
mkdir -p /fastdfs/cache/nginx/proxy_cache
mkdir -p /fastdfs/cache/nginx/proxy_cache/tmp
7./usr/local/nginx/sbin/nginx 启动nginx
8. /usr/local/nginx/sbin/nginx -V,查看ngx_cache_purge是否安装成功
9.安装 keepalived
作用:主要防止服务器单点故障的发生问题,与Nginx的配合实现web服务端的高可用
a.wget http://www.keepalived.org/software/keepalived-1.2.18.tar.gz
b.tar -zxvf keepalived-1.2.18.tar.gz -C /usr/local/
c.yum install -y openssl openssl-devel(需要安装一个软件包)
d.cd /usr/local/keepalived-1.2.18/ && ./configure --prefix=/usr/local/keepalived
e:make && make install
f:keepalived安装成Linux系统服务
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
然后复制keepalived脚本文件:复制到 系统的文件里 会有意想不到的效果
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/sbin/keepalived /usr/sbin/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
开机启动:chkconfig keepalived on
service keepalived start
10. service keepalived stop 关闭该服务 修改/etc/keepalived/keepalived.conf配置
a.修改 global_defs当中配置的是主机名
b.每隔2秒中去执行/etc/keepalived/nginx_check.sh脚本一次,脚本在上边我粘贴的百度网盘中。这项检查从开始便一直进行,interval表示间隔时间,weight -20的意思是,脚本执行成功后把192.168.0.145 第一节点的优先级降低20。
c.这段配置是核心了,虽然看着字多。一定要看!!! 不懂思想干会用,懂皮毛没意思。
1.state MASTER表示该节点角色定义为MASTER
2.interface enp2s0是指虚拟机的网卡是enp2s0
3.virtual_router_id 11这项配置非常重要,如果是多个节点的这项配置的值必须一样,否则会出现问题。mcast_src_ip 192.168.0.145这项配置是指定当前节点的真实IP。
4.priority 100的意思是优先级,这里暂且设置为100,当然也可以是其它值。优先级在keepalived实现高可用方面起着至关重要的作用.。
5.keepalived服务器就是根据优先级来选择当前提供服务的设备的,192.168.0.145刚开始设置的优先级是100,如果有多个节点。则把第二个节点刚开始设置的优先级是90,依此类推设置,逐渐少20。这样keepalived一开始去检查优先级,发现192.168.0.145这台设备的优先级高,于是便让该设备对外提供服务,当192.168.0.145这台设备的nginx挂掉后,由于nginx_check.sh脚本每两秒执行一次,发现第二台节点这个节点没有nginx进程后便尝试进行重新启动nginx,如果重新启动还是不行的话,就杀掉所有的keepalived进程,并告诉keepalived服务器192.168.0.145这个节点的nginx挂掉了同时会把这个节点的优先级减20,从而优先级变为了80,这样下次keepalived来检查优先级发现第二个节点的优先级比较高(90),于是便让第二这个节点对外提供服务,同理,这个节点发生故障的话,也会再去让另外一个节点来提供服务,这就实现了高可用。
6.virtual_ipaddress {
虚拟ip段
}
11. service keepalived start;
查看你配置的虚拟ip
12.用虚拟ip访问测试即可
邮箱:yzydevops@163.com
本文暂时没有评论,来添加一个吧(●'◡'●)