Centos安装FastDFS+Nginx(一天时间搞定)

最近在研究和使用Fastdfs,别人搭的环境,终究是别人的,绝知此事要躬行~躬行啊~
   
   下面的脚本主要参考了官方的INSTALL文件,这个是比较权威的,部分地方和实际情况不一致。
比如配置文件的名字,Fastdfs的安装位置。

一、下载
    https://github.com/happyfish100/fastdfs fastdfs-5.05.zip

https://github.com/happyfish100/libfastcommon libfastcommon-1.0.7.zip

https://github.com/happyfish100/fastdfs-nginx-module fastdfs-nginx-module.zip
二、安装
先安装libfastcommon-1.0.7.zip

解压命令 unzip libfastcommon-1.0.7.zip

cd  libfastcommon-1.0.7
./make.sh
./make.sh install

再安装fastdfs
unzip fastdfs-5.05.zip
./make.sh
./make.sh install

如果没有先安装libfastcommon,会报错
"执行 ./make.sh 报以下错误:

cc -Wall -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -g -O -DDEBUG_FLAG -DOS_LINUX -DIOEVENT_USE_EPOLL -c -o ../common/fdfs_global.o ../common/fdfs_global.c  -I../common -I/usr/include/fastcommon
../common/fdfs_global.c:20:20: fatal error: logger.h: No such file or directory
#include "logger.h"
                    ^
compilation terminated."

三、配置和启动
   配置文件的位置
   /etc/fdfs/tracker.conf
   /etc/fdfs/storage.conf
   
   我的CentOS/etc/fdfs 有3个文件client.conf.sample、storage.conf.sample、tracker.conf.sample
   
   直接重命名这3个文件为,*.conf,修改配置~
   先启动tracker
   /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
   再启动storage
   /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
   
   很奇怪,为啥没有start命令,而是restart?
   
   [[email protected] ~]# ps -ef|grep tracker
root     25433     1  0 16:26 ?        00:00:00 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

[[email protected] ~]# ps -ef|grep storage
root     25533     1  2 16:28 ?        00:00:00 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
   
 四、上传
 #把配置文件上传了
 /usr/bin/fdfs_test /etc/fdfs/client.conf upload /etc/fdfs/client.conf
 
 [[email protected] logs]# /usr/bin/fdfs_test /etc/fdfs/client.conf upload /etc/fdfs/client.conf
This is FastDFS client test program v5.05

Copyright (C) 2008, Happy Fish / YuQing

FastDFS may be copied only under the terms of the GNU General
Public License V3, which may be found in the FastDFS source kit.
Please visit the FastDFS Home Page http://www.csource.org/ 
for more detail.

[2015-10-28 17:27:29] DEBUG - base_path=/root/fdfsdata, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0

tracker_query_storage_store_list_without_group: 
server 1. group_name=, ip_addr=42.96.184.84, port=23000

group_name=group1, ip_addr=42.96.184.84, port=23000
storage_upload_by_filename
group_name=group1, remote_filename=M00/00/00/KmC4VFYwlQGAItigAAAFsHrMXek69.conf
source ip address: 42.96.184.84
file timestamp=2015-10-28 17:27:29
file size=1456
file crc32=2060213737
example file url: http://42.96.184.84:8090/group1/M00/00/00/KmC4VFYwlQGAItigAAAFsHrMXek69.conf
storage_upload_slave_by_filename
group_name=group1, remote_filename=M00/00/00/KmC4VFYwlQGAItigAAAFsHrMXek69_big.conf
source ip address: 42.96.184.84
file timestamp=2015-10-28 17:27:29
file size=1456
file crc32=2060213737
example file url: http://42.96.184.84:8090/group1/M00/00/00/KmC4VFYwlQGAItigAAAFsHrMXek69_big.conf

五、监控
/usr/bin/fdfs_monitor /etc/fdfs/client.conf

[[email protected] logs]# /usr/bin/fdfs_monitor /etc/fdfs/client.conf
[2015-10-28 17:25:13] DEBUG - base_path=/root/fdfsdata, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0

server_count=1, server_index=0

tracker server is 42.96.184.84:22122

group count: 1

Group 1:
group name = group1
disk total space = 20157 MB
disk free space = 12235 MB
trunk free space = 0 MB
storage server count = 1
active server count = 1
storage server port = 23000
storage HTTP port = 8888
store path count = 1
subdir count per path = 256
current write server index = 0

六、访问文件
   网上找了下,自带的Http可能不能使用,可能啊~
   server {
 46     listen       80;
 47     server_name  file.fansunion.cn;
 48 
 49     location /group1/M00 {
 50         root   /root/fdfsdata/data;
 51          #ngx_fastdfs_module;
 52     }
 53 }
 
 Nginx配置没有使用ngx_fastdfs_module这个模块,出现了403.
    http://file.fansunion.cn/group1/M00/00/00/KmC4VFYwlQGAItigAAAFsHrMXek69_big.conf
   403 Forbidden
   nginx/1.6.2
   
   本地host已经配置了 42.96.184.84 file.fansunion.cn
   
