一、關於FastDFS
1、FastDFS簡介
FastDFS(Fast Distributed File System)是一個開源的分佈式文件系統,旨在解決大規模文件存儲和訪問的問題,例如圖片、音視頻等。它具有高性能、高可靠性和可擴展性的特點,被廣泛應用於大規模的互聯網應用中。
FastDFS由跟蹤服務器(Tracker Server)和存儲服務器(Storage Server)組成。跟蹤服務器負責跟蹤存儲服務器的狀態和負載情況,存儲服務器負責實際的文件存儲和訪問。
2、FastDFS安裝環境概覽
環境與依賴庫:
名稱 | 說明 |
centos | 7.x |
libfastcommon | FastDFS分離出的公用函數庫 V1.0.68 |
libserverframe | FastDFS分離出的網絡框架 V1.1.28 |
FastDFS | FastDFS主體程序 V6.9.5 |
fastdfs-nginx-module | FastDFS和nginx的關聯模塊(解決http訪問文件) |
nginx | 1.15.2 |
gcc-c++ | C依賴環境(FastDFS 採用 C 語言開發) |
libevent | FastDFS主體程序-依賴庫 |
下載地址:
yum install gcc-c++ yum -y install libevent wget https://github.com/happyfish100/libfastcommon/archive/refs/tags/V1.0.68.tar.gz
wget https://github.com/happyfish100/libserverframe/archive/refs/tags/V1.1.28.tar.gz
wget https://github.com/happyfish100/fastdfs/archive/refs/tags/V6.9.5.tar.gz
二、安裝
1、gcc-c++ 安裝
yum install gcc-c++
下載完後提示是否安裝,選擇:Y。安裝成功出現:Complete!
2、libevent 安裝
yum -y install libevent
安裝成功出現:Complete!
3、libfastcommon 安裝
這裏我放/home目錄,安裝以實際目錄做調整
cd /home ## 下載 wget https://github.com/happyfish100/libfastcommon/archive/refs/tags/V1.0.68.tar.gz ## 解壓 tar -zxvf V1.0.68.tar.gz cd libfastcommon-1.0.68/ ## 編譯 ./make.sh ## 安裝 ./make.sh install
4、libserverframe 安裝
cd /home ## 下載 wget https://github.com/happyfish100/libserverframe/archive/refs/tags/V1.1.28.tar.gz ## 解壓 tar -zxvf V1.1.28.tar.gz cd libserverframe-1.1.28/ ## 編譯 ./make.sh ## 安裝 ./make.sh install
5、FastDFS 安裝
cd /home ## 下載 wget https://github.com/happyfish100/fastdfs/archive/refs/tags/V6.9.5.tar.gz ## 解壓 tar -zxvf V6.9.5.tar.gz cd fastdfs-6.9.5/ ## 編譯 ./make.sh ## 安裝 ./make.sh install
安裝成功後,/etc/fdfs/ 如下:
三、配置
1、創建存儲目錄相關路徑
這裏我還是放在/home目錄,安裝以實際目錄做調整(文件夾用途:後續配置需要)
mkdir -p /home/fastdfs mkdir -p /home/fastdfs/data mkdir -p /home/fastdfs/tracker mkdir -p /home/fastdfs/client
2、配置跟蹤器(Tracker Server)
配置:
cd /etc/fdfs/ vim tracker.conf #主要更改以下幾個配置(其他詳細參數可以自行查詢資料) #存儲數據和日誌文件的基本路徑 base_path=/home/fastdfs/tracker #Http服務端口(後續放開http訪問需要) http.server_port=80 #默認提供服務端口(可自行更改) port=22122
啓動:
## 啓動 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start ## 查看狀態 netstat -apn|grep fdfs
3、配置數據存儲(Storage Server)
配置:
cd /etc/fdfs/ vim storage.conf #主要更改以下幾個配置(其他詳細參數可以自行查詢資料) ## storage存儲data和log的跟路徑 base_path=/home/fastdfs/data ## 默認組名 group_name=group1 ## 默認端口,相同組的storage端口號必須一致 port=23000 ## 配置一個存儲路徑 store_path_count=1 store_path0=/home/fastdfs/data ## 配置跟蹤器IP和端口 tracker_server=服務器外網IP:22122
啓動:
## 啓動 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf start ## 查看進程 netstat -apn|grep fdfs ## 查看啓動日誌 tail -f /home/fastdfs/data/logs/storaged.log ## 查看是否在通訊(正常能看到 ACTIVE 標識) /usr/bin/fdfs_monitor /etc/fdfs/storage.conf
4、配置客戶端測試
配置:
cd /etc/fdfs/ vim client.conf #主要更改以下幾個配置(其他詳細參數可以自行查詢資料) ## client數據和日誌目錄 base_path=/data/fastdfs/client ## 配置跟蹤器IP和端口 tracker_server=服務器外網IP:22122
啓動:
現在/home 目錄下放一個圖片,執行如下語句:
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /home/img1.png
返回如下信息(配置成功):
走到這裏基本上整個單服務器服務就搭建成功了,但是此時還無法http查看和下載。這裏就需要藉助fastdfs-nginx-module實現http查看。
四、配置nginx模塊實現http方式打開、下載圖片
1、相關依賴安裝
## pcre-devel 環境 yum install -y pcre pcre-devel ## zlib-devel 環境 yum install -y zlib zlib-devel ## openssl-devel 環境 yum install -y openssl openssl-devel ## unzip 解壓縮 yum install -y unzip zip
2、下載解壓Nginx
cd /home wget http://nginx.org/download/nginx-1.15.2.tar.gz tar -zxvf nginx-1.15.2.tar.gz
3、下載解壓Fast-Nginx
cd /home wget https://github.com/happyfish100/fastdfs-nginx-module/archive/refs/tags/V1.23.zip mv V1.23.zip fast-nginx.zip unzip fast-nginx.zip ## 安裝完後需要把mod_fastdfs.conf拷貝到/etc/fdfs目錄下 cp /home/fastdfs-nginx-module-1.23/src/mod_fastdfs.conf /etc/fdfs ## 對剛剛拷貝的mod_fastdfs.conf文件進行修改: vim /etc/fdfs/mod_fastdfs.conf ## 主要關注以下配置 base_path=/home/fastdfs/data #保存日誌目錄 tracker_server=服務器外網IP:22122 #tracker服務器的IP地址以及端口號 url_have_group_name = true #文件 url 中是否有 group 名 store_path0=/home/fastdfs/data #存儲路徑
4、配置安裝Nginx、Fast-Nginx
cd /home/nginx-1.15.2 ## 注入配置 ./configure --add-module=/home/fastdfs-nginx-module-1.23/src ## 編譯並安裝 make && make install ##複製http.conf和mime.types至 /etc/fdfs/目錄 cp /home/fastdfs-6.9.5/conf/http.conf /etc/fdfs/ cp /home/fastdfs-6.9.5/conf/mime.types /etc/fdfs/
驗證是否安裝成功,執行下面命令,看注入地址是否成功。
/usr/local/nginx/sbin/nginx -V
配置Nginx代理地址
cd /usr/local/nginx/conf/ vim nginx.conf ## 配置內容如下(url_have_group_name = true爲false的時候需要更改) server { listen 80; location ~/group([0-9])/M00 { root /data/fastdfs/data; ngx_fastdfs_module; } }
5、見證結束時刻
NGINX服務啓動。
## 啓動 /usr/local/nginx/sbin/nginx ## 停止 /usr/local/nginx/sbin/nginx -s stop ## 重啓 /usr/local/nginx/sbin/nginx -s reload
訪問方式:http://互聯網Ip地址/group1/M00/00/00/CIbAYmStEtGAPx2FAAAtNms4POE783.png