開發環境:centos7環境
搭建FastDFS集群搭建非常復雜,對於初期學習FastDFS來說,搭建個單機版的作為入門更為實際一些。
首先感謝“在京奮斗者“”博主的詳細搭建過程,附上博客地址http://blog.csdn.net/u012453843/article/details/69951920
本文主要參考上面博客進行搭建,並不做特詳細的搭建過程
1.搭建centos7環境
2.配置橋接模式同時可供外網訪問級訪問外網
3.安裝gcc環境
yum install make cmake gcc gcc-c++進行安裝即可
4.上傳安裝文件到/usr/local/software目錄
沒有的話就新建一個目錄mkdir /usr/local/software
上傳所需要的安裝包:安裝包地址目前在博客園空間的文件Sofeware包
上傳成功如下圖(圖中沒有划掉橫線的部分,共4個)

5.安裝zip和unzip命令(用於解壓zip文件)
yum install zip unzip
6.安裝libfastcommon
a:解壓
unzip libfastcommon-master.zip -d /usr/local/fast/
b.進入目錄
cd /usr/local/fast/libfastcommon-master/
c編譯
./make.sh
d.安裝
./make.sh install
7.創建軟連接
FastDFS主程序設置的目錄為/usr/local/lib/,所以我們需要創建/ usr/lib64/下的一些核心執行程序的軟連接文件。如下所示。
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
8.安裝FastDFS
a.進入到cd /usr/local/software下,解壓FastDFS_v5.05.tar.gz文件
b.編譯安裝
cd /usr/local/fast/FastDFS/
./make.sh
./make.sh install
安裝完后,服務腳本位置如下

配置文件位置如下(划線部分為后續添加)

FastDFS一系列執行腳本如下,可以看到有上傳文件腳本、下載文件腳本等等。
cd /usr/bin/ && ls | grep fdfs

c.
c1 : fastDFS服務腳本設置的bin目錄為/usr/local/bin/下,但是實際我們安裝在了/u sr/bin/下面。所以我們需要修改FastDFS配置文件中的路徑,也就是需要修改兩個配置文件
使用命令vim /etc/init.d/fdfs_storaged進入編輯模式,然后直接輸入":",光標會定位到最后一行,在":"后輸入"%s+/usr/local/bin+/usr/bin",如下圖所示。輸入完之后回車,會提示修改了7處。
c2: 接着修改第二個配置文件,我們使用命令vim /etc/init.d/fdfs_trackerd進入編輯模式,接着按照上面那樣輸入":%s+/usr/local/bin+/usr/bin "並按回車,同樣會提醒我們修改了7處。
9.配置跟蹤服務器
a 進入到/etc/fdfs目錄並且復制一份tracker.conf.sample並命名為tracker.conf,如下所示。
cp tracker.conf.sample tracker.conf
b 使用命令vim /etc/fdfs/tracker.conf進入編輯模式,然后修改base_path的值為/fastdfs/tracker,
c.我們在上圖配置文件中配置的/fastdfs/tracker目前是不存在的,因此我們需要創建一下該目錄
mkdir -p /fastdfs/tracker (會在根目錄創建文件夾/fastdfs/tracker)
d.配置並重啟防火牆
放開tracker使用的端口22122
firewall-cmd --zone=public --add-port=22122/tcp --permanent
firewall-cmd --reload
e.在啟動tracker之前,/fastdfs/tracker目錄下是沒有任何文件的
f. 啟動tracker,啟動完之后,可以看到這個目錄下多了兩個目錄data和logs
/etc/init.d/fdfs_trackerd start

10.設置開機自啟動
在rc.local文件中添加/etc/init.d/fdfs_trackerd start
vim /etc/rc.d/rc.local

11.配置fastdfs存儲
a.進入/etc/fdfs目錄,復制一份storage.conf.sample文件並命名為storage.conf
b.修改storage.conf文件 ,我們使用命令vim /etc/fdfs/storage.conf進入編輯模式,對以下四項進行修改,我的虛擬機的IP192.168.0.204,大家根據自己虛擬機的IP自行設置。
- base_path=/fastdfs/storage
- store_path0=/fastdfs/storage
- tracker_server=192.168.156.13:22122
- http.server_port=8888
c.創建存儲目錄,如下所示。
mkdir -p /fastdfs/storage
12.配置防火牆,允許外界訪問storage的默認端口23000
firewall-cmd --zone=public --add-port=23000/tcp --permanent
firewall-cmd --reload
13.在啟動storage之前,/fastdbf/storage目錄下是沒有任何文件的
啟動storage,啟動后再看/fastdfs/storage目錄,可以看到多了data和logs

14.查看FastDFS tracker和storage 是否啟動成功,當看到如下所示信息時說明都啟動成功了。

15.我們進入到 /fastdfs/storage/data/目錄下,可以看到兩級共256*256個目錄,每級都是從00到FF,如下只是列出了第一級的目錄,點進去每個目錄都還有00到FF共256個目錄。

16.設置storage開機自啟動,添加一行/etc/init.d/fdfs_storaged start
vim /etc/rc.local
17.測試圖片上傳
a.進入到/etc/fdfs目錄下並復制一份client.conf.sample並更名為client.conf,
cp client.conf.sample client.conf
b.使用命令vim /etc/fdfs/client.conf進入編輯模式並修改如下兩項內容,如下所示
- base_path=/fastdfs/tracker
- tracker_server=192.168.0.204:22122
c我們找到命令的腳本位置,並且使用命令,進行文件的上傳。
.
d.測試文件上傳 /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/software/3.jpg
18:FastDFS與nginx相結合
a.先安裝nginx,可參看本博客地址linux下安裝nginx
b.安裝fastdfs-nginxmodule_v1.16.tar.gz(fast與nginx相結合的模塊安裝包), 進入 /usr/local/software目錄並解壓,如下所示
cd /usr/local/software/
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/fast/
c.進入到/usr/local/fast目錄下可以看到解壓的fastdfs-nginx-module目錄,然后進入到fastdfs-nginx-module/src/目錄下,可以看到config文件。
cd /usr/local/fast/fastdfs-nginx-module/src/
修改該conf文件,我們把文件的第四行配置中的/usr/local/include都改為/usr/include,共兩處。

d. fastdfs與nginx進行結合,由於我們剛才安裝過nginx了,因此在/usr/local目錄下已經生成了一個nginx目錄了
默認安裝地址/usr/local/nginx(如沒有,可通過whereis nginx查詢或者find / -name nginx
為了將nginx與fastdfs相結合,我們先把這個nginx目錄刪除掉,如下圖所示,可以看到已經沒有nginx目錄了。
rm -rf nginx
進入到nginx-版本號(1.6.2)/目錄下並執行配置和編譯安裝,如下所示。
./configure --add-module=/usr/local/fast/fastdfs-nginx-module/src/
make && make install
復制fastdfs-nginx-module中的配置文件,到/etc/fdfs目錄中
cp /usr/local/fast/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
到 /etc/fdfs/ 目錄下,修改我們剛copy過來的mod_fastdfs.conf 文件,需要修改的項如下,其中第一項是超時時長,第三項是允許外界通過http方式訪問資源。
- connect_timeout=10
- tracker_server=192.168.156.13:22122
- url_have_group_name = true
- store_path0=/fastdfs/storage
復制FastDFS里的2個文件,到/etc/fdfs目錄中,如下所示。
[root@fastdfs fdfs]# cd /usr/local/fast/FastDFS/conf/
[root@fastdfs conf]# ll
總用量 84
-rw-r--r--. 1 8980 users 23981 12月 2 2014 anti-steal.jpg
-rw-r--r--. 1 8980 users 1461 12月 2 2014 client.conf
-rw-r--r--. 1 8980 users 858 12月 2 2014 http.conf
-rw-r--r--. 1 8980 users 31172 12月 2 2014 mime.types
-rw-r--r--. 1 8980 users 7829 12月 2 2014 storage.conf
-rw-r--r--. 1 8980 users 105 12月 2 2014 storage_ids.conf
-rw-r--r--. 1 8980 users 7102 12月 2 2014 tracker.conf
[root@fastdfs conf]# cp http.conf mime.types /etc/fdfs/
創建一個軟連接,在/fastdfs/storage文件存儲目錄下創建軟連接,將其鏈接到實際存放數據 的目錄,如下所示。
進入到/usr/local/nginx/conf/目錄下,修改nginx.conf文件,如下圖所示。
修改的內容如下圖示
listen 9999;
location ~/group([0-9])/M00 {
ngx_fastdfs_module;
設置nginx開機自啟動,這樣下次重啟設備之后,tracker、storage、nginx都自動啟動了,直接就可以使用服務,如下所示。
vim /etc/rc.d/rc.local
最下面添加
/usr/local/nginx/sbin/nginx
開啟nginx防火牆
firewall-cmd --zone=public --add-port=9999/tcp --permanent
firewall-cmd --reload
現在我們便可以通過http的方式訪問我們剛才上傳的圖片了(我們剛才上傳圖片返回的地址是group1/M00/00/00/wKgAzFogEkyADJBgAAAonXozs7o921.jpg),如下圖所示。


