1.软件环境

CentOS6.5

FastDFS v5.05

libfastcommon- - master.zip(是从 FastDFS 和 FastDHT 中提取出来的公共 C 函数库)

fastdfs- - nginx- - module_v1.16.tar.gz

nginx- - 1.6.2.tar.gz

fastdfs_client_java._v1.25.tar.gz

2.FastDFS集群规划

描述

IP地址

虚拟机名称

用户名

分组

跟踪服务器1

192.168.1.170

tracker01_170

tracker01

 

跟踪服务器2

192.168.1.180

tracker02_180

tracker02

 

存储服务器1

192.168.1.171

storage01_g1_171

storage01

group1

存储服务器2

192.168.1.172

storage02_g1_172

storage02

group1

存储服务器3

192.168.1.173

storage03_g2_173

storage03

group2

存储服务器4

192.168.1.174

storage04_g2_174

storage04

group2

存储服务器5

192.168.1.175

storage05_g3_175

storage05

group3

存储服务器6

192.168.1.176

storage06_g3_176

storage06

group3

1.FastDFS安装(所有tracker服务器和storage服务器均有如下操作)

1.1 编译和安装所需的依赖包

# yum install make cmake gcc gcc-c++

1.2 安装libfastcommon

1.2.1上传或下载 libfastcommon-master.zip 到/usr/local/src目录,解压

# cd /usr/local/src/

# unzip libfastcommon-master.zip

# cd libfastcommon-master

1.2.2编译和安装

# ./make.sh

# ./make.sh install

libfastcommon 默认安装到了

/usr/lib64/libfastcommon.so

/usr/lib64/libfdfsclient.so

1.2.3因为 FastDFS 主程序设置的 lib 目录是/usr/local/lib,所以需要创建软链接

# ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so

# ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so

# ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so

# ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

1.3安装 FastDFS

1.3.1上传或下载 FastDFS 源码包(FastDFS_v5.05.tar.gz)到 /usr/local/src 目录,解压

# cd /usr/local/src/

# tar -zxvf FastDFS_v5.05.tar.gz

# cd FastDFS

1.3.2编译、安装(编译前要确保已经成功安装了 libfastcommon)

# ./make.sh

# ./make.sh install

采用默认安装的方式安装,安装后的相应文件与目录:

A、服务脚本在:

/etc/init.d/fdfs_storaged

/etc/init.d/fdfs_tracker

B、配置文件在(样例配置文件):

/etc/fdfs/client.conf.sample

/etc/fdfs/storage.conf.sample

/etc/fdfs/tracker.conf.sample

C、命令工具在/usr/bin/目录下的:

fdfs_appender_test

fdfs_appender_test1

fdfs_append_file

fdfs_crc32

fdfs_delete_file

fdfs_download_file

fdfs_file_info

fdfs_monitor

fdfs_storaged

fdfs_test

fdfs_test1

fdfs_trackerd

fdfs_upload_appender

fdfs_upload_file

stop.sh

restart.sh

1.3.3因为 FastDFS 服务脚本设置的 bin 目录是/usr/local/bin,但实际命令安装在/usr/bin,可以进入/user/bin 目录使用以下命令查看 fdfs 的相关命令:

# cd /usr/bin/

# ls | grep fdfs

因此需要修改 FastDFS 服务脚本中相应的命令路径,也就是把/etc/init.d/fdfs_storaged和/etc/init.d/fdfs_tracker 两个脚本中的/usr/local/bin 修改成/usr/bin:

# vi /etc/init.d/fdfs_trackerd

使用查找替换命令进统一修改::%s+/usr/local/bin+/usr/bin

# vi /etc/init.d/fdfs_storaged

使用查找替换命令进统一修改::%s+/usr/local/bin+/usr/bin

2. 配置FastDFS跟踪器Tracker192.168.1.170192.168.1.180

2.1复制 FastDFS 跟踪器样例配置文件,并重命名

# cd /etc/fdfs/

# cp tracker.conf.sample tracker.conf

2.2编辑跟踪器配置文件

# vi /etc/fdfs/tracker.conf

修改的内容如下:

disabled=false #启用配置文件

port=22122  #tracker 的端口号,一般采用 22122 这个默认端口

base_path=/fastdfs/tracker  #tracker 的数据文件和日志目录

# the method of selecting group to upload files

# 0: round robin

