FastDFS+nginx+keepalived集群搭建

安装环境

  nginx-1.6.2
  libfastcommon-master.zip
  FastDFS_v5.05.tar.gz(http://sourceforge.net/projects/fastdfs/files/)
  fastdfs-nginx-module_v1.16.tar.gz
  ngx_cache_purge-2.3.tar.gz(用于清除指定url的缓存)

  keepalived

  VM虚拟机redhat6.5-x64:192.168.1.201、192.168.1.202、192.168.1.203、192.168.1.204、
              192.168.1.201、192.168.1.202、192.168.1.203、192.168.1.204、
  Xshell4

部署方案

  

安装步骤

  步骤一:203、204、205、206、207、208安装FastDFS

  参考:https://www.cnblogs.com/cac2020/p/9534967.html

  步骤二:配置跟踪器(192.168.1.203 、192.168.1.204 节点)

  

    mkdir -p /fastdfs/tracker&& cp /etc/fdfs/tracker.conf.sample tracker.conf && vim /etc/fdfs/tracker.conf
修改内容:
    base_path=/fastdfs/tracker
    #关键点:轮询分配到各个group里
    store_lookup=0
启动:
    /etc/init.d/fdfs_trackerd start

  步骤三:配置FastDFS存储(192.168.1.205-208)

  205、206作为group1 , 207、208作为group2

  

mkdir -p /fastdfs/storage && cp /etc/fdfs/storage.conf.sample storage.conf && vim /etc/fdfs/storage.conf
修改内容:
disabled=false
group_name=group1      #组名,第一组(205、206)为 group1 第二组(207、208)为 group2
port=23000             #storage 端口号,同组的端口号必须相同
base_path=/fastdfs/storage
store_path_count=1     #存储路径个数 需要和 store_path 个数匹配
store_path0=/fastdfs/storage #设置存储路径
tracker_server=192.168.1.203:22122 #tracker 服务器的 ip 和端口
tracker_server=192.168.1.204:22122 #多个 tracker 直接添加多条记录
http.server_port=8888  #设置 http 端口号
启动:
/etc/init.d/fdfs_storaged start

  到此为止我们的 FastDFS 集群环境已经搭建完成!!!!

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  步骤四:4个存储节点(205 206 207 208)整合Nginx

1.安装整合包fastdfs-nginx-module_v1.16.tar.gz
tar -zxvf /usr/local/software/fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/fast/
vim /usr/local/fast/fastdfs-nginx-module/src/config
修改内容:去掉第四行中的 local 文件层次

2.安装Nginx 加载fastdfs-nginx-module模块
tar -zxvf /usr/local/software/nginx-1.6.2.tar.gz -C /usr/local
cd /usr/local/nginx-1.6.2 && ./configure --add-module=/usr/local/fast/fastdfs-nginx-module/src/
重新编译命令: make && make install

3.修改整合模块配置
cp /usr/local/fast/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/  && vim /etc/fdfs/mod_fastdfs.conf
修改内容:
注意:第一组(205、206)和第二组(207、208) 节点修改内容,只有组名不同
connect_timeout=10
tracker_server=192.168.1.203:22122
tracker_server=192.168.1.204:22122
storage_server_port=23000
url_have_group_name = true
store_path0=/fastdfs/storage
group_name=group1 #第一组为 group1  第二组为 group2
group_count = 2 

#追加以下内容
[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
4.复制配置文件
cd /usr/local/fast/FastDFS/conf/ && cp http.conf mime.types /etc/fdfs/
5.创建软连接,在/fastdfs/storage 文件存储目录下创建软连接,将其链接到实际存放数据的目录。
命令: ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00
6.修改 Nginx 配置文件4个节点
命令:vim usr/local/nginx.conf
修改内容:
listen 8888;
server_name localhost;
location ~/group([0-9])/M00 {
    #alias /fastdfs/storage/data;
    ngx_fastdfs_module;
}
启动4个节点Nginx: /usr/local/nginx/sbin/nginx

  步骤五:在2个跟踪器节点上安装nginx为4个存储节点提供负载均衡

1.安装ngx_cache_purge-2.3.tar.gz(清除指定url的缓存)
tar -zxvf /usr/local/software/ngx_cache_purge-2.3.tar.gz –C /usr/local/fast/

2.安装Nginx  加入 ngx_cache_purge (加入清除缓存模块)
tar -zxvf /usr/local/software/nginx-1.6.2.tar.gz -C /usr/local
cd /usr/local/nginx-1.6.2 && ./configure --add-module=/usr/local/fast/ngx_cache_purge-2.3/src/
重新编译命令: make && make install

3.修改nginx配置
vim /usr/local/nginx/conf/nginx.conf
修改内容:
events {
    worker_connections  1024;
    use epoll;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    tcp_nopush     on;
    keepalive_timeout  65;
    #设置缓存
    server_names_hash_bucket_size 128;
    client_header_buffer_size 32k;
    large_client_header_buffers 4 32k;
    client_max_body_size 300m;   

    proxy_redirect off;
    proxy_set_header Host $http_host; 

    proxy_set_header Cookie $http_cookie; 

    proxy_set_header X-Real-IP $remote_addr; 

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 

    proxy_connect_timeout 90;
    proxy_read_timeout 90;
    proxy_send_timeout 90;
    proxy_buffer_size 16k;
    proxy_buffers 4 64k;
    proxy_busy_buffers_size 128k;
    proxy_temp_file_write_size 128k;
    #设置缓存存储路径、存储方式、分配内存大小、磁盘最大空间、缓存期限
    proxy_cache_path /fastdfs/cache/nginx/proxy_cache levels=1:2
    keys_zone=http-chche:200m max_size=1g inactive=30d;
    proxy_temp_path /fastdfs/cache/nginx/proxy_cache/tmp; 

    # weight 权重  max_fails 失败重试次数 fail_timeout 连接失败超时时间
    #设置 group1 的服务器
    upstream fdfs_group1 {
         server 192.168.1.205:8888 weight=1 max_fails=2 fail_timeout=30s;
         server 192.168.1.206:8888 weight=1 max_fails=2 fail_timeout=30s;
    } 

    #设置 group2 的服务器
    upstream fdfs_group2 {
         server 192.168.1.207:8888 weight=1 max_fails=2 fail_timeout=30s;
         server 192.168.1.208:8888 weight=1 max_fails=2 fail_timeout=30s;
    } 

 server {
        listen       8000;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main; 

        #设置 group 的负载均衡参数
        location /group1/M00 {
           proxy_next_upstream http_502 http_504 error timeout invalid_header;
            proxy_cache http-cache;
            proxy_cache_valid  200 304 12h;
            proxy_cache_key $uri$is_args$args;
            proxy_pass http://fdfs_group1;
            expires 30d;
        } 

         location /group2/M00 {
            proxy_next_upstream http_502 http_504 error timeout invalid_header;
            proxy_cache http-cache;
            proxy_cache_valid 200 304 12h;
            proxy_cache_key $uri$is_args$args;
            proxy_pass http://fdfs_group2;
            expires 30d;
        } 

        #设置清除缓存的访问权限
        location ~/purge(/.*) {
            allow 127.0.0.1;
            allow 192.168.1.0/24;
            deny all;
            proxy_cache_purge http-cache $1$is_args$args;
        }
        #error_page  404              /404.html;
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root html;
        }
}

4.按以上nginx 配置文件的要求,创建对应的缓存目录2个跟踪器节点都需要:
mkdir -p /fastdfs/cache/nginx/proxy_cache
mkdir -p /fastdfs/cache/nginx/proxy_cache/tmp
启动ngnix:/usr/local/nginx/sbin/nginx

  步骤六:201、202节点安装keepalived+nginx,对203、204提供负载均衡并对外外提供统一访问IP

1.安装nginx
修改nginx配置
vim /usr/local/nginx/conf/nginx.conf
修改内容:
upstream fastdfs_tracker {
    server 192.168.1.203:8000 weight=1 max_fails=2 fail_timeout=30s;
    server 192.168.1.204:8000 weight=1 max_fails=2 fail_timeout=30s;
}
server {
        listen       80;
        server_name  localhost;
        location / {
            root html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root html;
        } 

        ## FastDFS Proxy 代理路径设置为 /fastdfs
        location /fastdfs {
            root   html;
            index  index.html index.htm;
            proxy_pass  http://fastdfs_tracker/;
            proxy_set_header Host  $http_host;
            proxy_set_header Cookie $http_cookie;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            client_max_body_size  300m;
        }
}

2.安装keepalived
修改keepalived配置
参考:https://www.cnblogs.com/cac2020/p/9528106.html

最后注意:千万不要使用 kill -9 命令强杀 FastDFS 进程,否则可能会导致 binlog 数据丢失  

关闭集群步骤:
1、201 202 两台一级负载节点
关闭 keepalived 命令:service keepalived stop
关闭 nginx 命令:/usr/local/nginx/sbin/nginx –s stop 

2、203 204 两台二级负载节点,跟踪器节点
关闭 nginx 命令:/usr/local/nginx/sbin/nginx –s stop
关闭 trackerd 跟踪器命令:/etc/init.d/fdfs_trackerd stop 

3、205 206 207 208 四台三级负载节点,存储节点
关闭 nginx 命令:/usr/local/nginx/sbin/nginx –s stop
关闭 storage 存储器命令: /etc/init.d/fdfs_storaged stop
注意:千万不要使用 kill -9 命令强杀 FastDFS 进程,否则可能会导致 binlog 数据丢失

参考手册:keepalived+nginx+fastdfs集群安装手册.pdf

原文地址:https://www.cnblogs.com/cac2020/p/9543263.html

时间: 2024-11-08 09:46:56

FastDFS+nginx+keepalived集群搭建的相关文章

Apache+tomcat或Nginx+tomcat集群搭建

Apache+tomcat集群搭建 1.http://httpd.apache.org/下载apache,本博客以httpd-2.4.12-x86-vc11-r2版本为例(第一个发行版中的) 2.http://mirror.bjtu.edu.cn/apache/tomcat/tomcat-connectors/jk/binaries/windows/ 下载mod_jk 3.注意Apache和mod_jk的版本,32bit后者64bit要统一 4.apache的httpd.conf文件可能有点问题

构建企业级Nginx+Keepalived集群架构

随着Nginx在国内的发展潮流,越来越多的互联网公司都在使用Nginx. Nginx高性能.稳定性成为IT人士青睐的http和反向代理服务器,今天我们来实战构建Nginx+Keepalived高可用架构配置,如下为网络架构图: 一.环境准备: 系统环境:CentOS 6.5 x86_64 Nginx版本:nginx v1.6.2 Keepalived版本:keepalived v1.2.1 Nginx-1:192.168.33.8 (Master) Nginx-2:192.168.33.10 (

nginx+keepalived集群部署

原文地址:http://blog.51cto.com/1054054/2306779

haproxy+keepalived搭建nginx+lamp集群

haproxy+keepalived搭建nginx+lamp集群 实验拓扑: 实验环境: 主机 Ip地址 软件 haproxy主调度器 192.168.100.154 keepalived-1.2.13.tar.gz haproxy-1.4.24.tar.gz haproxy从调度器 192.168.100.155 keepalived-1.2.13.tar.gz haproxy-1.4.24.tar.gz Nginx1 192.168.100.152 nginx-1.6.2.tar.gz Ng

多puppetmaster,多ca,keepalived+haproxy(nginx)puppet集群搭建

多puppetmaster,多ca,keepalived+haproxy(nginx)puppet集群搭建 一.服务器详情 192.168.122.111 pm01.jq.com pm01 #(puppetmaster服务器) 192.168.122.112 pm02.jq.com pm02 #(puppetmaster服务器) 192.168.122.121 ag01.jq.com ag01 #(puppet agent服务器) 192.168.122.122 ag02.jq.com ag02

LVS+Keepalived+Nginx+Tomcat高可用集群搭建(转)

LVS+Keepalived+Nginx+Tomcat高可用集群搭建 最近公司重整架构,十几台服务器而且还要尽可能节约成本.我就谷歌了一下在几种集群之前进行比较最终采用了Keepalived+Nginx做负债均衡高可用.虽然之前也研究过集群,看过很多集群方面的原理和架构,但毕竟没有真正操作过以下案例是在虚拟机中完成实验其实对于高可用搭建来说只用给出Keepalived和Nginx的配置即可后面的一些安装搭建完全是本人项目需要可以不用理睬仅供参考. 本文只是实验搭建记录方便以后在服务器中实施搭建.

nginx+apache+php+mysql服务器集群搭建

nginx+apache+php+mysql服务器集群搭建 由于需要搭建了一个基本的服务器集群.具体的配置方案先不说了,到有时间的时候再介绍.下面介绍下整个方案的优点. 我总共准备了四台阿里云的主机,架设分别是A,B1,B2,C,A在集群的最前面,B1和B2在A的后面,C在最后面.A主要用的nginx,用nginx做反向代理的功能实在是强大.nginx把来自80的http请求都转发到B1和B2上,B1和B2主要是两台apache,用于php解析.B1和B2来连接C上的mysql.A上的nginx

基于Vmare的虚拟Linux集群搭建-lvs+keepalived

基于Vmare的虚拟Linux集群搭建-lvs+keepalived 本文通过keepalived实现lvs服务器的的双机热备和真实服务器之间的负载均衡.这方面的blog挺多,但是每个人搭建集群的环境不同,遇到的问题也不同,本文简述配置的一些过程以及配置过程中遇到问题时的解决方案. 准本工作 1. 创建Linux虚拟机 本文是基于Vmare虚拟环境搭建集群的,所以首先在Vmare中创建一些虚拟机(安装一个Linux系统,其他的复制第一次安装的即可),本文创建4台虚拟机.网卡模式设置成桥接方式,这

实践出真知——一文教你搭建Nginx+Tomcat集群,实现负载均衡及动静分离

实践出真知--一文教你搭建Nginx+Tomcat集群,实现负载均衡及动静分离 前言 ? 想必大家对于Nginx和Tomcat都非常熟悉了,Nginx的应用非常广泛,不仅是对web静态资源非常友好,而且也是非常实用的反向代理和负载均衡软件.结合后端Tomcat的服务,从而搭建Nginx+Tomcat集群. ? 对于直接想要实践的朋友而言可以获取本文的链接中的软件包后直接看第三备份的内容. 一.集群搭建结构及拓扑 1.1集群架构图示 Nginx+Tomcat集群的结构示意图如下: 1.2系统环境与