FastDFS
FastDFS作為一個分布式文件系統,使用原理和環境搭建步驟網上有很多教程,https://www.cnblogs.com/chiangchou/p/fastdfs.html?tdsourcetag=s_pcqq_aiomsg該博客寫得非常的完美,按照博客上的步驟進行搭建即可。(防火牆開發的命令建議根據實際系統進行配置。該博客中的防火牆和新版的centos 防火牆不一樣,我這邊使用的系統是CentOS Linux release 7.7.1908 ,防火牆不是iptables而是firewalld。)
FastDFS文件上傳操作原理
1、storage定時向Tracker上傳狀態信息
2、client發送上傳連接請求到Tracker,Tracker查詢步驟1返回可用的storage
3、Tracker將可用的storage的ip和端口返回到client
4、client發送file content(文件內容)和metadata(源數據)到storage
5、storage接收到client發送的信息后,生成file ID 並將上傳的內容寫入磁盤,然后依次返回給Tracker和client
6、將生成的file ID(group、存儲目錄、兩級子目錄、fileid、文件后綴名(由客戶端指定,主要用於區分文件類型)拼接等信息)寫入數據庫
FastDFS安裝思路
版本:V5.05 (網上安裝教程一般都是V5.05的)
libfastcommon(基礎環境)+FastNDF(Tracker+Storage+Client)+Nginx(astdfs-nginx-module )
1、確保linux系統上安裝了GCC編譯器
2、下載編譯安裝FastDNS基礎環境libfastcommon
3、下載編譯安裝FastDNS
4、修改FastDFS 服務腳本設置的默認路徑。默認路徑是/usr/local/bin,但實際命令安裝在/usr/bin
修改方法1)直接修改/etc/init.d/fdfs_tracker和fdfs_storaged文件中配置的路徑地址。
修改方法2)創建軟連接ln-s,將 /usr/bin 下的restart.sh、restart.sh、fdfs_tracker、fdfs_storaged連接到/usr/bin下
5、修改tracker.conf配置文件中的base_path 和 http.server_port。(http.server_port應該和nginx中配置的端口一致)
6、將storage.conf.sample重命名storaged.conf 並配置文件中的base_path 、store_path0、tracker_server和http.server_port。tracker_server為服務器配置的域名或者ID地址+tracker端口號
7、驗證Tracker 和Storage 通信是否正常:/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
8、cd命令 client.conf.sample重命名為client.conf文件 ,修改client.conf文件中的base_path 和 tracker_server。
9、上傳圖片進行測試。
如果以上均測試沒有問題,那么根據自己的實際需求,設置開機自啟動和防火牆開發端口。 (tracker默認端口:22122 Storage默認端口:23000 )
10、安裝nginx 修改nginx.conf 將/group1/M00 映射到對應的路徑下。
11、開放防火牆端口后,通過域名+端口+文件上傳返回的字符串信息進行訪問操作。
12、nginx 整合fastdfs-nginx-module模塊
FastDFS安裝過程中常見的報錯
1、使用GCC編譯時報錯,建議更新或下載安裝GCC
2、配置文件錯誤,無法正確啟動程序,建議檢查conf文件中配置信息是否正確
3、啟動時端口占用,建議更換端口或者將已經占用該端口的進程強制結束掉
4、Tracker和Storage 均能啟動,但是無法通訊,建議檢查:兩邊配置文件中的參數是否匹配,racker.conf文件中的tracker_server參數是否正確。
5、上傳文件成功並返回文件ID但是無法瀏覽器訪問。建議檢查防火牆是否關閉、已經開放了nginx端口、已經默認端口是否是80
(通過域名直接訪問,默認只能訪問80端口,如果修改了端口號那么需要域名+端口才能訪問)