FastDFS和Nginx實現分散式檔案伺服器
FastDFS和Nginx實現分散式檔案伺服器
FastDFS是一個開源的輕量級分散式檔案系統,它對檔案進行管理,功能包括:檔案儲存、檔案同步、檔案訪問(檔案上傳、檔案下載)等,解決了大容量儲存和負載均衡的問題。特別適合以檔案為載體的線上服務,如相簿網站、視訊網站等等。
FastDFS為網際網路量身定製,充分考慮了冗餘備份、負載均衡、線性擴容等機制,並注重高可用、高效能等指標,使用FastDFS很容易搭建一套高效能的檔案伺服器叢集提供檔案上傳、下載等服務。
1.下載
FastDFS下載地址:https://sourceforge.net/projects/fastdfs/
FastDFS的github下載地址:https://github.com/happyfish100/fastdfs
libfastcommon的下載地址:https://sourceforge.net/projects/libfastcommon/
libfastcommon的github下載地址:https://github.com/happyfish100/libfastcommon
FastDFS-nginx-module的下載地址:https://sourceforge.net/projects/fastdfs/files/FastDFS%20Nginx%20Module%20Source%20Code/
FastDFS-nginx-module的github下載地址:https://github.com/happyfish100/fastdfs-nginx-module
Nginx下載地址:http://nginx.org/en/download.html
Nginx的github下載地址:https://github.com/nginx/nginx
2.架構圖
3.FastDFS-tracker安裝
3.1 FastDFS安裝環境
FastDFS是C語言開發,建議在linux上執行。
安裝FastDFS需要先將官網下載的原始碼進行編譯,編譯依賴gcc環境
yum install gcc-c++
3.2 安裝libevent
FastDFS依賴libevent庫
yum -y install libevent
3.3 安裝libfastcommon
libfastcommon是FastDFS官方提供的,libfastcommon包含了FastDFS執行所需要的一些基礎庫。
上傳到linux,並解壓
解壓後的目錄
進入解壓目錄,進行編譯,安裝
編譯命令
[root@root libfastcommon-1.0.7]# ./make.sh
安裝命令
[root@root libfastcommon-1.0.7]# ./make.sh install
libfastcommon安裝好後會自動將庫檔案拷貝至/usr/lib64下,由於FastDFS程式引用usr/lib目錄所以需要將/usr/lib64下的庫檔案拷貝至/usr/lib下。
[root@root lib64]# cp libfastcommon.so /usr/lib
3.4 tracker編譯安裝
上傳FastDFS.tar.gz檔案,並解壓
[root@root fastdfs]# tar -zxvf FastDFS_v5.05.tar.gz
進入解壓的目錄,進行編譯,安裝
編譯命令
[root@root FastDFS]# ./make.sh
安裝命令
[root@root FastDFS]# ./make.sh install
安裝成功後,將安裝目錄下的conf下的檔案拷貝到/etc/fdfs/下
[root@root FastDFS]# cd conf/
[root@root conf]# cp * /etc/fdfs/
3.5 配置
安裝成功後進入/etc/fdfs目錄,修改tracker.conf
修改 base_path=/home/yuqing/fastdfs 為 base_path=/home/fastdfs
3.6 啟動
啟動命令
[root@root fdfs]# /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
設定開機自動啟動
[root@root fdfs]# vi /etc/rc.d/rc.local
將執行命令新增進檔案
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
如圖
4.FastDFS-storage的安裝
4.1 安裝libevent
同tracker安裝。(如果是一臺虛擬機器安裝Tracker和Storage,這裡可以省略)
FastDFS依賴libevent庫
yum -y install libevent
4.2 安裝libfastcommon
同tracker安裝。(如果是一臺虛擬機器安裝Tracker和Storage,這裡可以省略)
libfastcommon是FastDFS官方提供的,libfastcommon包含了FastDFS執行所需要的一些基礎庫。
上傳到linux,並解壓
解壓後的目錄
進入解壓目錄,進行編譯,安裝
編譯命令
[root@root libfastcommon-1.0.7]# ./make.sh
安裝命令
[root@root libfastcommon-1.0.7]# ./make.sh install
libfastcommon安裝好後會自動將庫檔案拷貝至/usr/lib64下,由於FastDFS程式引用usr/lib目錄所以需要將/usr/lib64下的庫檔案拷貝至/usr/lib下。
[root@root lib64]# cp libfastcommon.so /usr/lib
4.3 storage編譯安裝
同tracker編譯安裝。(如果是一臺虛擬機器安裝Tracker和Storage,這裡可以省略)
上傳FastDFS.tar.gz檔案,並解壓
[root@root fastdfs]# tar -zxvf FastDFS_v5.05.tar.gz
進入解壓的目錄,進行編譯,安裝
編譯命令
[root@root FastDFS]# ./make.sh
安裝命令
[root@root FastDFS]# ./make.sh install
安裝成功後,將安裝目錄下的conf下的檔案拷貝到/etc/fdfs/下
[root@root FastDFS]# cd conf/
[root@root conf]# cp * /etc/fdfs/
4.4 配置
安裝成功後進入/etc/fdfs目錄
修改storage.conf檔案
將 base_path=/home/yuqing/fastdfs 改為:base_path=/home/fastdfs
將 store_path0=/home/yuqing/fastdfs 改為:store_path0=/home/fastdfs/fdfs_storage
#如果有多個掛載磁碟則定義多個store_path,如下
#store_path1=...
#store_path2=...
配置tracker伺服器ip
4.5 啟動
啟動命令
[root@root fdfs]# /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
設定開機自動啟動
5.上傳圖片測試
5.1 通過fdfs_test程式
FastDFS安裝成功可通過/usr/bin/fdfs_test測試上傳和下載等操作
修改/etc/fdfs/client.conf檔案
[root@root fdfs]# vi /etc/fdfs/client.conf
上傳檔案使用格式
/usr/bin/fdfs_test 客戶端配置檔案地址 upload 上傳檔案
比如將/usr/local/application目錄下的1.png圖片上傳到FastDFS中
上傳檔案的目錄下:
由於現在還沒有和nginx整合無法使用http下載。
6.FastDFS 和 Nginx整合
6.1 在tracker上安裝Nginx
在每個tracker上安裝Nginx,目的是做負載均衡及實現高可用
……
6.2 在storage上安裝Nginx
6.2.1 FastDFS-nginx-module
上傳,並解壓
[root@root fastdfs-nginx-module]# tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
進入fastdfs-nginx-module/src/目錄下,編輯config配置檔案
將fastdfs-nginx-module/src/下的mod_fastdfs.conf檔案拷貝至/etc/fdfs/下
[root@root src]# cp mod_fastdfs.conf /etc/fdfs/
修改/etc/fdfs/mod_fastdfs.conf的內容
將 base_path=/tmp 修改為 base_path=/home/fastdfs
將 /usr/lib64/libfdfsclient.so拷貝至/usr/lib下
[root@root lib64]# cp /usr/lib64/libfdfsclient.so /usr/lib
建立nginx/client目錄
[root@root lib64]# mkdir -p /var/temp/nginx/client
6.2.2 nginx安裝
安裝環境
安裝pcre庫
[root@root lib64]# yum -y install pcre-devel
安裝zlib庫
[root@root lib64]# yum install -y zlib-devel
上傳Nginx,並解壓
[root@root nginx]# tar -zxvf nginx-1.7.7.tar.gz
新增fastDFS-nginx-module模組,進入解壓目錄,執行命令
[root@root nginx-1.7.7]# ./configure \
> --prefix=/usr/local/nginx \
> --pid-path=/var/run/nginx/nginx.pid \
> --lock-path=/var/lock/nginx.lock \
> --error-log-path=/var/log/nginx/error.log \
> --http-log-path=/var/log/nginx/access.log \
> --with-http_gzip_static_module \
> --http-client-body-temp-path=/var/temp/nginx/client \
> --http-proxy-temp-path=/var/temp/nginx/proxy \
> --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
> --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
> --http-scgi-temp-path=/var/temp/nginx/scgi \
> --add-module=/usr/local/application/fastdfs/fastdfs-nginx-module/fastdfs-nginx-module/src
–prefix=/usr/local/nginx \ :是安裝目錄
配置成功如下圖
進入nginx的解壓目錄,編譯並安裝
[root@root nginx-1.7.7]# make
[root@root nginx-1.7.7]# make install
6.2.3 nginx配置檔案
修改nginx安裝目錄下的配置檔案conf/nginx.conf
6.3 啟動
啟動Nginx
[root@root conf]# /usr/local/nginx/sbin/nginx
設定開機自動開啟
[root@root conf]# vi /etc/rc.d/rc.local
將執行命令新增進檔案,如下圖
6.4 測試
訪問上傳的圖片
[root@root 00]# /usr/bin/fdfs_test /etc/fdfs/client.conf upload /usr/local/application/love.jpg
返回訪問路徑
訪問
相關文章
- 分散式檔案儲存FastDFS(三)FastDFS配置分散式AST
- FastDFS分散式檔案系統AST分散式
- 分散式檔案儲存FastDFS(七)FastDFS配置檔案詳解分散式AST
- FastDFS-分散式檔案系統AST分散式
- 分散式檔案系統之 FastDFS分散式AST
- 伺服器後端開發系列——《實戰FastDFS分散式檔案系統》伺服器後端AST分散式
- 01_FastDFS分散式檔案系統AST分散式
- 分散式檔案系統(FastDFS)叢集分散式AST
- 分散式檔案系統FastDFS詳解分散式AST
- 輕量級分散式檔案系統fastDFS分散式AST
- 分散式檔案系統(FastDFS)安裝 配置分散式AST
- nginx實現檔案伺服器Nginx伺服器
- 分散式檔案系統之FastDFS安裝部署分散式AST
- FASTDFS開源分散式檔案系統介紹AST分散式
- FastDFS+Nginx搭建分散式圖片儲存ASTNginx分散式
- 分散式檔案系統fastdfs_搭建和基本使用分散式AST
- 搭建FastDFS分散式儲存環境(使用Nginx模組)AST分散式Nginx
- FastDFS安裝fastdfs-nginx-module和nginxASTNginx
- Dubbo分散式架構實戰--FastDFS分散式檔案系統的安裝與使用(單節點)分散式架構AST
- 最簡單的分散式檔案系統 go-fastdfs分散式GoAST
- 分散式檔案系統fastdfs安裝以及python呼叫分散式ASTPython
- 一文搞定FastDFS分散式檔案系統配置與部署AST分散式
- 分散式檔案儲存系統 fastdfs 的 Composer 包釋出!分散式AST
- 【FastDFS】FastDFS 分散式檔案系統的安裝與使用,看這一篇就夠了!!AST分散式
- SpringBoot利用Nginx作為檔案伺服器實現檔案上傳和訪問Spring BootNginx伺服器
- Nginx|構建簡單的檔案伺服器(mac) 續-FastDFS安裝(mac)|檔案儲存方案Nginx伺服器MacAST
- FastDFS加Redis實現自定義檔名儲存海量檔案ASTRedis
- java實現分散式專案搭建Java分散式
- FastDFS分散式儲存原理簡介AST分散式
- 搭建FastDFS分散式儲存環境AST分散式
- FastDFS+Nginx 整合並實現斷點續傳(一)ASTNginx斷點
- Nginx搭建檔案伺服器Nginx伺服器
- Nginx+lua 實現呼叫.so檔案Nginx
- CentOS 6.4 i386 版本安裝 FastDFS、使用Nginx作為檔案訪問WEB伺服器CentOSASTNginxWeb伺服器
- 分散式事務(4)---RocketMQ實現分散式事務專案分散式MQ
- 【FastDFS】如何打造一款高可用的分散式檔案系統?這次我明白了!!AST分散式
- 分散式檔案系統分散式
- Redis分散式鎖的原理和實現Redis分散式