七、尝试安装ngx_fastdfs_module,因为之前总是403各种问题
  参考ngx_fastdfs_module中的INSTALL文档
  1.源码安装Nginx,之前的Nginx是直接安装的
    Nginx下载地址 http://nginx.org/en/download.html

写在之前的Nginx,yum remove nginx

在安装Nginx之前,可能需要安装gcc、 openssl-devel、 pcre-devel和zlib-devel软件库,具体如下:
#没用
yum install gcc-c++
#没用
yum install openssl-devel
#用了
yum install pcre-devel
#用了
yum install zlib-devel

./configure --add-module=/root/soft/fastdfs-nginx-module-master/src 
make; 
make install;

#检查语法
/usr/local/nginx/sbin/nginx -t 
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
从这里可以看出,默认使用的是/usr/local/nginx/conf/nginx.conf这个配置文件

而之前手动命令安装,配置文件在/etc/nginx目录下,这个需要注意哦~

#启动-指定配置文件
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
#
/usr/local/nginx/sbin/nginx -s reload

ps -ef|grep nginx
root     20897     1  0 10:39 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
root     20918 13217  0 10:40 pts/3    00:00:00 grep nginx

再次上传 /usr/bin/fdfs_test /etc/fdfs/client.conf upload /etc/fdfs/client.conf
访问文件 http://file.fansunion.cn/group1/M00/00/00/KmC4VFYwlQGAItigAAAFsHrMXek69_big.conf
   
    ln -s /root/fdfsdata/data /root/fdfsdata/data/M00

八、搞了半天还没有搞好,气死我了啊~
   配置防火墙,重新启动,重新上传
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 23000 -j ACCEPT
/etc/init.d/iptables save

/usr/local/nginx/sbin/nginx

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
 /usr/bin/fdfs_test /etc/fdfs/client.conf upload /etc/fdfs/client.conf
 http://42.96.184.84:8080/group1/M00/00/00/KmC4VFYxlIWAOq-xAAAFsCOGhRQ76_big.conf
 
 netstat -ano |grep 8080
   
   各种调试Nginx,都报错,连最基本的配置都找不到了~
   看Nginx的日志,也没有发现,最后才晓得,Nginx源码安装的日志文件位于“/usr/local/nginx/logs”。
   
   里面报错了,提示/etc/fdfs/下没有mod_fastdfs.conf这个文件~
   
   拷贝一份http.conf到 /etc/fdfs目录下

九、麻痹,麻痹啊~终于搞定了~
  1.base_path 放在/root/fdfsdata和/root/fdfsdata2 下,都提示权限不足。
    放在了/home/fdfsdata下就行了。
  2.mime.types等配置文件,凡是提示找不到,就从fastdfs等原文件的conf目录copy一份到/etc/fdfs/
  3.400或404
    可能是Nginx配置或者group-name那个true选项

没有开启groupname的
http://42.96.184.84:8080/M00/00/00/KmC4VFYxy2OAAqGdAAAFrZvGHAA99.conf
  
  server {
 36         listen       80;
 37         server_name  42.96.184.84 alias file.test;
 38 
 39         location / {
 40            # root /root/fdfsdata/data;
 41            # ngx_fastdfs_module;
 42            root /home/www;
 43            index a.html;
 44         }
 45   }
 46 
 47   server{
 48       listen 8080;
 49       server_name 42.96.184.84;
 50 
 51       location /M00 {
 52          root /home/fdfsdata/data;
 53          ngx_fastdfs_module;
 54       }
 55 
 56   }
 
 第1个server,是测试Nginx能正常启动。
 第2个server,是监听8080端口,不带group的映射,到fdfs的数据目录。
 
 带group的url访问
 http://42.96.184.84:8080/group1/M00/00/00/KmC4VFYxy2OAAqGdAAAFrZvGHAA99.conf
 
 Nginx配置
  location /group1/M00 {
 49          root /home/fdfsdata/data;
 50          ngx_fastdfs_module;
 51       }
 
 /etc/fdfs/mod_fastdfs.conf 这个配置文件吧。
 url_have_group_name = true(默认为false,改为true)
 
 重启tracker、storage
 重启Nginx
 搞定啦~哦也~
 
 十、小结
 花费一天的时间,终于成功搭建了初步的fdfs环境。
 Nginx+Fastdfs。
 
   参考资料:http://blog.csdn.net/gaofuqi/article/details/27052155
   这个人写得有模有样,感觉比较可行啊~
   我自己的,相对比较曲折,各种问题,但是都逐个解决了~
   
   http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=3598287

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-07 05:45:44