# 1: specify group

# 2: load balance, select the max free space group to upload file

store_lookup=0(采取轮巡方式选择要上传的组进行存储,默认2 选择最大空闲空间的组)

(其它参数保留默认配置,附跟踪器配置文件/conf/tracker.conf

2.3创建基础数据目录(参考基础目录 base_path 配置)

# mkdir -p /fastdfs/tracker

2.4防火墙中打开跟踪器端口(默认为 22122)

# vi /etc/sysconfig/iptables

添加如下端口行:

## FastDFS Tracker Port

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT

重启防火墙:

# service iptables restart

2.5启动 Tracker

# /etc/init.d/fdfs_trackerd start

(初次成功启动,会在/fastdfs/tracker 目录下创建 data、logs 两个目录)可以通过以下两个方法查看 tracker 是否启动成功:

2.5.1查看 22122 端口监听情况

# netstat -unltp|grep fdfs

2.5.2 通过以下命令查看 tracker 的启动日志,看是否有错误

# tail -100f /fastdfs/tracker/logs/trackerd.log

2.6关闭 Tracker

# /etc/init.d/fdfs_trackerd stop

2.7设置 FastDFS 跟踪器开机启动

# vi /etc/rc.d/rc.local

添加以下内容:

## FastDFS Tracker

/etc/init.d/fdfs_trackerd start

3.配置FastDFS存储(192.168.1.171 ~ 176)

3.1复制 FastDFS 存储器样例配置文件,并重命名

# cd /etc/fdfs/

# cp storage.conf.sample storage.conf

3.2编辑存储器样例配置文件

# vi /etc/fdfs/storage.conf

修改的内容如下:

disabled=false #启用配置文件

group_name=group1                                    #组名(第一组为 group1,第二组为 group2)

port=23000                                                   #storage 的端口号,同一个组的 storage 端口号必须相同

base_path=/fastdfs/storage                         #设置 storage 的日志目录

store_path0=/fastdfs/storage                       #存储路径

store_path_count=1                                      #存储路径个数,需要和 store_path 个数匹配

tracker_server=192.168.1.170:22122          #tracker 服务器的 IP 地址和端口

tracker_server=192.168.1.180:22122          #多个 tracker 直接添加多条配置

http.server_port=8888                                  #设置 http 端口号

(其它参数保留默认配置,附存储节点配置文件/conf/storage.conf

3.3创建基础数据目录(参考基础目录 base_path 配置)

# mkdir -p /fastdfs/storage

3.4防火墙中打开存储器端口(默认为 23000)

# vi /etc/sysconfig/iptables

添加如下端口行:

## FastDFS Storage Port

-A INPUT -m state --state NEW -m tcp -p tcp --dport 23000 -j ACCEPT

重启防火墙:

# service iptables restart

3.5启动 Storage

# /etc/init.d/fdfs_storaged start

(初次成功启动,会在/fastdfs/storage 目录下创建数据目录 data 和日志目录 logs)

各节点启动动,使用 tail -f /fastdfs/storage/logs/storaged.log 命令监听存储节点日志,可以

看到存储节点链接到跟踪器,并提示哪一个为 leader 跟踪器。同时也会看到同一组中的其他节点加入

进来的日志信息。

查看 23000 端口监听情况:

# netstat -unltp|grep fdfs

所有 Storage 节点都启动之后,可以在任一 Storage 节点上使用如下命令查看集群信息:

# /usr/bin/fdfs_monitor /etc/fdfs/storage.conf

3.6关闭storage

# /etc/init.d/fdfs_storaged stop

3.7设置storage开机启动

# vi /etc/rc.d/rc.local

添加:

## FastDFS Storage

/etc/init.d/fdfs_storaged start

4.文件上传测试(192.168.1.170)

4.1修改 Tracker 服务器中的客户端配置文件

# cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf

# vi /etc/fdfs/client.conf

base_path=/fastdfs/tracker

tracker_server=192.168.1.170:22122

tracker_server=192.168.1.180:22122

4.2Xftp5上传test.png到192.168.1.170目录/usr/local/src/,用作上传测试

FastDFS上传命令如下:

# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/test.png

group2/M00/00/00/wKgBrlhEbz6ARyVHAAB9W1YdTCY793.png

能返回文件ID号,说明上传成功。

在group2下(173和174)的数据目录下可找到刚才上传的文件:

# ll /fastdfs/storage/data/00/00/

5.在各个存储节点上安装Nginx(192.168.1.171 ~ 176)

5.1fastdfs-nginx-module 作用说明

FastDFS 通过 Tracker 服务器,将文件放在 Storage 服务器存储,但是同组存储服务器之间需要进入文件复制,有同步延迟的问题。假设 Tracker 服务器将文件上传到了 192.168.1.135,上传成功后文件 ID已经返回给客户端。此时 FastDFS 存储集群机制会将这个文件同步到同组存储 192.168.1.136,在文件还没有复制完成的情况下,客户端如果用这个文件 ID 在 192.168.1.136 上取文件,就会出现文件无法访问的错误。而 fastdfs-nginx-module 可以重定向文件连接到源服务器取文件,避免客户端由于复制延迟导致的文件无法访问错误。(解压后的 fastdfs-nginx-module 在 nginx 安装时使用)

5.2上传 fastdfs-nginx-module_v1.16.tar.gz 到/usr/local/src,解压

# cd /usr/local/src/

# tar -zxvf fastdfs-nginx-module_v1.16.tar.gz

5.3修改 fastdfs-nginx-module 的 config 配置文件

# vi /usr/local/src/fastdfs-nginx-module/src/config

CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"

修改为:CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

(注意:这个路径修改是很重要的,不然在 nginx 编译的时候会报错的)

5.4上传当前的稳定版本 Nginx(nginx-1.6.2.tar.gz)到/usr/local/src 目录

5.5安装编译 Nginx 所需的依赖包

# yum install gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel

5.6编译安装 Nginx(添加 fastdfs-nginx-module 模块)

# cd /usr/local/src/

# tar -zxvf nginx-1.6.2.tar.gz

# cd nginx-1.6.2

# ./configure --prefix=/usr/local/nginx --add-module=/usr/local/src/fastdfs-nginx-module/src

# make && make install

5.7复制 fastdfs-nginx-module 源码中的配置文件到/etc/fdfs 目录,并修改

# cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

# vi /etc/fdfs/mod_fastdfs.conf

5.7.1第一组 Storage 的 mod_fastdfs.conf 配置如下

connect_timeout=10

base_path=/tmp

tracker_server=192.168.1.170:22122

tracker_server=192.168.1.180:22122

storage_server_port=23000

group_name=group1

url_have_group_name = true

store_path0=/fastdfs/storage

group_count = 3

[group1]

group_name=group1

storage_server_port=23000

store_path_count=1

store_path0=/fastdfs/storage

[group2]

group_name=group2

storage_server_port=23000

store_path_count=1

store_path0=/fastdfs/storage

[group3]

group_name=group3

storage_server_port=23000

store_path_count=1

store_path0=/fastdfs/storage

5.7.2第二组 Storage 的 mod_fastdfs.conf 配置与第一组配置只有 group_name 不同

group_name=group2

5.7.3第三组 Storage 的 mod_fastdfs.conf 配置与第一组配置只有 group_name 不同

group_name=group3

(附配置文件/conf/mod_fastdfs.conf

5.8复制 FastDFS 的部分配置文件到/etc/fdfs 目录

# cd /usr/local/src/FastDFS/conf

# cp http.conf mime.types /etc/fdfs/

5.9在/fastdfs/storage 文件存储目录下创建软连接,将其链接到实际存放数据的目录

# ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00

5.10配置 Nginx,简洁版 nginx 配置样例

# vi /usr/local/nginx/conf/nginx.conf

部分配置如下:

user storage01;

server {

listen 8888;

server_name localhost;

location /group1/M00 {

#alias /fastdfs/storage/data;

ngx_fastdfs_module;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

}

(附配置文件/conf/storage_nginx/nginx.conf

注意、说明:

A、8888 端口值是要与/etc/fdfs/storage.conf 中的 http.server_port=8888 相对应,

因为 http.server_port 默认为 8888,如果想改成 80,则要对应修改过来。

B、Storage 对应有多个 group 的情况下,访问路径带 group 名,如/group1/M00/00/00/xxx,

对应的 Nginx 配置为:

location ~/group([0-9])/M00 {

ngx_fastdfs_module;

}

C、如查下载时如发现老报 404,将 nginx.conf 第一行 user nobody 修改为 user root 后重新启动。

5.11防火墙中打开 Nginx 的 8888 端口

# vi /etc/sysconfig/iptables

添加:

## Nginx Port

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT

重启防火墙: # service iptables restart

5.12启动 Nginx

# /usr/local/nginx/sbin/nginx

ngx_http_fastdfs_set pid=xxx

(重启 Nginx 的命令为:/usr/local/nginx/sbin/nginx -s reload)

5.13设置Nginx开机启动

# vi /etc/rc.local

加入:

## Nginx

/usr/local/nginx/sbin/nginx

5.14通过浏览器访问测试时上传的文件

http://192.168.1.173:8888/group2/M00/00/00/wKgBrlhEbz6ARyVHAAB9W1YdTCY793.png

http://192.168.1.184:8888/group2/M00/00/00/wKgBrlhEbz6ARyVHAAB9W1YdTCY793.png

6.在跟踪器上安装Nginx(192.168.1.170,192.168.1.180)

6.1在 tracker 上安装的 nginx 主要为了提供 http 访问的反向代理、负载均衡以及缓存服务

6.2安装编译 Nginx 所需的依赖包

# yum install gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel

6.3上传 ngx_cache_purge-2.3.tar.gz 到/usr/local/src,解压

# cd /usr/local/src/

# tar -zxvf ngx_cache_purge-2.3.tar.gz

6.4上传当前的稳定版本 Nginx(nginx-1.6.2.tar.gz)到/usr/local/src 目录

6.5编译安装 Nginx(添加 ngx_cache_purge 模块)

# cd /usr/local/src/

# tar -zxvf nginx-1.6.2.tar.gz

# cd nginx-1.6.2

# ./configure --prefix=/usr/local/nginx --add-module=/usr/local/src/ngx_cache_purge-2.3

# make && make install

6.6配置 Nginx,设置负载均衡以及缓存

# vi /usr/local/nginx/conf/nginx.conf

部分配置如下:

user tracker01;

events {

worker_connections 1024;

use epoll;

}

http {

#设置缓存

。。。。

#设置缓存存储路径、存储方式、分配内存大小、磁盘最大空间、缓存期限

。。。。

#设置 group1 的服务器

upstream fdfs_group1 {

server 192.168.1.171:8888 weight=1 max_fails=2 fail_timeout=30s;

server 192.168.1.172:8888 weight=1 max_fails=2 fail_timeout=30s;

}

#group2

#group3

server{

listen 8000;

server_name localhost;

#设置 group 的负载均衡参数

location /group1/M00 {

proxy_pass http://fdfs_group1;

。。。。

}

#group2

#group3

#设置清除缓存的访问权限

location ~/purge(/.*) {

allow 127.0.0.1;

allow 192.168.1.111;

allow 192.168.1.0/24;

deny all;

proxy_cache_purge http-cache $1$is_args$args;

}

}

}

(附配置文件/conf/tracker_nginx/nginx.conf

6.7按以上 nginx 配置文件的要求,创建对应的缓存目录

# mkdir -p /fastdfs/cache/nginx/proxy_cache

# mkdir -p /fastdfs/cache/nginx/proxy_cache/tmp

6.8系统防火墙打开对应的端口

# vi /etc/sysconfig/iptables

## Nginx

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8000 -j ACCEPT

重启防火墙

# service iptables restart

6.9启动 Nginx

# /usr/local/nginx/sbin/nginx

6.10重启 Nginx

# /usr/local/nginx/sbin/nginx -s reload

6.11设置 Nginx 开机启动

# vi /etc/rc.local

加入:

## Nginx

/usr/local/nginx/sbin/nginx

6.12文件访问测试

http://192.168.1.170:8000/group2/M00/00/00/wKgBrlhEbz6ARyVHAAB9W1YdTCY793.png

http://192.168.1.180:8000/group2/M00/00/00/wKgBrlhEbz6ARyVHAAB9W1YdTCY793.png

以上是最间配置,多次测试可以发现,每一个 Tracker 中的 Nginx 都单独对后端的 Storage 组做了负载均衡,但整套 FastDFS 集群如果想对外提供统一的文件访问地址,还需要对两个 Tracker 中的 Nginx 进行 HA 集群。

=======================================Keepalived+Nginx实现高可用Web负载均衡==========================================

一.所需安装包

keepalived-1.2.18.tar.gz

二.方案规划

VIP

IP

主机名

Nginx端口

默认主从

192.168.1.77

192.168.1.170

tracker01

8000

MASTER

192.168.1.180

tracker02

8000

BACKUP

3.本文档操作是在FastDFS安装并完成基础配置之后,故Nginx均已安装完毕。直接开始Keepalived开始配置

1.安装Keepalived(192.168.1.170, 192.168.1.180)

1.1上传或下载 keepalived(keepalived-1.2.18.tar.gz)到 /usr/local/src 目录

1.2解压安装

# cd /usr/local/src

# tar -zxvf keepalived-1.2.18.tar.gz

# cd keepalived-1.2.18

# ./configure --prefix=/usr/local/keepalived

# make && make install

备注:编译可能报错

configure: error:

!!! OpenSSL is not properly installed on your system. !!!

!!! Can not include OpenSSL headers files.

解决:yum -y install openssl-devel

1.3将 keepalived 安装成 Linux 系统服务

因为没有使用 keepalived 的默认路径安装(默认是/usr/local),安装完成之后,需要做一些工作

复制默认配置文件到默认路径

# 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/

设置 keepalived 服务开机启动

# chkconfig keepalived on

1.4修改 Keepalived 配置文件

# vi /etc/keepalived/keepalived.conf

1.4.1 MASTER 节点配置文件(192.168.1.170)

! Configuration File for keepalived

global_defs {

## keepalived 自带的邮件提醒需要开启 sendmail 服务。建议用独立的监控或第三方 SMTP

router_id tracker01  ## 标识本节点的字条串,通常为 hostname

}

## keepalived 会定时执行脚本并对脚本执行的结果进行分析,动态调整 vrrp_instance 的优先级。如果脚本执行结果为 0,并且 weight 配置的值大于 0,则优先级相应的增加。如果脚本执行结果非 0,并且 weight配置的值小于 0,则优先级相应的减少。其他情况,维持原本配置的优先级,即配置文件中 priority 对应的值。

vrrp_script chk_nginx {

script "/etc/keepalived/nginx_check.sh"  ## 检测 nginx 状态的脚本路径

interval 2  ## 检测时间间隔

weight -20  ## 如果条件成立,权重-20

}

## 定义虚拟路由,VI_1 为虚拟路由的标示符,自己定义名称

vrrp_instance VI_1 {

state MASTER  ## 主节点为 MASTER,对应的备份节点为 BACKUP

interface eth1 ## 绑定虚拟 IP 的网络接口,与本机 IP 地址所在的网络接口相同,我的是 eth1

virtual_router_id 170  ## 虚拟路由的 ID 号,两个节点设置必须一样,可选 IP 最后一段使用, 相同的 VRID 为一个组,他将决定多播的 MAC 地址

mcast_src_ip 192.168.1.170  ## 本机 IP 地址

priority 100  ## 节点优先级,值范围 0-254,MASTER 要比 BACKUP 高

nopreempt ## 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题

advert_int 1  ## 组播信息发送间隔,两个节点设置必须一样,默认 1s

## 设置验证信息,两个节点必须一致

authentication {

auth_type PASS

auth_pass 1111 ## 真实生产,按需求对应该过来

}

## 将 track_script 块加入 instance 配置块

track_script {

chk_nginx ## 执行 Nginx 监控的服务

}

## 虚拟 IP 池, 两个节点设置必须一样

virtual_ipaddress {

192.168.1.77  ## 虚拟 ip,可以定义多个

}

}

(附配置文件/conf/keepalived/master/keepalived.conf

1.4.2 BACKUP节点配置文件(192.168.1.180)

! Configuration File for keepalived

global_defs {

## keepalived 自带的邮件提醒需要开启 sendmail 服务。建议用独立的监控或第三方 SMTP

router_id tracker02  ## 标识本节点的字条串,通常为 hostname

}

## keepalived 会定时执行脚本并对脚本执行的结果进行分析,动态调整 vrrp_instance 的优先级。如果脚本执行结果为 0,并且 weight 配置的值大于 0,则优先级相应的增加。如果脚本执行结果非 0,并且 weight配置的值小于 0,则优先级相应的减少。其他情况,维持原本配置的优先级,即配置文件中 priority 对应的值。

vrrp_script chk_nginx {

script "/etc/keepalived/nginx_check.sh"  ## 检测 nginx 状态的脚本路径

interval 2  ## 检测时间间隔

weight -20  ## 如果条件成立,权重-20

}

## 定义虚拟路由,VI_1 为虚拟路由的标示符,自己定义名称

vrrp_instance VI_1 {

state BACKUP                    ## 主节点为 MASTER,对应的备份节点为 BACKUP

interface eth1                   ## 绑定虚拟 IP 的网络接口,与本机 IP 地址所在的网络接口相同,我的是 eth1

virtual_router_id 170              ## 虚拟路由的 ID号,两个节点设置必须一样,可选 IP 最后一段使用, 相同的VRID为一个组,他将决定多播的 MAC地址

mcast_src_ip 192.168.1.180   ## 本机IP地址

priority 100                       ## 节点优先级,值范围 0-254,MASTER 要比 BACKUP 高

nopreempt                        ## 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题

advert_int 1                      ## 组播信息发送间隔,两个节点设置必须一样,默认 1s

## 设置验证信息,两个节点必须一致

authentication {

auth_type PASS

auth_pass 1111 ## 真实生产,按需求对应该过来

}

## 将 track_script 块加入 instance 配置块

track_script {

chk_nginx ## 执行 Nginx 监控的服务

}

## 虚拟 IP 池, 两个节点设置必须一样

virtual_ipaddress {

192.168.1.77  ## 虚拟 ip,可以定义多个

}

}

(附配置文件/conf/keepalived/backup/keepalived.conf

1.5编写 Nginx 状态检测脚本 /etc/keepalived/nginx_check.sh (已在 keepalived.conf 中配置)

# vi /etc/keepalived/nginx_check.sh

脚本要求:如果 nginx 停止运行,尝试启动,如果无法启动则杀死本机的 keepalived 进程,keepalied将虚拟 ip 绑定到 BACKUP 机器上。内容如下:

#!/bin/bash

A=`ps -C nginx –no-header |wc -l`

if [ $A -eq 0 ];then

/usr/local/nginx/sbin/nginx

sleep 2

if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then

killall keepalived

fi

fi

保存后,给脚本赋执行权限:

# chmod +x /etc/keepalived/nginx_check.sh

1.6启动 Keepalived

# service keepalived start

1.7 Keepalived+Nginx 的高可用测试

1.7.1关闭 192.168.1.170中的 Nginx,Keepalived 会将它重新启动

# /usr/local/nginx/sbin/nginx -s stop

1.7.2关闭 192.168.1.170中的 Keepalived,VIP会切换到 192.168.1.180中

# service keepalived stop

1.7.3重新启动 192.168.1.170中的 Keepalived,VIP又会切回到 192.168.1.170中来

service keepalived start

查看虚拟IP状态 # ip add

Keepalived 服务管理命令:

停止:service keepalived stop

启动:service keepalived start

重启:service keepalived restart

查看状态:service keepalived status

1.8方便测试,将170和180的Nginx主页修改一下

# vi /usr/local/nginx/html/index.html

<hr/>

<b>tracker01_170_master</b>

<hr/>

<hr/>

<b>tracker02_180_backup</b>

<hr/>

1.9文件访问测试:

http://192.168.1.77:8000/group2/M00/00/00/wKgBrlhEbz6ARyVHAAB9W1YdTCY793.png

至此配置完毕。

VIP(8000)

tracker_Nginx(8000)

storage_Nginx(8888)

192.168.1.77

192.168.1.170

192.168.1.180

192.168.1.171

192.168.1.172

192.168.1.173

192.168.1.174

192.168.1.175

192.168.1.176

文件访问:

storage

http://192.168.1.173:8888/group2/M00/00/00/wKgBrlhEbz6ARyVHAAB9W1YdTCY793.png

http://192.168.1.174:8888/group2/M00/00/00/wKgBrlhEbz6ARyVHAAB9W1YdTCY793.png

tracker

http://192.168.1.170:8000/group2/M00/00/00/wKgBrlhEbz6ARyVHAAB9W1YdTCY793.png

http://192.168.1.180:8000/group2/M00/00/00/wKgBrlhEbz6ARyVHAAB9W1YdTCY793.png

VIP

http://192.168.1.77:8000/group2/M00/00/00/wKgBrlhEbz6ARyVHAAB9W1YdTCY793.png

转载于:https://www.cnblogs.com/zengnansheng/p/10389726.html

FastDFS之Linux下搭建相关推荐

  1. Linux下搭建Lotus Domino集群

    Linux下搭建Lotus Domino 集群 本文内容是Linux平台下Lotus Domino服务器部署案例(http://chenguang.blog.51cto.com/350944/1334 ...

  2. linux下搭建redis并解决无法连接redis的问题

    linux下搭建redis并解决无法连接redis的问题 参考文章: (1)linux下搭建redis并解决无法连接redis的问题 (2)https://www.cnblogs.com/bestmy ...

  3. linux下搭建mrbs会议室预定管理系统

    linux下搭建mrbs会议室预定管理系统 linux下搭建mrbs会议室预定管理系统 Meeting Room Booking System (MRBS) 是一个基于 PHP/MySQL 开发的,使 ...

  4. linux下搭建hadoop环境步骤分享

    linux下搭建hadoop环境步骤,需要的朋友可以参考下 1.下载hadoop包 wget http://apache.freelamp.com/hadoop/core/stable/hadoop- ...

  5. Linux下搭建jenkins+svn+http+maven自动化部署

    Linux下搭建jenkins+svn+http+maven自动化部署 服务器设置: 卸载redhat的yum,安装centos的yum,配置第三方yum 1.删除redhat原有的rpm -qa | ...

  6. linux下搭建hexo环境

    最近对搭建个人博客比较感兴趣,但是刚搭建好next主题基本博客,电脑就坏了,借了一台电脑继续搞,不想在他电脑中弄太多环境,所以我准备在自己电脑的服务器上搭建hexo环境 服务器环境: (1)cento ...

  7. 关于在linux下搭建VSFTP下匿名不能上传的问题

    关于在linux下搭建VSFTP下匿名不能上传的问题:   在/etc/vsftpd/vsftpd.conf(vsftpd的核心配置文件)中  配置如下:  anonymous_enable=YES( ...

  8. Linux 下搭建 Scala 开发环境

    在实际开发中,我们的项目是部署到 linux,因此,我们需要在 Linux 下搭建 scala 的环境. 具体的步骤如下: 下载对应的 scala 的安装软件.scala-2.11.8.tgz 通过远 ...

  9. Linux 下搭建 Java Web 开发环境

    Linux 下搭建 Java Web 开发环境 我的小站.Github Java Web,是用Java技术来解决相关web互联网领域的技术栈,下方为 Linux 下搭建 Java Web 开发环境教程 ...

最新文章

  1. oracle 11g asm 磁盘组兼容属性
  2. Hexo,自定义博客主题
  3. SQK Server实现 LeetCode 175 组合两个表
  4. 广义S变换的地震高分辨率处理中的应用
  5. html符号中文含义大全特殊,中文标点符号大全名称
  6. Java对接微信公众号模板消息
  7. 计算机word文档技巧,Word文档操作技巧:同时打开多个文档3种方法-word技巧-电脑技巧收藏家...
  8. JavaScript 数组方法every()
  9. 在python中使用autoit_在Python中调用AutoIt函数
  10. Unity HDRP室外场景打光流程分享(下篇)-白天和夜晚场景打光
  11. 瑞利熵与拉普拉斯矩阵
  12. 语料标注平台BRAT安装指导
  13. C3P0如何集成neo4j
  14. Android WebView 因重定向无法正常goBack()的一种解决小方案
  15. 寻找与疾病相关的SNP位点——R语言从SNPedia批量提取搜索数据
  16. win10软件字符乱码解决
  17. 【容器化】浅析容器化以及容器编排
  18. Git:git-merge的--ff和--no-ff
  19. SRRC认证样品要求 - 无线电发射设备型号核准设备类型及样...
  20. Kettle入门到实战

热门文章

  1. 第五课:系统目录及ls·文件类型及alias命令介绍
  2. iOS 进阶—— iOS内存管理
  3. phpcms V9判断奇数偶数的实例
  4. 使用jquery.more.js来实现点击底部更多后, 底部加载出新的数据
  5. Nutch插件开发及发布流程
  6. SQL Server 2014 许可证(五)降级与升级
  7. 27.5. PROCEDURE ANALYSE()
  8. pylons中常用的paster命令
  9. c程序设计语言_习题8-4_重新实现c语言的库函数fseek(FILE*fp,longoffset,intorigin)
  10. Iaas-Paas-Saas