簡介nginx
FastDFS是一款類Google FS的開源分佈式文件系統,它用純C語言實現,支持Linux、FreeBSD、AIX等UNIX系統。它只能經過專有API對文件進行存取訪問,不支持POSIX接口方式,不能mount使用。準確地講,Google FS以及FastDFS、mogileFS、HDFS、TFS等類Google FS都不是系統級的分佈式文件系統,而是應用級的分佈式文件存儲服務。c++
在安裝以前,咱們須要先區分一下角色git
Track 理解爲調度器就好了,提供上傳功能github
Storage 提供存儲功能web
他們最起碼須要一臺,咱們這裏作實驗就各使用兩臺作測試vim
一、環境app
操做系統 Centos 7.0 X64最小化安裝tcp
Track1 :192.168.121.131分佈式
Track2 :192.168.121.132ide
Storage1 :192.168.121.133
Storage1 :192.168.121.134
FastDFS 下載地址
https://sourceforge.net/projects/fastdfs/files/?source=navbar
二、在Track上安裝fastdfs
首先,安裝依賴包
yum install -y gcc-c++ wget unzip perl pcre-devel zlib-devel
192.168.121.131
下載代碼包
解壓後咱們查看INSTALL文件,上面寫了安裝步驟
如圖,要安裝FastDFS咱們要先安裝libfastcommon
因此下載安裝libfastcommon
wget https://codeload.github.com/happyfish100/libfastcommon/zip/master
unzip master && cd libfastcommon-maste
./make.sh && ./make.sh install
再回到FaastDFS安裝包,執行安裝
cd ../FastDFS/
./make.sh && ./make.sh install
安裝完成
而後在192.168.121.132 133 134上面執行一樣操做
三、配置Track
修改tracker.conf 文件
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
mkdir /data/fastdfs
#配置data和log的存放路徑
vim /etc/fdfs/tracker.conf
修改 base_path=/home/yuqing/fastdfs爲
base_path=/data/fastdfs
修改client.conf
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
#設置參數
vim /etc/fdfs/client.conf
base_path=/data/fastdfs
tracker_server=192.168.121.131:22122
tracker_server=192.168.121.132:22122
http.tracker_server_port=80
啓動服務
/etc/init.d/fdfs_trackerd start
打開防火牆
firewall-cmd --add-port=22122/tcp
查看狀態
fdfs_monitor /etc/fdfs/client.conf
四、配置Storage
cp /root/FastDFS/conf/http.conf /etc/fdfs/
cp /root/FastDFS/conf/mime.types /etc/fdfs/
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
vim /etc/fdfs/storage.conf
#修改base路徑
base_path=/data/fastdfs
#修改存儲路徑
store_path0=/data/fastdfs
#設置track IP
tracker_server=192.168.121.131:22122
tracker_server=192.168.121.132:22122
#修改web端口
http.server_port=80
啓動服務
/etc/init.d/fdfs_storaged start
添加防火牆
firewall-cmd --add-port=23000/tcp
配置nginx並安裝模塊
wget http://nginx.org/download/nginx-1.8.1.tar.gz
拷貝配置文件
cp fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
編譯安裝nginx
./configure --prefix=/usr/local/nginx --add-module=../fastdfs-nginx-module/src/
這步會報錯
解決辦法是修改fastdfs模塊引用fastdfs的路徑
由於Fastdfs的prefix 是/usr
這裏引用的是/usr/local
vim ../fastdfs-nginx-module/src/config
#去掉local
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
CORE_LIBS="$CORE_LIBS -L/usr/lib -lfastcommon -lfdfsclient"
而後從新編譯安裝就能過了
make clean
./configure --prefix=/usr/local/nginx --add-module=../fastdfs-nginx-module/src/
Make && make install
修改模塊配置文件
vim /etc/fdfs/mod_fastdfs.conf
#日誌路徑
base_path=/data/log
tracker_server=192.168.121.130:22122
tracker_server=192.168.121.131:22122
#存儲路徑
store_path0=/data/fastdfs
url_have_group_name = true
修改nginx配置
vim /usr/local/nginx/conf/nginx.conf
location /group1/M00 {
root /data/fastdfs/data;
ngx_fastdfs_module;
}
啓動nginx
/usr/local/nginx/sbin/nginx -s
開防火牆
firewall-cmd --add-port=23000/tcp
查看fastdfs狀態
fdfs_monitor /etc/fdfs/storage.conf
狀態爲ACTIVE是正常
啓動成功
五、測試上傳
用Track1和Track2來上傳都是能夠的
這裏用Track1
fdfs_test /etc/fdfs/client.conf upload /tmp/30adcbef76094b360fade2f0a5cc7cd98d109df4.jpg
上傳成功,得到一個圖片地址
圖片實際保存路徑爲
/data/fastdfs/data/00/00/wKh5hFblTomANCAAAADD0tsLWr8597.jpg
訪問圖片測試
正常訪問
再訪問另外一臺Storage
訪問正常,實驗完成
因爲有兩臺Storage和Track,任何一臺s掛掉都是有備份的
Track和stoage能夠用keepalive來作高可用實現故障轉移 這裏就很少說了。