Centos安装FastDFS+Nginx(一天时间搞定)的相关文章

centos 系统下安装FastDFS+nginx+fastdfs-nginx-module安装配置

前言: 以前的项目上传的文件都是保存到本地或者是局域网内的共享文件夹下,由于数据量,服务器的负载均衡(分机的某些图片无法访问的问题处理)等因素的情况下,就想到用fastdfs来文件管理,花了几天时间硬着头皮去学习怎样安装配置,由于linux基础不好,安装配置起来感觉有点费力,不得不随时去查找一些资料,好在经过这几天的努力安装配置fastdfs最终还是搞定了,最终的付出并没有白费,以下是个人的见解,如有误差,请多多指导.不了解fastdfs的童鞋可以先去了解下,请看http://tech.uc.c

安装FastDFS+Nginx

安装FastDFS FastDFS开发者的GitHub地址为:https://github.com/happyfish100 打开上述链接,我们点击fastdfs–>release,发现最新版的FastDFS为2017年上传的V5.11,接下来我们来安装最新版的FastDFS. 在安装前,我们新建一个目录,用来存储所有下载文件:mkdir /download,进入download目录完成接下来操作:cd /download 1. 下载安装 libfastcommon libfastcommon是

FastDFS(1):Centos7 安装FastDFS+nginx module

1,关于FastDFS 摘自:http://www.oschina.net/p/fastdfs FastDFS是一个开源的分布式文件系统,她对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡的问题.特别适合以文件为载体的在线服务,如相册网站.视频网站等等. FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage).跟踪器主要做调度工作,在访问上起负载均衡的作用. 存储节点存储文件,完成文件管理的所有功能:存储.同

老板问:多长时间搞定?开发说3天,測试说2天,然后……

有朋友问到: 老板问搞定这一堆事情要多久:开发说3天.測试说2天.  然后老板第五天来要货.測试提了一堆bug给开发......开发继续解决bug,測试继续測, 直到递归结束-- 有什么流程能够解决这样的矛盾吗? 俺的一些建议: 这个团队(包含开发和測试)有leader不?不是开发和測试各自的leader.而是开发+測试 的leader.要让这个团队成为一个总体.然后给他们总体下要求,然后老板才去问:什么时候软件能够公布?让团队以软件交付作为一个总体目标和任务.而不是让开发自己想自己的.測试也自

老板问:多长时间搞定?开发说3天,测试说2天,然后……

有朋友问到: 老板问搞定这一堆事情要多久:开发说3天.测试说2天.  然后老板第五天来要货,测试提了一堆bug给开发......开发继续解决bug,测试继续测, 直到递归结束-- 有什么流程可以解决这种矛盾吗? 俺的一些建议: 这个团队(包括开发和测试)有leader不?不是开发和测试各自的leader,而是开发+测试 的leader.要让这个团队成为一个整体,然后给他们整体下要求,然后老板才去问:什么时候软件可以发布?让团队以软件交付作为一个整体目标和任务,而不是让开发自己想自己的,测试也自己

CentOS安装配置nginx

参考文档:http://www.nginx.cn/install,大神写的很详细了,这里就不在重复了 1.准备工作(yum install gcc gcc-c++) 下载需要配置.编译.安装的各种组件(nginx-1.12.0.tar.gz.openssl-1.1.0e.tar.gz.pcre-8.37.tar.gz.zlib-1.2.11.tar.gz) 2.解压.编译.安装nginx ./configure --prefix=/usr/local/nginx --conf-path=/usr

nginx 手动编译安装简化版, 几个命令搞定。

安装编译环境 yum install -y gcc gcc-c++ pcre-devel zlib zlib-devel openssl-devel ncurses ncurses-devel  automake autoconf libtool make gd-devel perl perl-devel perl-ExtUtils-Embed ./configure \ --prefix=/data/app/nginx-1.8.0 \ --user=nginx \ --group=nginx

nginx一篇全搞定

ngixn nginx是一个高性能http服务器和反向代理web服务器,淘宝还在基础上开发了tengine. nginx是一个master进程与多个work进程进行工作,master进程负责管理work进行,work进程负责接收具体客户请求进行工作,worker_processes是设置work进程数量,一般work进程数量是根据cpu数量来设置,可以绑定具体cpu工作.worker_connectons来设置每个进程支持的最大连接数,在操作系统中我们要设置limit得系统打开文件最大数. 下面

Centos6.9安装部署nginx服务器

(一)依赖包安装 首先,gcc,pcre,zlib,openssl安装一边(可以用非-devel,但是嫌麻烦....用非-devel的看这个链接) yum  -y install gcc ------------------------------------------------------------------------------------------------------------------------------------------------------------