FastDFS是一个开源的轻量级分布式文件系统,对文件进行管理,其功能包括:文件存储、文件同步、文件访问(文件上传、文件下载))等,其中解决大容量存储和负载均衡问题。特别适用于以文件为载体的在线服务,如相册网站、视频网站等。FastDFS为互联网量身打造,充分考虑冗余备份、负载均衡、线性扩展等机制,注重高可用、高性能等指标。使用FastDFS很容易搭建一套高性能的文件服务器集群,提供文件上传下载等服务。1、下载并安装libfastcommonlibfastcommon是从FastDFS和FastDHT中提取出来的公共C函数库,基本环境安装即可。1.1下载:wgethttps://github.com/happyfish100/libfastcommon/archive/V1.0.7.ta??r.gz1.2解压:tar-zxvfV1.0.7.ta??r.gz1.3安装:cdlibfastcommon-1.0.7./make。sh./make.shinstall1.4复制文件:解决FastDFS中lib配置文件路径问题。cp/usr/lib64/libfastcommon.so/usr/local/lib/libfastcommon.socp/usr/lib64/libfastcommon.so/usr/lib/libfastcommon.so2。下载安装FastDFS2.1下载:wgethttps://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz2.2解压:tar-zxvfV5.05.tar.gz2.3安装:cdfastdfs-5.05。/make.sh./make.shinstall安装完成后,默认配置文件目录为:/etc/fdfs/,默认命令放在/usr/bin/,以fdfs_开头。3.配置FastDFS,首先将配置文件复制到/etc/fdfs目录下。cd/home/fantj/download/fastdfs-5.05/confcp*/etc/fdfs/如下:[root@s168conf]#cd/etc/fdfs/[root@s168fdfs]#lsanti-steal.jpgclient.conf.samplemime.typesstorage.conf.sampletracker.confclient.confhttp.confstorage.confstorage_ids.conftracker.conf.sample3.1。配置tracker.confFastDFStracker修改如下配置:#Tracker数据和日志目录地址(根目录必须存在,子目录会自动创建)base_path=/fastdfs/trackerport=221223.1.1创建这个目录:mkdir-p/fastdfs/tracker3.1.2启动/停止:fdfs_trackerd/etc/fdfs/tracker.conf启动/停止默认使用/etc/fdfs下的配置文件,如果有指定配置,后面可以添加参数。如果有防火墙,打开防火墙规则。3.1.3设置启动:#systemctlenablefdfs_trackerd或:#vim/etc/rc.d/rc.local添加配置:/etc/init.d/fdfs_trackerdstart3.1.4Tracker服务器目录及文件结构:Tracker服务启动成功后,它将在base_path下创建两个目录,data和logs。目录结构如下:${base_path}|__data||__storage_groups.dat:存储组信息||__storage_servers.dat:存储服务器列表|__logs||__trackerd.log:trackerserver日志文件3.2.配置存储以下只是基本配置,如有更细微的需求,请勾选所有配置。group_name=fantj#组名base_path=/fastdfs/storage#log目录store_path0=/fastdfs/storage#存储目录tracker_server=192.168.27.168:22122#tracker节点http.server_port=8888#port3.2.1可以这样启动也可以用这个方法启动fdfs_storaged/etc/fdfs/storage.confstart,后面会用到这个方法#servicefdfs_storagedstart3.2.2查看进程netstat-unltp|grepfdfs3.2.3Storagestart#systemctlenablefdfs_storaged或者:#vim/etc/rc.d/rc.local加入配置:/etc/init.d/fdfs_storagedstart3.2.4Storage目录Storage启动成功后,会在base_path下创建data和logs目录,记录StorageServer的信息。在store_path0目录下,创建了N*N个子目录:[root@s168data]#pwd/fastdfs/storage/data[root@s168data]#ls00070E151C232A31383F464D545B626970777E858C939AA1A8AFB6BDC4CBD2D9E0E7EEF5FC01080F161D242B323940474E555C636A71787F868D949BA2A9B0B7BEC5CCD3DAE1E8EFF6FD020910171E252C333A41484F565D646B727980878E959CA3AAB1B8BFC6CDD4DBE2E9F0F7fdfs_storaged.pid030A11181F262D343B424950575E656C737A81888F969DA4ABB2B9C0C7CED5DCE3EAF1F8FE040B121920272E353C434A51585F666D747B828990979EA5ACB3BAC1C8CFD6DDE4EBF2F9FF050C131A21282F363D444B525960676E757C838A91989FA6ADB4BBC2C9D0D7DEE5ECF3FAstorage_stat.dat060D141B222930373E454C535A61686F767D848B9299A0A7AEB5BCC3CAD1D8DFE6EDF4FBsync3.3.配置clientvimclient.conftracker_server=192.168.27.168:22122#trackernodebase_path=/fastdfs/client#logpath3.4.本地图片上传测试[root@s168fdfs]#fdfs_upload_file/etc/fdfs/client.conf/home/test.pngfantj/M00/00/00/wKgbqFu7T7iAJh7lAABDYbhAMC4812.png或:[root@s168fdfs]#fdfs_test/etc/fdfs/client.conf/home/test.pngThisisFastDFSclienttestprogramv5.05Copyright(C)2008,HappyFish/YuQingFastDFSmaybecopiedonlyunderthetermsoftheGNUGeneralPublicLicenseV3,whichmaybefoundintheFastDFSsourcekit.PleasevisittheFastDFSHomePagehttp://www.csource.org/formoredetail.[2018-5-0820:41:15]DEBUG-base_timeout/client3connect3,fastdfnetwork_timeout=60,tracker_server_count=1,anti_steal_token=0,anti_steal_secret_keylength=0,use_connection_pool=0,g_connection_pool_max_idle_time=3600s,use_storage_id=0,storageserveridcount:0invalidoperation:/home/test.png4.安装nginx前我写过nginx的安装文章,没有重新安装的请点这里:点击查看我的文章:nginx安装五、FastDFS配置Nginx模块fastdfs-nginx-module可以重定向文件链接到源服务器去抓取文件,避免客户端因复制延迟导致文件无法访问的错误。5.1下载安装wgethttps://github.com/happyfish100/fastdfs-nginx-module/archive/5e5f3566bbfa57418b5506aaefbe107a42c9fcb1.zipunzip5e5f3566bbfa57418b5506aaefbe107a42c9fcb1.zipmvfastdfs-nginx-module-5e5f3566bbfa57418b5506aaefbe107a42c9fcb1/fastdfs-nginx-module5.2配置Nginxngix-sstopcdnginx-1.12.1#添加module./configure--add-module=../fastdfs-nginx-module/src(如果你是yum安装的nginx,我还没找到解决办法,目前的方法是nginx-V查看nginx版本,然后下载一个同版本的nginx,然后将/etc/nginx下的数据整体备份,make&&makeinstall完成后恢复)#重新编译安装makemakeinstall#复制配置文件[root@s168src]#pwd/home/fantj/download/fastdfs-nginx-module/src[root@s168src]#cpmod_fastdfs.conf/etc/fdfs/configuration/etc/fdfs/mod_fastdfs.conffile#configuration/etc/fdfs/mod_fastdfs.conf文件base_path=/fastdfs/tmp#log目录store_path0=/fastdfs/storagetracker_server=192.168.27.168:22122#thegroupnameofthelocalstorageservergroup_name=fantj#与存储组名一一对应url_have_group_name=true#启用url与group_name配置nginx#配置nginx[root@s168fdfs]#cd/usr/local/ngin/conf/[root@s168conf]#vimnginx.conf#添加如下配置server{listen88;server_name192.168.27.168;location/fantj/M00{ngx_fastdfs_module;}}#进入/usr/local/nginx/sbin目录进行配置检测[root@s168sbin]#./nginx-tngx_http_fastdfs_setpid=6431nginx:配置文件/usr/local/nginx/conf/nginx.confsyntaxisoknginx:configurationfile/usr/local/nginx/conf/nginx.conftestissuccessful#startnginx[root@s168sbin]#./nginxngx_http_fastdfs_setpid=6436服务重启并测试[root@s168fdfs]#fdfs_trackerdtrack.confrestartwaitingforpid[1202]退出...开始...[root@s168fdfs]#fdfs_storagestorage.confrestartwaitingforpid[1211]退出...开始...[root@s168fdfs]#/usr/local/nginx/sbin/nginx-sreloadngx_http_fastdfs_setpid=64636。配置成功测试
