您的位置:首页 > 运维架构 > Nginx

FastDFS+Nginx+fastdfs-nginx-module分布式存储环境搭建

2017-04-11 17:06 791 查看
前提条件
libfastcommon-1.0.7.tar.gz
FastDFS_v5.05.tar.gz
fastdfs-nginx-module_v1.16.tar.gz

环境搭建过程

先安装libfastcommon
①解压libfastcommon-1.0.7.tar.gz压缩包
tar -zxvf libfastcommon-1.0.7.tar.gz
②进入压缩后目录
cd libfastcommon-1.0.7
③编译libfastcommon
./make.sh
④安装libfastcommon
./make.sh install


我这里出现一个错误
/make.anzhuang e 99: perl: command not found ./make.sh: line 100: perl: command not found cc  -c -fPIC -o sockopt.lo sockopt.c 

这里是因为没有安装perl
yum install perl
⑤安装完成会在/usr下出现一个lib64文件夹,里面有一个libfastcommon.so,把/usr/lib64/libfastcommon.so文件向/usr/lib/下复制一份
cp /usr/lib64/libfastcommon.so /usr/lib


安装FastDFS_v5.05.tar.gz

①解压FastDFS_v5.05.tar.gz压缩包
tar zxf FastDFS_v5.05.tar.gz
②进入压缩后目录
cd FastDFS
③编译FastDFS
./make.sh
④安装FastDFS
./make.sh install
安装后在/usr/bin/目录下有以fdfs开头的文件都是编译出来的 使用ll fdfs_*查看



并且会在/etc/fdfs目录下生成几个配置文件



⑤把FastDFS/conf目录下的所有的配置文件都复制到/etc/fdfs下。(之前写的是没拷贝,然后下面会报错,这里修改一下,直接全部拷贝走)

配置tracker服务
①配置base_path: 
base_path为日志文件保存路径

原来 base_path=/home/yuqing/fastdfs 这里需要改为自己的文件路径

如:base_path=/home/fastdfs/tracker (这里的文件目录必须存在,如果没有,需要自己新建,不然会报错)
②启动tracker服务
启动命令:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
重启命令:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

配置storage服务
注意:同一个组内的不同的storage的配置要相同(方便同步文件)
①配置storage属于哪个group:
group_name=group1 (因为现在先只是配一个组,所以这里就为group1)

②配置base_path:

base_path为日志文件保存路径

原来 base_path=/home/yuqing/fastdfs 这里需要改为自己的文件路径,

如:base_path=/home/fastdfs/storage (这里的文件目录必须存在,如果没有,需要自己新建,不然会报错)

③配置store_path0:
store_path0为实际的图片存放路径

这里 store_path0=/home/yuqing/fastdfs 也要改为自己的文件路径

如: store_path0=/home/fastdfs/storage (建议与bast_path一样)

④配置tracker_server:
还有:tracker_server要改为自己的trakcer_server的ip

如:tracker_server=192.168.1.104:22122

(多个tracker_server往下罗列就行了)

⑤启动storage服务
启动命令:/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
重启命令:/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

配置client服务
①配置base_path:
base_path:为日志文件保存路径

原来 base_path=/home/yuqing/fastdfs 这里需要改为自己的文件路径,

如:base_path=/home/fastdfs/client (这里的文件目录必须存在,如果没有,需要自己新建,不然会报错)
②配置tracker_server:
还有:tracker_server要改为自己的trakcer_server的ip

如:tracker_server=192.168.1.104:22122

测试是否可以上传图片

/usr/bin/fdfs_test /etc/fdfs/client.conf upload anti-steal.jpg
(要在这张图片所在的路径下执行这条命令,或者把图片写成绝对路径)




③将/usr/lib64/libfdfsclient.so拷贝至/usr/lib下

cp /usr/lib64/libfdfsclient.so /usr/lib

和Nginx集成

安装Nginx 安装教程:http://blog.csdn.net/qq_34021712/article/details/68927236

安装fastdfs-nginx-module插件
①解压fastdfs-nginx-module_v1.16.tar.gz
tar zxf fastdfs-nginx-module_v1.16.tar.gz
②修改解压后fastdfs-nginx-module/src/config文件,把其中的local去掉



③把/root/fastdfs-nginx-module/src/mod_fastdfs.conf文件复制到/etc/fdfs目录下,编辑

配置base_path=/tmp默认的,可以修改为自己想配置的位置

配置tracker_server=192.168.1.104:22122

配置url_have_group_name

    只有一个group时配置url_have_group_name = false为默认即可

    多个group的配置,配置url_have_group_name= true 即访问地址使用分组名

配置store_path0=/home/fastdfs/storage 图片所在路径

Nginx的配置
①对安装好的nginx重新config
命令如下:注意:要先关闭所有的nginx进程,在进行下面这一步骤

./configure --add-module=/root/software/fastdfs-nginx-module/src
(/root/software/fastdfs-nginx-module/src路径为自己解压tar包后的路径,根据自己压缩路径切换)
make
make install
如果在make install 的时候报异常如下,是因为没有拷贝/usr/lib64/libfdfsclient.so到/usr/lib下 拷贝后再make install

 -lpthread -lcrypt -L/usr/lib -lfastcommon -lfdfsclient -lpcre -lcrypto -lcrypto -lz

/usr/bin/ld: cannot find -lfdfsclient

collect2: ld returned 1 exit status

make[1]: *** [objs/nginx] Error 1

②配置nginx.conf
server {
listen       80;
server_name  192.168.1.104;

location /group([0-9])/M00/ {
#root /home/FastDFS/fdfs_storage/data;
ngx_fastdfs_module;
}
}

③启动nginx
/usr/local/nginx/sbin/nginx
使用ps -ef|grep nginx 看到只有一个master进程, cat /usr/local/nginx/logs/error.log 报错

ERROR - file: ini_file_reader.c, line: 315, include file "http.conf" not exists, line: "#include http.conf"

[2017-04-11 15:58:20] ERROR - file: /usr/local/software/fastdfs-nginx-module/src/common.c, line: 155, load conf file "/etc/fdfs/mod_fastdfs.conf" fail, ret code: 2

2017/04/11 15:58:20 [alert] 14910#0: worker process 14911 exited with fatal code 2 and cannot be respawned



原来是忘记把http.conf和mime.types 拷贝到/etc/fdfs下了,这两个文件在解压的FastDFS_v5.05.tar.gz 的conf目录下

然后再启动nginx访问就可以了

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: