设为首页 收藏本站
查看: 1650|回复: 0

[经验分享] Centos7 安装FastDFS+nginx module

[复制链接]

尚未签到

发表于 2016-12-23 08:45:09 | 显示全部楼层 |阅读模式
  时间:2015-04-29 14:40来源:blog.csdn.net 作者:freewebsys的专栏

1,关于FastDFS
摘自:http://www.oschina.net/p/fastdfs 
FastDFS是一个开源的分布式文件系统,她对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。
存储节点存储文件,完成文件管理的所有功能:存储、同步和提供存取接口,FastDFS同时对文件的meta data进行管理。所谓文件的meta data就是文件的相关属性,以键值对(key value pair)方式表示,如:width=1024,其中的key为width,value为1024。文件meta data是文件属性列表,可以包含多个键值对。
GitHub:https://github.com/happyfish100/fastdfs 
一个写的不错的博客:http://tech.uc.cn/?p=221


2,安装FastDFS
参考文档: 
https://github.com/happyfish100/fastdfs/blob/master/INSTALL


2.1,安装编译工具

yum -y groupinstall 'Development Tools'
yum -y install wget


  • 1
  • 2

2.2,安装libfastcommon类库
必须先按照这个,否则报错:

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.
........


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
直接下载安装即可:

wget https://github.com/happyfish100/libfastcommon/archive/master.zip
unzip master.zip
cd libfastcommon-master
./make.sh
./make.sh install


  • 1
  • 2
  • 3
  • 4
  • 5

2.3,安装FastDFS

wget  https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz
tar -zxvf V5.05.tar.gz
cd fastdfs-5.05/
./make.sh
./make.sh install



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2.4,启动FastDFS
安装之后配置文件在目录/etc/fdfs。

mv storage.conf.sample  storage.conf
mv tracker.conf.sample tracker.conf


  • 1
  • 2
首先修改配置文件:  /etc/fdfs/tracker.conf,修改路径到/data/fdfs目录。

# the base path to store data and log files
base_path=/data/fdfs


  • 1
  • 2
启动:  /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
修改配置文件:  /etc/fdfs/storage.conf,修改路径到/data/fdfs目录,同时配置tracker_server地址。

# the base path to store data and log files
base_path=/data/fdfs
# tracker_server can ocur more than once, and tracker_server format is
#  "host:port", host can be hostname or ip address
tracker_server=192.168.1.36:22122
# store_path#, based 0, if store_path0 not exists, it's value is base_path
# the paths must be exist
store_path0=/data/fdfs
#store_path1=/home/yuqing/fastdfs2


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
启动的时候,看日志没有错误就说明启动成功。  查看fdfs进程:

#ps -ef | grep fdfs
root     19880     1  0 21:42 ?        00:00:00 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
root     20050     1  0 22:08 ?        00:00:00 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
root     20060 19915  0 22:08 pts/1    00:00:00 grep --color=auto fdfs


  • 1
  • 2
  • 3
  • 4
2.5 安装nginx + lua + fastdfs module  下载fastdfs-nginx-module模块  https://github.com/happyfish100/fastdfs-nginx-module  下载openresty nginx +lua包

wget https://github.com/happyfish100/fastdfs-nginx-module/archive/master.zip
unzip fastdfs-nginx-module-master.zip
wget http://openresty.org/download/ngx_openresty-1.7.10.1.tar.gz
tar -zxvf ngx_openresty-1.7.10.1.tar.gz


  • 1
  • 2
  • 3
  • 4
编译安装:这里注意下,需要增加参数。  一个是stub_status统计模块,一个是realip模块。  参考地址:  http://blog.danielss.com/?p=80  http://wiki.nginx.org/HttpRealipModuleChs

yum -y install pcre-devel openssl openssl-devel
cd ngx_openresty-1.7.10.1
./configure --with-luajit --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --add-module=/root/fastdfs-nginx-module-master/src
gmake
gmake install


  • 1
  • 2
  • 3
  • 4
  • 5
nginx +lua安装路径:

  nginx path prefix: "/usr/local/openresty/nginx"
nginx binary file: "/usr/local/openresty/nginx/sbin/nginx"
nginx configuration prefix: "/usr/local/openresty/nginx/conf"
nginx configuration file: "/usr/local/openresty/nginx/conf/nginx.conf"
nginx pid file: "/usr/local/openresty/nginx/logs/nginx.pid"
nginx error log file: "/usr/local/openresty/nginx/logs/error.log"
nginx http access log file: "/usr/local/openresty/nginx/logs/access.log"


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
启动,重启nginx

