fastdfs
环境准备
防护墙和selinux关闭
fastdfs1 | fastdfs2 |
---|---|
192.168.229.201 | 192.168.229.156 |
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
访问下面的网页找到需要下载的包
https://github.com/happyfish100
选择克隆的方式进行下载(两台虚拟机都需要安装)
1.安装libfastcommon
[root@fastdfs1 ~]# yum -y install git
[root@fastdfs1 ~]# cd /usr/local/src/
[root@fastdfs1 src]# git clone https://github.com/happyfish100/libfastcommon.git
[root@fastdfs1 src]# ls
libfastcommon
[root@fastdfs1 src]# cd libfastcommon/
[root@fastdfs1 libfastcommon]# ls
doc INSTALL LICENSE php-fastcommon src
HISTORY libfastcommon.spec make.sh README
[root@fastdfs1 libfastcommon]# yum -y install gcc gcc-c++
[root@fastdfs1 libfastcommon]# ./make.sh
[root@fastdfs1 libfastcommon]# ./make.sh install
2.安装fastdfs
[root@fastdfs1 ~]# cd /usr/local/src
[root@fastdfs1 src]# git clone https://github.com/happyfish100/fastdfs.git
[root@fastdfs1 src]# cd fastdfs/
[root@fastdfs1 fastdfs]# ls
client COPYING-3_0.txt HISTORY INSTALL README.md setup.sh test
common docker images make.sh README_zh.md stop.sh tracker
conf fastdfs.spec init.d php_client restart.sh storage
[root@fastdfs1 fastdfs]# ./make.sh
[root@fastdfs1 fastdfs]# ./make.sh install
[root@fastdfs1 fastdfs]# /usr/bin/fdfs_
fdfs_appender_test fdfs_download_file fdfs_test
fdfs_appender_test1 fdfs_file_info fdfs_test1
fdfs_append_file fdfs_monitor fdfs_trackerd
fdfs_crc32 fdfs_regenerate_filename fdfs_upload_appender
fdfs_delete_file fdfs_storaged fdfs_upload_file
[root@fastdfs1 fastdfs]# /etc/init.d/fdfs_
fdfs_storaged fdfs_trackerd
[root@fastdfs1 fastdfs]# cd /etc/fdfs/
[root@fastdfs1 fdfs]# ls
client.conf.sample storage_ids.conf.sample
storage.conf.sample tracker.conf.sample
3.fastdfs1和fastdfs2上进行相同的tracker部署
[root@fastdfs1 fdfs]# mkdir -p /data/fdfs_tracker
[root@fastdfs1 fdfs]# mkdir -p /data/fdfs_storage
[root@fastdfs1 fdfs]# cp tracker.conf.sample tracker.conf
[root@fastdfs1 fdfs]# vim tracker.conf
定位:base_path = /home/yuqing/fastdfs
修改为:/data/fdfs_tracker
[root@fastdfs1 fdfs]# /etc/init.d/fdfs_trackerd start
Reloading systemd: [ 确定 ]
Starting fdfs_trackerd (via systemctl): [ 确定 ]
[root@fastdfs1 fdfs]# ss -lnpt | grep 22122
LISTEN 0 128 *:22122 *:* users:(("fdfs_trackerd",pid=21908,fd=5))
4.fastdfs1和fastdfs2上进行相同的storage部署
[root@fastdfs1 fdfs]# mkdir /data/fdfs_storage/base
[root@fastdfs1 fdfs]# mkdir /data/fdfs_storage/store
[root@fastdfs1 fdfs]# cp storage.conf.sample storage.conf
[root@fastdfs1 fdfs]# vim storage.conf
定位:
base_path = /home/yuqing/fastdfs
store_path0 = /home/yuqing/fastdfs
tracker_server =
修改为:
/data/fdfs_storage/base
/data/fdfs_storage/store
tracker_server = 192.168.229.201:22122
tracker_server = 192.168.229.156:22122
[root@fastdfs1 fdfs]# scp storage.conf 192.168.229.156:/etc/fdfs/
[root@fastdfs1 fdfs]# /etc/init.d/fdfs_storaged start
Starting fdfs_storaged (via systemctl): [ 确定 ]
[root@fastdfs1 fdfs]# ss -lnt | grep 23000
LISTEN 0 128 *:23000 *:*
5.fastdfs客户端的部署(任选一台即可)
如果要选择新的虚拟机做客户端,也需要安装libfastcommon和fastdfs。
[root@fastdfs1 fdfs]# cp client.conf.sample client.conf
[root@fastdfs1 fdfs]# vim client.conf
定位:
base_path = /home/yuqing/fastdfs
tracker_server =
修改为:
base_path = /tmp
tracker_server = 192.168.229.201:22122
tracker_server = 192.168.229.156:22122
6.使用上传命令进行测试
下载一个文件进行测试,把文件传到/usr/local/src下
[root@fastdfs1 fdfs]# cd /usr/local/src/
[root@fastdfs1 src]# ls
1.png fastdfs libfastcommon
[root@fastdfs1 src]# fdfs_upload_file --help
Usage: fdfs_upload_file <config_file> <local_filename> [storage_ip:port] [store_path_index]
[root@fastdfs1 src]# fdfs_upload_file /etc/fdfs/client.conf 1.png
group1/M00/00/00/wKjlnF9XY82AUGcrAAC12mrj_d4500.png
[root@fastdfs1 src]# cd /data/fdfs_storage/store/
[root@fastdfs1 store]# ls
data
[root@fastdfs1 store]# cd data/
[root@fastdfs1 data]# ls
00 0D 1A 27 34 41 4E 5B 68 75 82 8F 9C A9 B6 C3 D0 DD EA F7
01 0E 1B 28 35 42 4F 5C 69 76 83 90 9D AA B7 C4 D1 DE EB F8
02 0F 1C 29 36 43 50 5D 6A 77 84 91 9E AB B8 C5 D2 DF EC F9
03 10 1D 2A 37 44 51 5E 6B 78 85 92 9F AC B9 C6 D3 E0 ED FA
04 11 1E 2B 38 45 52 5F 6C 79 86 93 A0 AD BA C7 D4 E1 EE FB
05 12 1F 2C 39 46 53 60 6D 7A 87 94 A1 AE BB C8 D5 E2 EF FC
06 13 20 2D 3A 47 54 61 6E 7B 88 95 A2 AF BC C9 D6 E3 F0 FD
07 14 21 2E 3B 48 55 62 6F 7C 89 96 A3 B0 BD CA D7 E4 F1 FE
08 15 22 2F 3C 49 56 63 70 7D 8A 97 A4 B1 BE CB D8 E5 F2 FF
09 16 23 30 3D 4A 57 64 71 7E 8B 98 A5 B2 BF CC D9 E6 F3
0A 17 24 31 3E 4B 58 65 72 7F 8C 99 A6 B3 C0 CD DA E7 F4
0B 18 25 32 3F 4C 59 66 73 80 8D 9A A7 B4 C1 CE DB E8 F5
0C 19 26 33 40 4D 5A 67 74 81 8E 9B A8 B5 C2 CF DC E9 F6
[root@fastdfs1 00]# pwd
/data/fdfs_storage/store/data/00/00
[root@fastdfs1 00]# ls
wKjlnF9XY82AUGcrAAC12mrj_d4500.png
同样在fastdfs2上也可以看到刚才上传的文件。并可以验证文件确实为同一文件。
[root@fastdfs1 00]# md5sum /usr/local/src/1.png
2593814710ffde0fcbeb5605955403f7 /usr/local/src/1.png
[root@fastdfs1 00]# md5sum wKjlnF9XY82AUGcrAAC12mrj_d4500.png
2593814710ffde0fcbeb5605955403f7 wKjlnF9XY82AUGcrAAC12mrj_d4500.png
7.使用下载命令进行测试
[root@fastdfs1 00]# cd /tmp
[root@fastdfs1 tmp]# fdfs_download_file --help
Usage: fdfs_download_file <config_file> <file_id> [local_filename] [<download_offset> <download_bytes>]
[root@fastdfs1 tmp]# fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/wKjlnF9XY82AUGcrAAC12mrj_d4500.png
[root@fastdfs1 tmp]# ls
systemd-private-72569b4d237545488e74436f0d39dd16-chronyd.service-9boErK
wKjlnF9XY82AUGcrAAC12mrj_d4500.png
8.使用删除命令进行测试
[root@fastdfs1 tmp]# fdfs_delete_file --help
Usage: fdfs_delete_file <config_file> <file_id>
[root@fastdfs1 tmp]# fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKjlnF9XY82AUGcrAAC12mrj_d4500.png
9.查看文件信息命令
[root@fastdfs1 tmp]# cd /usr/local/src/
[root@fastdfs1 src]# ls
1.png fastdfs libfastcommon
[root@fastdfs1 src]# fdfs_upload_file /etc/fdfs/client.conf 1.png
group1/M00/00/00/wKjlyV9XcgqAfUqEAAC12mrj_d4606.png
[root@fastdfs1 src]# fdfs_file_info /etc/fdfs/client.conf group1/M00/00/00/wKjlyV9XcgqAfUqEAAC12mrj_d4606.png
GET FROM SERVER: false
file type: normal
source storage id: 0
source ip address: 192.168.229.201
file create timestamp: 2020-09-08 07:59:06
file size: 46554
file crc32: 1793326558 (0x6ae3fdde)
10.部署nginx模块进行网页显示
[root@fastdfs1 src]# git clone https://github.com/happyfish100/fastdfs-nginx-module
[root@fastdfs1 src]# wget http://nginx.org/download/nginx-1.16.1.tar.gz
[root@fastdfs1 src]# yum -y install pcre zlib openssl pcre-devel zlib-devel openssl-devel
[root@fastdfs1 src]# groupadd www && useradd -g www -s /sbin/nologin -M www
[root@fastdfs1 src]# tar zxf nginx-1.16.1.tar.gz
[root@fastdfs1 src]# cd nginx-1.16.1/
[root@fastdfs1 nginx-1.16.1]# ./configure --prefix=/usr/local/nginx --group=www --user=www --with-http_stub_status_module --with-pcre --with-http_ssl_module --add-module=/usr/local/src/fastdfs-nginx-module/src/
[root@fastdfs1 nginx-1.16.1]# make && make install
[root@fastdfs1 nginx-1.16.1]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
[root@fastdfs1 nginx-1.16.1]# nginx -t
[root@fastdfs1 nginx-1.16.1]# cd ../fastdfs-nginx-module/src
[root@fastdfs1 src]# ls
common.c common.h config mod_fastdfs.conf ngx_http_fastdfs_module.c
[root@fastdfs1 src]# cp mod_fastdfs.conf /etc/fdfs/
[root@fastdfs1 src]# cd /usr/local/src/fastdfs
[root@fastdfs1 fastdfs]# ls
client COPYING-3_0.txt HISTORY INSTALL README.md setup.sh test
common docker images make.sh README_zh.md stop.sh tracker
conf fastdfs.spec init.d php_client restart.sh storage
[root@fastdfs1 fastdfs]# cd conf/
[root@fastdfs1 conf]# ls
anti-steal.jpg http.conf storage.conf tracker.conf
client.conf mime.types storage_ids.conf
[root@fastdfs1 conf]# cp anti-steal.jpg mime.types http.conf /etc/fdfs/
[root@fastdfs1 conf]# touch /var/log/mod_fastdfs.log
[root@fastdfs1 conf]# chown www:www /var/log/mod_fastdfs.log
[root@fastdfs1 conf]# vim /usr/local/nginx/conf/nginx.conf
添加:
location /group1/M00 {
root /data/fdfs_storage/store;
ngx_fastdfs_module;
}
[root@fastdfs1 conf]# cd /etc/fdfs/
[root@fastdfs1 fdfs]# vim mod_fastdfs.conf
定位:
tracker_server=tracker:22122
store_path0=/home/yuqing/fastdfs
log_filename=
url_have_group_name = false
修改为:
tracker_server=192.168.229.201:22122
tracker_server=192.168.229.156:22122
store_path0=/data/fdfs_storage/store
log_filename=/var/log/mod_fastdfs.log
url_have_group_name = true
[root@fastdfs1 fdfs]# nginx
ngx_http_fastdfs_set pid=25014
[root@fastdfs1 fdfs]# cd /usr/local/src
[root@fastdfs1 src]# wget http://world.people.com.cn/NMediaFile/2020/0908/MAIN202009080840000594275740572.jpg
[root@fastdfs1 src]# mv MAIN202009080840000594275740572.jpg 2.jpg
[root@fastdfs1 src]# ls
1.png fastdfs libfastcommon nginx-1.16.1.tar.gz
2.jpg fastdfs-nginx-module nginx-1.16.1
[root@fastdfs1 src]# fdfs_upload_file /etc/fdfs/client.conf 2.jpg
group1/M00/00/00/wKjlyV9Xf3SAELlvAAMMJu7jMOM522.jpg
网页访问页面验证
192.168.229.201/group1/M00/00/00/wKjlyV9Xf3SAELlvAAMMJu7jMOM522.jpg