说正文前,先感谢happy_fish100提供的fastdfs,轻量级的分布式文件服务器。

随着用户量的变大,图片,视频等的量会不断的增大,这个时候一个硬盘可能不够用了,就要加硬盘。硬盘加不了时,就要增加服务器了。同一组服务器,文件服务器的东西是一样,不同组的服务器,有不同的文件,不同的组之间,共同组建了文件服务器的所有内容。

下面说一下,安装配置的过程,这里配置的方法,根开发者提供的方法不一样,我没有用到fastdfs-nginx-module,通过配置nginx实现了fastdfs-nginx-module的功能。

一,Fastdfs的下载

地址:http://sourceforge.net/projects/fastdfs/files/FastDFS%20Server%20Source%20Code/

二,服务器,以及系统

我用的centos 6.5 x86_64 ,fastdfs v5.01架构如下:

架构图

这里的tracker是单点的,如果出了故障就郁闷了,以前搞过一次多tracker,不过版本比较老了。请参考:fastdfs 多服务器 配置

三,安装fastdfs和nginx

1,安装nginx

  1. //安装,gcc,automake,autoconf等依赖包
  2. [root@localhost download]$ yum install gettext gettext-devel libXft libXft-devel libXpm libXpm-devel\
  3. automake autoconf libXtst-devel gtk+-devel gcc zlib-devel libpng-devel gtk2-devel glib-devel
  4. //安装FastDFS
  5. [root@localhost download]# tar zxf FastDFS_v5.01.tar.gz
  6. [root@localhost download]# cd FastDFS
  7. [root@localhost download]# ./make.sh
  8. [root@localhost download]# ./make.sh install
  9. //安装成功有以下内容
  10. [root@localhost fdfs]# ll /usr/local/bin/ |grep fdfs
  11. -rwxr-xr-x 1 root root 522870 7月 4 03:20 fdfs_appender_test
  12. -rwxr-xr-x 1 root root 522823 7月 4 03:20 fdfs_appender_test1
  13. -rwxr-xr-x 1 root root 513975 7月 4 03:20 fdfs_append_file
  14. -rwxr-xr-x 1 root root 513393 7月 4 03:20 fdfs_crc32
  15. -rwxr-xr-x 1 root root 513927 7月 4 03:20 fdfs_delete_file
  16. -rwxr-xr-x 1 root root 514329 7月 4 03:20 fdfs_download_file
  17. -rwxr-xr-x 1 root root 514093 7月 4 03:20 fdfs_file_info
  18. -rwxr-xr-x 1 root root 525024 7月 4 03:20 fdfs_monitor
  19. -rwxr-xr-x 1 root root 1179642 7月 4 03:20 fdfs_storaged
  20. -rwxr-xr-x 1 root root 529805 7月 4 03:20 fdfs_test
  21. -rwxr-xr-x 1 root root 527726 7月 4 03:20 fdfs_test1
  22. -rwxr-xr-x 1 root root 655761 7月 4 03:20 fdfs_trackerd
  23. -rwxr-xr-x 1 root root 514173 7月 4 03:20 fdfs_upload_appender
  24. -rwxr-xr-x 1 root root 514951 7月 4 03:20 fdfs_upload_file

2,安装nginx

  1. [root@localhost fdfs]# yum install nginx

所有机器的fastdfs和nginx安装方法都是一样。

四,配置192.168.10.219服务器

1,配置tracker和storage

  1. [root@localhost fdfs]# vim /etc/fdfs/tracker.conf
  2. port=22122                   #设置tracker的端口号
  3. base_path=/var/www/fastdfs   #设置tracker的数据文件和日志目录(需预先创建)