#启动
/usr/local/openresty/nginx/sbin/nginx
#重启
/usr/local/openresty/nginx/sbin/nginx -s restart


  • 1
  • 2
  • 3
  • 4

3,测试FastDFS
配置服务:

cd /etc/fdfs
mv client.conf.sample client.conf


  • 1
  • 2
修改配置:

# the base path to store log files
base_path=/data/fdfs
# tracker_server can ocur more than once, and tracker_server format is
#  "host:port", host can be hostname or ip address
tracker_server=192.168.1.36:22122


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
配置nginx:

cp /root/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/
mkdir /data/ngx


  • 1
  • 2
修改mod_fastdfs.conf配置文件:修改tracker端口,否则nginx启动不了。路径也必须修改,否则找不到文件。

# the base path to store log files
base_path=/data/ngx
# FastDFS tracker_server can ocur more than once, and tracker_server format is
#  "host:port", host can be hostname or ip address
# valid only when load_fdfs_parameters_from_tracker is true
tracker_server=192.168.1.36:22122
# store_path#, based 0, if store_path0 not exists, it's value is base_path
# the paths must be exist
# must same as storage.conf
store_path0=/data/fdfs


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
拷贝配置文件,否则nginx启动不了,报错:

[2015-04-28 11:30:14] ERROR - file: ini_file_reader.c, line: 315, include file "http.conf" not exists, line: "#include http.conf"
[2015-04-28 11:30:14] ERROR - file: /root/fastdfs-nginx-module-master/src/common.c, line: 155, load conf file "/etc/fdfs/mod_fastdfs.conf" fail, ret code: 2
2015/04/28 11:30:14 [alert] 19969#0: worker process 2753 exited with fatal code 2 and cannot be respawned



  • 1
  • 2
  • 3
  • 4
解决办法:

cp /root/fastdfs-master/conf/http.conf /root/fastdfs-master/conf/mime.types  /etc/fdfs


  • 1
nginx配置修改vi /usr/local/openresty/nginx/conf/nginx.conf

    server {
listen       80;
server_name  localhost;
charset utf8;
location /M00 {
alias /data/fdfs/data;
ngx_fastdfs_module;
}
......


  • 1
  • 2
  • 3
  • 4
  • 5
  •  
创建连接

ln -s /data/fdfs/data /data/fdfs/data/M00


  • 1
重启nginx。  测试命令:

echo "test fastdfs" > test.html
/usr/bin/fdfs_test /etc/fdfs/client.conf upload test.html


  • 1
  • 2
上传成功,执行结果:


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-04-25 18:06:09] DEBUG - base_path=/data/fdfs, 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=192.168.1.36, port=23000
group_name=group1, ip_addr=192.168.1.36, port=23000
storage_upload_by_filename
group_name=group1, remote_filename=M00/00/00/wKgC1FU7ZxGAF19vAAAADcvBslg01.html
source ip address: 192.168.1.36
file timestamp=2015-04-25 18:06:09
file size=13
file crc32=3418468952
example file url: http://192.168.1.36/group1/M00/00/00/wKgC1FU7ZxGAF19vAAAADcvBslg01.html
storage_upload_slave_by_filename
group_name=group1, remote_filename=M00/00/00/wKgC1FU7ZxGAF19vAAAADcvBslg01_big.html
source ip address: 192.168.1.36
file timestamp=2015-04-25 18:06:09
file size=13
file crc32=3418468952
example file url: http://192.168.1.36/group1/M00/00/00/wKgC1FU7ZxGAF19vAAAADcvBslg01_big.html


  •  
测试访问:

curl http://192.168.1.36/M00/00/00/wKgC1FU7ZxGAF19vAAAADcvBslg01_big.html
如果返回“test fastdfs”说明配置成功。上面的每一步修改都要正确才可以。
查看nginx错误日志:  tail -f /usr/local/openresty/nginx/logs/error.log

4,总结
FastDFS非常好的分布式文件系统。配置简单,可以多机器部署,同时官方给了一个Nginx模块,可以直接用nginx访问,非常方便。这样减少了中 间的tomcat层,效率高。  接下来继续研究lua的图片压缩。直接在nginx层进行图片压缩。效率更高,同时图片读取FastDFS的文件。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-318141-1-1.html 上篇帖子: FastDFS整合Nginx 下篇帖子: FASTDFS安装(三)安装fastdfs-nginx-module
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表