相关推荐
Spring事务管理(一)快速入门
Spring事务管理(二)分布式事务管理之JTA与链式事务
FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
1. 下载安装 libfastcommon
libfastcommon是从 FastDFS 和 FastDHT 中提取出来的公共 C 函数库,基础环境,安装即可 。
1.1 下载:
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz
1.2 解压:
tar -zxvf V1.0.7.tar.gz
1.3 安装:
cd libfastcommon-1.0.7./make.sh./make.sh install
1.4 复制文件:
解决FastDFS中lib配置文件路径问题。
cp /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.socp /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
- 下载安装FastDFS
2.1 下载:
wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz
2.2 解压:
tar -zxvf V5.05.tar.gz
2.3 安装:
cd fastdfs-5.05./make.sh ./make.sh install
安装完成后,默认配置文件目录为: /etc/fdfs/,默认命令放在 /usr/bin/中,以 fdfs_开头。
3. 配置FastDFS
首先将配置文件复制到 /etc/fdfs目录下。
cd /home/fantj/download/fastdfs-5.05/confcp * /etc/fdfs/ 如下:[root@s168 conf]# cd /etc/fdfs/[root@s168 fdfs]# lsanti-steal.jpg client.conf.sample mime.types storage.conf.sample tracker.confclient.conf http.conf storage.conf storage_ids.conf tracker.conf.sample
3.1. 配置tracker.conf
FastDFS跟踪器
修改如下配置: #Tracker 数据和日志目录地址(根目录必须存在,子目录会自动创建)base_path=/fastdfs/trackerport=22122 3.1.1 创建该目录:
mkdir-p/fastdfs/tracker
3.1.2 启动/关闭:
fdfs_trackerd/etc/fdfs/tracker.conf start/stop
默认使用 /etc/fdfs下的配置文件,如有指定配置可在后面追加参数。如有防火墙,开放防火墙规则。
3.1.3 设置开机启动:
# systemctl enable fdfs_trackerd或者:# vim /etc/rc.d/rc.local加入配置:/etc/init.d/fdfs_trackerd start
3.1.4 tracker server 目录及文件结构 :
Tracker服务启动成功后,会在base_path下创建data、logs两个目录。目录结构如下:
${base_path} |__data | |__storage_groups.dat:存储分组信息 | |__storage_servers.dat:存储服务器列表 |__logs | |__trackerd.log: tracker server 日志文件
3.2. 配置storage
下面只是基本配置,如有更细微的需要,则请查看所有配置。
group_name=fantj #组名base_path=/fastdfs/storage #日志目录store_path0=/fastdfs/storage #存储目录tracker_server=192.168.27.168:22122 #tracker节点http.server_port=8888 #端口
3.2.1 启动
可以用这种方式启动fdfs_storaged /etc/fdfs/storage.conf start也可以用这种方式,后面都用这种# service fdfs_storaged start
3.2.2 检查进程
netstat-unltp|grep fdfs
3.2.3 Storage 开机启动
#``` systemctl enable fdfs_storaged或者:# vim /etc/rc.d/rc.local加入配置:/etc/init.d/fdfs_storaged start
3.2.4 Storage 目录
Storage 启动成功后,在base_path 下创建了data、logs目录,记录着 Storage Server 的信息。
在 store_path0 目录下,创建了N*N个子目录:
[root@s168 data]# pwd/fastdfs/storage/data[root@s168 data]# ls00 07 0E 15 1C 23 2A 31 38 3F 46 4D 54 5B 62 69 70 77 7E 85 8C 93 9A A1 A8 AF B6 BD C4 CB D2 D9 E0 E7 EE F5 FC01 08 0F 16 1D 24 2B 32 39 40 47 4E 55 5C 63 6A 71 78 7F 86 8D 94 9B A2 A9 B0 B7 BE C5 CC D3 DA E1 E8 EF F6 FD02 09 10 17 1E 25 2C 33 3A 41 48 4F 56 5D 64 6B 72 79 80 87 8E 95 9C A3 AA B1 B8 BF C6 CD D4 DB E2 E9 F0 F7 fdfs_storaged.pid03 0A 11 18 1F 26 2D 34 3B 42 49 50 57 5E 65 6C 73 7A 81 88 8F 96 9D A4 AB B2 B9 C0 C7 CE D5 DC E3 EA F1 F8 FE04 0B 12 19 20 27 2E 35 3C 43 4A 51 58 5F 66 6D 74 7B 82 89 90 97 9E A5 AC B3 BA C1 C8 CF D6 DD E4 EB F2 F9 FF05 0C 13 1A 21 28 2F 36 3D 44 4B 52 59 60 67 6E 75 7C 83 8A 91 98 9F A6 AD B4 BB C2 C9 D0 D7 DE E5 EC F3 FA storage_stat.dat06 0D 14 1B 22 29 30 37 3E 45 4C 53 5A 61 68 6F 76 7D 84 8B 92 99 A0 A7 AE B5 BC C3 CA D1 D8 DF E6 ED F4 FB sync
3.3. 配置client
vim client.conftracker_server=192.168.27.168:22122 #tracker节点base_path=/fastdfs/client #日志路径
3.4. 本地图片上传测试
[root@s168 fdfs]# fdfs_upload_file /etc/fdfs/client.conf /home/test.png fantj/M00/00/00/wKgbqFu7T7iAJh7lAABDYbhAMC4812.png或者:[root@s168 fdfs]# fdfs_test /etc/fdfs/client.conf /home/test.png This is FastDFS client test program v5.05Copyright (C) 2008, Happy Fish / YuQingFastDFS may be copied only under the terms of the GNU GeneralPublic License V3, which may be found in the FastDFS source kit.Please visit the FastDFS Home Page http://www.csource.org/ for more detail.[2018-5-08 20:41:15] DEBUG - base_path=/fastdfs/client, 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: 0invalid operation: /home/test.png
4. 安装nginx
之前有写过nginx的安装文章,在这里不重复。没有安装过的请点击:
点击查看我的文章:nginx安装
5. FastDFS 配置 Nginx 模块
fastdfs-nginx-module 可以重定向文件链接到源服务器取文件,避免客户端由于复制延迟导致的文件无法访问错误。
5.1 下载安装
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/5e5f3566bbfa57418b5506aaefbe107a42c9fcb1.zipunzip 5e5f3566bbfa57418b5506aaefbe107a42c9fcb1.zipmv fastdfs-nginx-module-5e5f3566bbfa57418b5506aaefbe107a42c9fcb1/ fastdfs-nginx-module
5.2 配置Nginx
ngix -s stopcd nginx-1.12.1#添加模块./configure --add-module=../fastdfs-nginx-module/src(如果你是yum安装的nginx,我暂时还没找到解决办法,目前的方法是nginx -V 查看nginx版本,然后下载一个同版本的nginx,然后将/etc/nginx 下数据整体备份,make && make install 完成后再做恢复)#重新编译和安装makemake install#拷贝配置文件[root@s168 src]# pwd/home/fantj/download/fastdfs-nginx-module/src[root@s168 src]# cp mod_fastdfs.conf /etc/fdfs/
配置 /etc/fdfs/mod_fastdfs.conf文件
#配置 /etc/fdfs/mod_fastdfs.conf文件base_path=/fastdfs/tmp #日志目录store_path0=/fastdfs/storagetracker_server=192.168.27.168:22122# the group name of the local storage servergroup_name=fantj #和storage的groupname一一对应url_have_group_name = true #开启url中附带group_name
配置nginx
配置nginx[root@s168 fdfs]# cd /usr/local/nginx/conf/[root@s168 conf]# vim nginx.conf#添加如下配置server { listen 88; server_name 192.168.27.168; location /fantj/M00{ ngx_fastdfs_module; }}# 进入/usr/local/nginx/sbin目录执行配置检测[root@s168 sbin]# ./nginx -tngx_http_fastdfs_set pid=6431nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful# 启动nginx[root@s168 sbin]# ./nginx ngx_http_fastdfs_set pid=6436
服务重启并测试
[root@s168 fdfs]# fdfs_trackerd tracker.conf restartwaiting for pid [1202] exit ...starting ...[root@s168 fdfs]# fdfs_storaged storage.conf restartwaiting for pid [1211] exit ...starting ...[root@s168 fdfs]# /usr/local/nginx/sbin/nginx -s reloadngx_http_fastdfs_set pid=6463
6. 配置成功测试
![](https://s4.51cto.com/images/blog/202105/07/50fcfb893166424271af84993815b900.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)