如果要调优,参考:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=1941456

  1. [root@localhost fdfs]# vim /etc/fdfs/storage.conf
  2. group_name=group1                   #组名,根据实际情况修改
  3. port=23000                          #设置storage的端口号
  4. base_path=/var/www/fastdfs          #设置storage的日志目录(需预先创建)
  5. store_path_count=1                  #存储路径个数,需要和store_path个数匹配
  6. store_path0=/var/www/fastdfs        #存储路径
  7. tracker_server=192.168.10.219:22122 #tracker服务器的IP地址和端口号

2,tracker的nginx配置

  1. [root@localhost nginx]# cat /etc/nginx/nginx.conf   #配置主配置文件
  2. user nginx;
  3. worker_processes 1;
  4. events {
  5. worker_connections 65535;  #最大链接数
  6. use epoll;                 #新版本的Linux可使用epoll加快处理性能
  7. }
  8. error_log /var/log/nginx/error.log;
  9. pid /var/run/nginx.pid;
  10. http {
  11. server_names_hash_bucket_size 128;
  12. client_header_buffer_size 32k;
  13. large_client_header_buffers 4 32k;
  14. client_max_body_size 300m;
  15. sendfile on;
  16. tcp_nopush on;
  17. proxy_redirect off;
  18. proxy_set_header Host $http_host;
  19. proxy_set_header X-Real-IP $remote_addr;
  20. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  21. proxy_connect_timeout 90;
  22. proxy_send_timeout 90;
  23. proxy_read_timeout 90;
  24. proxy_buffer_size 16k;
  25. proxy_buffers 4 64k;
  26. proxy_busy_buffers_size 128k;
  27. proxy_temp_file_write_size 128k;
  28. log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  29. '$status $body_bytes_sent "$http_referer" '
  30. '"$http_user_agent" "$http_x_forwarded_for"';
  31. access_log /var/log/nginx/access.log main;
  32. #设置缓存存储路径、存储方式、分配内存大小、磁盘最大空间、缓存期限
  33. proxy_cache_path /var/cache/nginx/proxy_cache levels=1:2 keys_zone=http-cache:500m max_size=10g inactive=30d;
  34. proxy_temp_path /var/cache/nginx/proxy_cache/tmp;
  35. upstream fdfs_group1 { #设置group1的服务器
  36. server 192.168.10.209:8080 weight=1 max_fails=2 fail_timeout=30s;
  37. server 192.168.10.219:8080 weight=1 max_fails=2 fail_timeout=30s;
  38. }
  39. upstream fdfs_group2 { #设置group2的服务器
  40. server 192.168.10.103:10000 weight=1 max_fails=2 fail_timeout=30s;
  41. }
  42. include /etc/nginx/conf.d/*.conf;
  43. }
  1. [root@localhost fdfs]# cat /etc/nginx/conf.d/tracker.conf    #配置nginx的tracker
  2. server {
  3. listen 80;                #设置服务器端口
  4. server_name 192.168.10.219;
  5. location /group1/M00 {    #设置group1的负载均衡参数
  6. proxy_next_upstream http_502 http_504 error timeout invalid_header;
  7. proxy_cache http-cache;
  8. proxy_cache_valid 200 304 12h;
  9. proxy_cache_key $uri$is_args$args;
  10. proxy_pass http://fdfs_group1;
  11. expires 30d;
  12. }
  13. location ~* /group2/(M00|M01) { #设置group2的负载均衡参数
  14. proxy_next_upstream http_502 http_504 error timeout invalid_header;
  15. proxy_cache http-cache;
  16. proxy_cache_valid 200 304 12h;
  17. proxy_cache_key $uri$is_args$args;
  18. proxy_pass http://fdfs_group2;
  19. expires 30d;
  20. }
  21. }
  1. [root@localhost conf.d]# cat /etc/nginx/conf.d/storage.conf   #配置nginx的storage
  2. server
  3. {
  4. listen 8080;
  5. server_name 192.168.10.219;
  6. location /group1/M00/ {
  7. root /var/www/fastdfs/data;
  8. rewrite ^/group1/M00/(.*) /$1 break;
  9. }
  10. }

3,启动tracker,storage和nginx

  1. //启动
  2. [root@localhost fdfs]# /usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
  3. [root@localhost fdfs]# /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf restart
  4. [root@localhost fdfs]# /etc/init.d/nginx start

在这里有一点要注意,就是要先启动tracker在启动storage,如果nginx报目录没有建,创建一下,在重新启动

五,配置192.168.10.209服务器

1,配置storage

  1. [root@localhost fdfs]# vim /etc/fdfs/storage.conf
  2. group_name=group1                   #组名,根据实际情况修改
  3. port=23000                          #设置storage的端口号
  4. base_path=/var/www/fastdfs          #设置storage的日志目录(需预先创建)
  5. store_path_count=1                  #存储路径个数,需要和store_path个数匹配
  6. store_path0=/var/www/fastdfs        #存储路径
  7. tracker_server=192.168.10.219:22122 #tracker服务器的IP地址和端口号

2,nginx配置

  1. [root@localhost conf.d]# cat /etc/nginx/conf.d/storage.conf   #配置storage
  2. server
  3. {
  4. listen 8080;
  5. server_name 192.168.10.209;
  6. location /group1/M00/ {
  7. root /var/www/fastdfs/data;
  8. rewrite ^/group1/M00/(.*) /$1 break;
  9. }
  10. }

3,启动

  1. //启动
  2. [root@localhost fdfs]# /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf restart
  3. [root@localhost fdfs]# /etc/init.d/nginx start

六,配置192.168.10.103服务器

1,配置storage

  1. [root@localhost fdfs]# vim /etc/fdfs/storage.conf
  2. group_name=group2                   #组名,根据实际情况修改
  3. port=23000                          #设置storage的端口号
  4. base_path=/var/www/fastdfs          #设置storage的日志目录(需预先创建)
  5. store_path_count=2                  #存储路径个数,需要和store_path个数匹配
  6. store_path0=/var/www/fastdfs        #存储路径
  7. store_path1=/mnt/usb/fastdfs2       #硬盘2的存储路径
  8. tracker_server=192.168.10.219:22122 #tracker服务器的IP地址和端口号

在这里有一点要注意,就是有二块硬盘,存文件的目录也有二个

2,配置nginx

  1. [root@localhost conf.d]# cat /etc/nginx/conf.d/storage.conf    #配置storage
  2. server
  3. {
  4. listen 10000;
  5. server_name 192.168.10.103;
  6. location /group2/M01/ {
  7. root /mnt/usb/fastdfs2/data;
  8. rewrite ^/group2/M01/(.*) /$1 break;
  9. }
  10. location /group2/M00/ {
  11. root /var/www/fastdfs/data;
  12. rewrite ^/group2/M00/(.*) /$1 break;
  13. }
  14. }

3,启动

  1. //启动
  2. [root@localhost fdfs]# /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf restart
  3. [root@localhost fdfs]# /etc/init.d/nginx start

到这儿就安装配置好了,有一点要注意:

就是访问文件服务器的文件时,地址要用tracker的地址,例如:

http://192.168.10.219/group2/M01/00/00/wKgKZ1PAEquAbLj1AAK4TxGeCvM649.jpg

centos fastdfs 多服务器 多硬盘 多组 配置详解的更多相关文章

  1. 最简单实用的MongoDB安装教程:在CentOS中使用 yum 安装MongoDB及服务器端配置详解

    一.准备工作: 运行yum命令查看MongoDB的包信息 [root@vm ~]# yum info mongo-10gen (提示没有相关匹配的信息,) 说明你的centos系统中的yum源不包含M ...

  2. Linux服务器access_log日志分析及配置详解(二)

    默认nginx / Linux日志在哪个文件夹? 一般在 xxx.xxx.xxxx.com/home/admin 路径下面的error.log文件和access.log文件error_log logs ...

  3. Linux服务器access_log日志分析及配置详解(一)

    nginx的log日志分为access log 和 error log 其中access log 记录了哪些用户,哪些页面以及用户浏览器.ip和其他的访问信息 error log 则是记录服务器错误日 ...

  4. FastDFS学习总结(2)--Tracker与Storage配置详解

    1.Tracker基本配置 # is this config file disabled # false for enabled # true for disabled disabled=false ...

  5. Linux NFS服务器的安装与配置详解

    一.NFS服务简介 NFS是Network File System(网络文件系统).主要功能是通过网络让不同的服务器之间可以共享文件或者目录.NFS客户端一般是应用服务器(比如web,负载均衡等),可 ...

  6. Netsuite Formula > Oracle函数列表速查(PL/SQL单行函数和组函数详解).txt

    PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序.在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 单行函数 ...

  7. Linux - CentOS6.5服务器搭建与初始化配置详解(上)

    1.新建一个虚拟机 选择典型 单机下一步 p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm 0cm 0.0001pt; text-align: ...

  8. ASP.NET Core Web服务器 Kestrel和Http.sys 特性详解

    ASP.NET Core Web服务器 Kestrel和Http.sys 特性详解 1.1. 名词解释 1.2. Kestrel基本工作原理 1.2.1. Kestrel的基本架构 1.2.2. Ke ...

  9. Linux服务器,服务管理--systemctl命令详解,设置开机自启动

    Linux服务器,服务管理--systemctl命令详解,设置开机自启动 syetemclt就是service和chkconfig这两个命令的整合,在CentOS 7就开始被使用了. 摘要: syst ...

随机推荐

  1. GLSL Entry point not found

    解决方案: 在引用OpenGL的头文件 #include <GL/glew.h>#include <GL/glut.h> 前添加 #define GLUT_DISABLE_AT ...

  2. Java关于队列的自我实现

    1.循环队列的封装 package com.pinjia.shop.common.collection; /** * Created by wangwei on 2016/12/29. * 循环队列的 ...

  3. Diablo3

    1.装备 主手:元素弓 副手:精细箭袋 头: 胸:燃火外套 手:娜塔亚的手感 护腕:稳击护腕 戒指:罗盘玫瑰+布尔凯索的婚戒 颈部:旅者之誓 腰:科雷姆的强力腰带(速度加25%) 腿:深渊挖掘裤 脚: ...

  4. Material Design入门(二)

    本文主要包括以下内容 侧滑菜单DrawerLayout实现 CardView实现 DrawerLayout介绍 drawerLayout是Support Library包中实现了侧滑菜单效果的控件,可 ...

  5. php 基础语法

    <?php //注释 /* 多行注释 */ //输出语句 //echo "hello","helloa"; //print "world&quo ...

  6. Maven使用笔记(三)Maven的工作原理

    概述 Maven是一个项目管理工具,他包含了一个项目对象模型,一组标准集合,一个项目生命周期,一个依赖管理系统和用来运行定义生命周期阶段中插件目标的逻辑. Maven是基于约定优于配置的思想来管理代码 ...

  7. web异常、并发与安全

  8. Xamarin Visual Studio提示找不到AssemblyAttributes.cs文件

    Xamarin Visual  Studio提示找不到AssemblyAttributes.cs文件   错误信息:Could not find file ‘C:\Users\[用户名]\AppDat ...

  9. DP/最短路 URAL 1741 Communication Fiend

    题目传送门 /* 题意:程序从1到n版本升级,正版+正版->正版,正版+盗版->盗版,盗版+盗版->盗版 正版+破解版->正版,盗版+破解版->盗版 DP:每种情况考虑一 ...

  10. 海贼王之——梦想音乐

      相信和很多海粉一样,对伙伴的关照和战斗,是相当地震撼.   好东西时不时地听一下,然后感受那种刷新全身表层细胞,触电...:   音乐链接: http://v.youku.com/v_show/i ...