一、FastDFS概述
FastDFS是阿里巴巴開源的一套輕量級,天生就是分佈式設計的文件系統,FastDFS的源代碼由C語言開發,目前可運行在Linux,FreeBSD,Unix等類操作系統上,FastDFS解決了大數據量文件存儲(這裏經常有人說成大數據,我本人是不贊同的)和讀寫分離,備份容錯,負載均衡,動態擴容等問題,這也就是原作者所描述的高性能和高擴展性的文件系統。適合存儲4KB~500MB之間的小文件,如圖片網站、短視頻網站、文檔、app下載站等。
二、FastDFS作者簡介
FastDFS的作者是餘慶(happyfish100),github地址https://github.com/happyfish100
三、下載所需要的安裝包
https://github.com/happyfish100
- fastdfs 核心類庫
- libfastcommon 公共類庫
- fastdfs-nginx-module 與nginx整合相關的類庫
如何下載對應的版本
四、上傳安裝包到服務器上
/usr/local/myWorkSpace/FastFDS
因爲這裏下載的是zip包,linux解壓zip文件,命令:unzip 文件所在路徑, 如果沒有該命令,可先安裝,命令爲:yum -y install unzip
五、開始搭建
- 安裝 libfastcommon
解壓公共類庫包
unzip libfastcommon-1.0.39.zip
(/usr/local/myWorkSpace/FastFDS解壓到上傳目錄)
cd libfastcommon-1.0.39
./make.sh && ./make.sh install
查看libfastcommon是否安裝成功
cd /usr/lib && ll libfast*
顯示libfastcommon.so -> /usr/lib64/libfastcommon.so
安裝成功
- 安裝FastDFS
創建目錄用於存放fastdfs配置
mkdir /etc/fdfs/
cp /usr/local/myWorkSpace/FastFDS/fastdfs-5.11/conf/mime.types /etc/fdfs/
cp /usr/local/myWorkSpace/FastDFS/fastdfs-5.11/conf/http.conf /etc/fdfs/
解壓
unzip fastdfs-5.11.zip
(/usr/local/myWorkSpace/FastFDS解壓到上傳目錄)
cd fastdfs-5.11
./make.sh是安裝命令 tracker是監控服務 storage是存儲服務 test是測試服務
./make.sh && ./make.sh install
查看是否安裝成功
cd /usr/bin && ll fdfs
- 配置FastDFS跟蹤器(Tracker)
vim /usr/local/myWorkSpace/FastDFS/fastdfs-5.11/conf/tracker.conf
base_path =/usr/local/myWorkSpace/FastDFS/fastdfs/tracker
–存放data和log的位置
:wq
創建存放Tracker跟蹤器data和log的目錄
mkdir -p /usr/local/myWorkSpace/FastDFS/fastdfs/tracker
創建存放Storage數據存儲服務的data和log目錄
mkdir /usr/local/myWorkSpace/FastDFS/fastdfs/storage
創建Client目錄
mkdir /usr/local/myWorkSpace/FastDFS/fastdfs/client
啓動tracker服務
fdfs_trackerd /usr/local/myWorkSpace/FastDFS/fastdfs-5.11/conf/tracker.conf
啓動成功後可以去 /usr/local/myWorkSpace/FastDFS/fastdfs/tracker目錄查看 有data和logs文件夾生成
cd /usr/local/myWorkSpace/FastDFS/fastdfs/tracker
ll
設置Tracker開機啓動
chkconfig fdfs_trackerd on
或者修改配置文件方式:
vim /etc/rc.d/rc.local
加入配置:
/etc/init.d/fdfs_trackerd start
- 配置 FastDFS 存儲 (Storage)
vim /usr/local/myWorkSpace/FastDFS/fastdfs-5.11/conf/storage.conf
group_name=resource
自定義訪問資源名稱
base_path =/usr/local/myWorkSpace/FastDFS/fastdfs/storage
–存放data和log的位置
store_paht0=/usr/local/myWorkSpace/FastDFS/fastdfs/storage
–存放data和log的位置
tracker_server=服務器公網ip:22122
:wq
啓動storage服務
fdfs_storaged /usr/local/myWorkSpace/FastDFS/fastdfs-5.11/conf/storage.conf
設置Storage開機啓動
chkconfig fdfs_storaged on
或者修改配置文件方式:
vim /etc/rc.d/rc.local
加入配置:
/etc/init.d/fdfs_storaged start
- 文件上傳測試
vim /usr/local/myWorkSpace/FastDFS/fastdfs-5.11/conf/client.conf
Client 的數據和日誌目錄
base_path=/ljzsg/fastdfs/client
Tracker端口
tracker_server=公網ip:22122
準備一張照片上傳到 /usr/local/myWorkSpace/FastDFS/目錄下
fdfs_test /usr/local/myWorkSpace/FastDFS/fastdfs-5.11/conf/client.conf upload /usr/local/myWorkSpace/FastDFS/圖片名.後綴名
上傳成功,至此storage服務安裝成功
6.安裝fastdfs-nginx-module
解壓
unzip fastdfs-nginx-module-1.20.zip
(/usr/local/myWorkSpace/FastFDS解壓到上傳目錄)
cd fastdfs-nginx-module-1.20/src/
vim fastdfs-nginx-module-1.20/src/config
ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon"
:wq
vim astdfs-nginx-module-1.20/src/mod_fastdfs.conf
base_path=/usr/local/myWorkSpace/FastDFS/fastdfs
tracker_server=公網ip地址:22122
group_name=source
url_have_group_name=true
store_path0=/usr/local/myWorkSpace/FastDFS/fastdfs/storage
:wq
cp astdfs-nginx-module-1.20/src/mod_fastdfs.conf /etc/fdfs/
7.fastdfs整合nginx
這裏我是安裝過nginx。服務器已經安裝有Nginx,但缺少必要模塊,例如:SSL模塊、fastdfs-nginx-module 等,此時需要重新編譯Nginx 並添加制定模塊
1、找到Nginx的安裝目錄,如果不清楚之前服務器的安裝目錄結構,可以用命令模糊搜索
find / -name *nginx*
2、停止nginx
nginx -s stop
3、備份 /Nginx的安裝目錄/sbin下的 nginx (防止配置錯誤以備還原)
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_bak_20190319
4、刪除Makefile
rm -rf Makefile
5、重新執行編譯文件
./configure --prefix=/usr/local/myWorkSpace/nginx1.16 --with-http_stub_status_module --with-http_ssl_module --with-debug --add-module=/usr/local/myWorkSpace/FastDFS/fastdfs-nginx-module-1.20/src/
執行 make 命令( 注意只執行make ,不要執行install ,因爲不需要重新安裝,只需要生存新的nginx啓動項即可)
make
6、查看模塊添加情況
./nginx -V
7、配置nginx
mkdir /nginx安裝目錄/conf/conf.d
vim /nginx安裝目錄/conf/nginx.conf
在http之內,server括號之外添加
include conf.d/*.conf;
新建一個文件fastdfs-server.conf文件
vim /nginx安裝目錄/conf/conf.d/fastdfs-server.conf
server{ listen 9870; server_name 公網ip; location /source/M00 { ngx_fastdfs_module; } }
啓動nginx,就可以訪問圖片了