搭建之前,先來張效果圖:
但我們沒有那么多服務器,怎么辦呢?本著學習的態(tài)度,我們可以搭建一個最簡易的,Tracker需要一個集群,我們可以先給一臺,Storage集群,我們只配置一組,一組中我們只要一個主服務器,先不配置從服務器。
這樣就需要兩臺Linux服務器,Tracker和Storage兩個可以先放到一臺機器上,所以最簡易的結(jié)構應該是一臺Linux服務器,配置一個Tracker和一個Storage即可。
好的,做好,開船!!!!!
一、下載
? ? ? ? tracker和storage使用相同的安裝包,下載地址:http://sourceforge.net/projects/FastDFS/或https://github.com/happyfish100/FastDFS(推薦)
我們當前使用的是:FastDFS_v5.05.tar.gz
下載地址:FastDFS_v5.05.tar.gz
二、FastDFS安裝環(huán)境
FastDFS是C語言開發(fā),建議在linux上運行,本教程使用Centos6.4作為安裝環(huán)境。
1、安裝FastDFS需要先將官網(wǎng)下載的源碼進行編譯,編譯依賴gcc環(huán)境
?如果沒有gcc環(huán)境,需要安裝gcc:
yum install gcc-c++
運行yum命令必須聯(lián)網(wǎng)才行
2、安裝libevent
FastDFS依賴libevent庫,需要安裝:
yum -y install libevent
3、安裝libfastcommon
libfastcommon是FastDFS官方提供的,libfastcommon包含了FastDFS運行所需要的一些基礎庫。
下載鏈接: http://pan.baidu.com/s/1bpeYGWZ 密碼: bqp7
將libfastcommonV1.0.7.tar.gz拷貝至/usr/local/下(此處省略了通過SSH工具連接Linux,并上傳文件,拷貝文件這么個過程)
cd /usr/local
tar -zxvflibfastcommonV1.0.7.tar.gz
cd libfastcommon-1.0.7
./make.sh
./make.sh install
該過程主要是將libfastcommon解壓、編譯、并安裝。
注意:libfastcommon安裝好后會自動將庫文件拷貝至/usr/lib64下,由于FastDFS程序引用usr/lib目錄所以需要將/usr/lib64下的庫文件拷貝至/usr/lib下,只需要將libfastcommon.so ?拷貝過去即可,不需要全部拷貝,更不能全部移動,這樣系統(tǒng)徹底歇菜。
三、安裝開始
1、安裝Tracker
將FastDFS_v5.05.tar.gz拷貝至/usr/local/下
tar -zxvf ? FastDFS_v5.05.tar.gz
cd FastDFS
./make.sh
./make.sh install
安裝成功將安裝目錄下的conf下的文件拷貝到/etc/fdfs/下。
2、配置
安裝成功后進入/etc/fdfs目錄:
修改tracker.conf
vi tracker.conf
base_path=/home/yuqing/FastDFS
改為:
base_path=/home/fastdfs
3、啟動
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
啟動的日志顯示先停止5619進程(實際環(huán)境不是5619)再啟動,如下圖:
注意:如果沒有顯示上圖要注意是否正常停止原有進程。
設置開機自動啟動。
[root@localhost fdfs]#vim /etc/rc.d/rc.local
將運行命令行添加進文件:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
4、Storage安裝、配置
如果Storage安裝在了一臺全新的Linux服務器上,需要將之前的步驟二再來一遍(安裝環(huán)境)
但是我們目前是在一臺電腦上安裝,所以可以跳過。
接下來需要在Storage上進行配置
進入/etc/fdfs目錄,配置storage.conf。
修改storage.conf
vi ? storage.conf
group_name=group1
base_path=/home/yuqing/FastDFS改為:base_path=/home/fastdfs
store_path0=/home/yuqing/FastDFS改為:store_path0=/home/fastdfs/fdfs_storage
如果在/home下沒有fastdfs,請先創(chuàng)建fastdfs文件夾,fastdfs下沒有fdfs_storage,需要實現(xiàn)創(chuàng)建該文件夾。
tracker_server=192.168.25.129:22122#配置tracker服務器:IP
5、啟動storage
/usr/bin/fdfs_storaged ?/etc/fdfs/storage.conf restart
注意:如果沒有顯示上圖要注意是否正常停止原有進程。
設置開機自動啟動。
[root@storage1 FastDFS]#vim /etc/rc.d/rc.local
將運行命令行添加進文件:/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
6、上傳圖片測試
1.1.1通過fdfs_test程序
FastDFS安裝成功可通過/usr/bin/fdfs_test測試上傳、下載等操作。
修改/etc/fdfs/client.conf
base_path=/home/fastdfs
tracker_server=192.168.25.129:22122
使用格式:
/usr/bin/fdfs_test ? 客戶端配置文件地址 ? upload ? 上傳文件
比如將/home下的圖片上傳到FastDFS中:
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /home/admin/hehe.jpg
如果出現(xiàn)如下界面,表示上傳成功。
現(xiàn)在由于只是成功了一部分,因為圖片是可以上傳了,但是沒辦法訪問,為什么呢?
因為就沒有http服務器,怎么訪問啊?????
四、FastDFS和nginx整合
我們需要通過Nginx來搭建一個http服務器才行,那步驟是不是和之前我寫的《利用Nginx當http服務器》一樣呢?略有不同,所有最后建議按照如下步驟搭建。
1、在tracker上安裝nginx
在每個tracker上安裝nginx,的主要目的是做負載均衡及實現(xiàn)高可用。如果只有一臺tracker服務器可以不配置nginx。
所以此處不用配置該Nginx
2、在Storage上安裝nginx
? ? ?1)FastDFS-nginx-module
將FastDFS-nginx-module_v1.16.tar.gz傳至/usr/local/下
cd /usr/local
tar -zxvfFastDFS-nginx-module_v1.16.tar.gz
cdFastDFS-nginx-module/src
修改config文件將/usr/local/路徑改為/usr/
將FastDFS-nginx-module/src下的mod_FastDFS.conf拷貝至/etc/fdfs/下
cp mod_FastDFS.conf /etc/fdfs/
并修改mod_FastDFS.conf的內(nèi)容:
vi /etc/fdfs/mod_FastDFS.
base_path=/home/fastdfs
tracker_server=192.168.25.129:22122
url_have_group_name=true ? ?#url中包含group名稱
store_path0=/home/fastdfs/fdfs_storage ? ? ?#指定文件存儲路徑
將libfdfsclient.so拷貝至/usr/lib下
cp /usr/lib64/libfdfsclient.so ? ?/usr/lib/
創(chuàng)建nginx/client目錄,為Nginx的安裝做準備
mkdir -p /var/temp/nginx/client
五、Nginx的安裝
將Nginx源碼包上傳到服務器,并解壓,Nginx的安裝需要有一些安裝環(huán)境,此處不再贅述,執(zhí)行如下命令即可:
1、yum install gcc-c++
2、yum install -y pcre pcre-devel
3、yum install -y zlib zlib-devel
4、yum install -y openssl openssl-devel
然后就可以編譯Nginx了,首先Nginx沒有makefile文件,需要手動生成一個,生成時此處還需要注冊一個fastdfs模塊(留意命令最后一行)
進入到nginx的源碼目錄下,執(zhí)行如下代碼:
./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/fastdfs-nginx-module/src
該命令是一個命令,不能一個個粘貼,統(tǒng)一粘貼,千萬需要注意路徑問題,沒有的文件夾一定要先創(chuàng)建。
執(zhí)行完畢后會生成一個MakeFile文件,然后就就可在該路徑下進行編譯和安裝了
編譯:make
安裝:make install
六、Nginx配置
在/usr/local/nginx/conf下,找到nginx.conf,新增如下內(nèi)容:
server {
? ? ?listen? ? ? 80;
? ? ?server_name? 192.168.25.129;
? ? ?location /group1/M00/{
? ? ? ? ? ? ? ? ? #root /home/fastdfs/fdfs_storage/data;
? ? ? ? ? ? ? ? ?ngx_fastdfs_module;
? ? ? }
}
保存,重啟Nginx。
先訪問http://192.168.25.129是否可訪問。
切記:請關閉Linux防火墻,或者將80端口放開,要不然一切都不起作用。
再訪問之前的url是否可以訪問到該圖片,如果訪問成功,說明搭建完成。
http://192.168.25.129/group1/M00/00/00/wKgZgVl2Lx6AJGGNAAHY4S_5XfM096_big.jpg