Fastdfs 單節(jié)點(diǎn)安裝使用教程整理

1 簡(jiǎn)介

Fastdfs的具體介紹看這里:http://www.reibang.com/p/af10e44b0fb6

2 安裝準(zhǔn)備

名稱 版本 地址 作用
系統(tǒng) CentOS-7-x86_64-DVD-1708.iso 點(diǎn)擊這里 系統(tǒng)
Fastdfs Fastdfs_v5.11 點(diǎn)擊這里 分布式系統(tǒng)
libfastcommon libfastcommon_1.0.36 點(diǎn)擊這里 公共 C 函數(shù)庫
fastdfs-nginx-module fastdfs-nginx-module-master 點(diǎn)擊這里 storage節(jié)點(diǎn)http服務(wù)nginx模塊
nginx nginx-1.12.2 點(diǎn)擊這里 反響代理服務(wù)器

此處有安裝包集合漓踢,一鍵下載:點(diǎn)擊這里

安裝包集合

準(zhǔn)備好虛擬機(jī)和安裝運(yùn)行環(huán)境:根據(jù)實(shí)際情況自行檢查安裝

$yum -y install unzip zip   #安裝解壓工具unzip
$systemctl stop firewalld.service    #停止firewall
$systemctl disable firewalld.service    #禁止firewall開機(jī)啟動(dòng)
備注:簡(jiǎn)單之余就關(guān)閉防火墻

安裝perl環(huán)境羊精,后續(xù)編譯fastdfs會(huì)用到

$yum -y install perl*     #yum安裝perl相關(guān)支持) 
$yum -y install cpan      #perl需要的程序庫,需要cpan的支持

3 安裝Fastdfs

安裝流程

1 安裝依賴包gcc
2 安裝libfatscommon
3 安裝Fastdfs
4 配置Tracker
5 配置Storage

服務(wù)器規(guī)劃

跟蹤服務(wù)器(Tracker Server):192.168.64.31
存儲(chǔ)服務(wù)器(Storage Server):192.168.64.31
數(shù)據(jù)存儲(chǔ)目錄:/opt
解壓目錄:/usr/local/src
Nginx解壓目錄:/usr/local/src

1 安裝依賴包

安裝gcc編譯器,fastdfs是用c語言開發(fā)而來的。

$yum -y install gcc-c++  

至此,gcc編譯器安裝OK寞埠!

2 安裝libfatscommon

解壓--->編譯--->安裝
解壓完畢進(jìn)入解壓目錄libfastcommon-1.0.36

$unzip libfastcommon-1.0.36.zip
libfastcommon目錄

執(zhí)行編譯和安裝

$./make
$./make install
image.png

至此libfastcommon就已經(jīng)安裝ok了,上圖中紅色框標(biāo)注的內(nèi)容---ibfastcommon.so 默認(rèn)安裝到了/usr/lib64/libfastcommon.so焊夸,但是FastDFS主程序設(shè)置的lib目錄是/usr/local/lib仁连,所以此處需要設(shè)置軟鏈接,將lib庫文件添加到usr/local/bin(用戶放置自己的可執(zhí)行程序)中

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

備注 .so -- shared object阱穗,用戶層的動(dòng)態(tài)庫 饭冬。
至此,libfatscommon安裝OK揪阶!

3 安裝Fastdfs

解壓--->編譯--->安裝

#解壓
$unzip fastdfs-5.11.zip
#進(jìn)入解壓目錄
#編譯
$./make
#安裝
$./make install
編譯成功示圖

Fastdfs安裝在/etc/fdfs目錄下昌抠,此目錄如下圖所示:


/etc/fdfs目錄

安裝成功后就會(huì)生成如上的4個(gè).sample文件(示例配置文件),我們?cè)俜謩e拷貝這4個(gè)配置文件以備后用:

$cp client.conf.sample client.conf
$cp storage.conf.sample storage.conf
$cp storage_ids.conf.sample storage_ids.conf
$cp tracker.conf.sample tracker.conf

至此鲁僚,F(xiàn)astdfs安裝OK炊苫!

4 配置Tracker

首先創(chuàng)建Tracker服務(wù)器的文件路徑裁厅,即用于存儲(chǔ)Tracker的數(shù)據(jù)文件和日志文件等。此路徑在后續(xù)的Tracker文件配置中都用到

$mkdir /opt/fastdfs_tracker

編輯上一步copy的/etc/fdfs目錄下的tracker.conf配置文件侨艾,打開文件后依次做如下修改:

disabled=false         #啟用配置文件(默認(rèn)啟用)
port=22122             #設(shè)置tracker的端口號(hào)执虹,通常采用22122這個(gè)默認(rèn)端口
base_path=/opt/fastdfs_tracker #設(shè)置tracker的數(shù)據(jù)文件和日志目錄
http.server_port=88    #設(shè)置http端口號(hào),默認(rèn)為8080唠梨,記住此端口號(hào)袋励,對(duì)應(yīng)于后續(xù)nginx的listen端口

配置完畢!
啟動(dòng)tracker服務(wù)器

#啟動(dòng)
$service fdfs_trackerd start
或者
$/etc/init.d/fdfs_trackerd start
啟動(dòng)tracker服務(wù)器

關(guān)閉tracker服務(wù)器

#關(guān)閉
$service fdfs_trackerd stop
或者
$/etc/init.d/fdfs_trackerd stop
關(guān)閉tracker服務(wù)器

如果啟動(dòng)命令執(zhí)行成功,那么在剛才創(chuàng)建的tracker文件目錄/opt/fastdfs_tracker中就可以看到啟動(dòng)后新生成的data和logs目錄姻成,tracker服務(wù)的端口也被正常監(jiān)聽

data和logs目錄以及監(jiān)聽

正常啟動(dòng)后,可以將tracker設(shè)置為開機(jī)啟動(dòng)愿棋,打開/etc/rc.d/目錄科展,在rc.local中添加service fdfs_trackerd start,并且對(duì)rc.local進(jìn)行授權(quán)糠雨。

$chmod +x /etc/rc.d/rc.local    #對(duì)rc.local進(jìn)行授權(quán)
對(duì)rc.local進(jìn)行授權(quán)

至此才睹,Tracker配置OK!

5 配置Storage

同理甘邀,和Tracker配置流程一致琅攘。創(chuàng)建Storage服務(wù)器的文件目錄fastdfs_storage,同時(shí)比Tracker多建了一個(gè)文件存儲(chǔ)路徑目錄fastdfs_storage_data松邪,用于存放接收的文件坞琴。

$mkdir /opt/fastdfs_storage
$mkdir /opt/fastdfs_storage_data

修改目錄/etc/fdfs/storage.conf配置文件,打開文件后依次做以下修改:

disabled=false      #啟用配置文件(默認(rèn)啟用)
group_name=group1   #組名逗抑,根據(jù)實(shí)際情況修改
port=23000          #設(shè)置storage的端口號(hào)剧辐,默認(rèn)是23000,同一個(gè)組的storage端口號(hào)必須一致
base_path=/opt/fastdfs_storage #設(shè)置storage數(shù)據(jù)文件和日志目錄
store_path_count=1  #存儲(chǔ)路徑個(gè)數(shù)邮府,需要和store_path個(gè)數(shù)匹配
store_path0=/opt/fastdfs_storage_data   #實(shí)際文件存儲(chǔ)路徑
tracker_server=192.168.64.32:22122 #tracker 服務(wù)器的 IP地址和端口號(hào)荧关,如果是單機(jī)搭建,IP不要寫127.0.0.1褂傀,否則啟動(dòng)不成功(此處的ip是我的CentOS虛擬機(jī)ip)
http.server_port=7777  #設(shè)置 http 端口號(hào)

配置OK忍啤!
啟動(dòng)Storage服務(wù)

$service fdfs_storaged start
或者
$/etc/init.d/fdfs_storaged start

關(guān)閉Storage服務(wù)

$service fdfs_storaged stop
或者
$/etc/init.d/fdfs_storaged stop

備注:啟動(dòng)storage時(shí),要先啟動(dòng)tracker仙辟,不然無法啟動(dòng)監(jiān)視

啟動(dòng)成功后data目錄

開啟Tracker和Storage服務(wù)


開啟Tracker和Storage服務(wù)

如上圖同波,此時(shí)已經(jīng)正常監(jiān)聽tracker的22122端口和storage的23000端口。

確定了storage服務(wù)器啟動(dòng)成功后叠国,還有一項(xiàng)工作就是看看storage服務(wù)器是否已經(jīng)登記到 tracker服務(wù)器(也可以理解為tracker與storage是否整合成功)参萄,運(yùn)行以下命令:

$/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
整合成功

看到**192.168.111.11 ACTIVE **字樣,即可說明storage服務(wù)器已經(jīng)成功登記到了tracker服務(wù)器煎饼。

添加storage服務(wù)開機(jī)啟動(dòng)讹挎,打開/etc/rc.d/rc.local文件追加service fdfs_storaged start校赤。

至此,storage服務(wù)器配置ok筒溃!

4 初步測(cè)試

測(cè)試時(shí)需要設(shè)置客戶端的配置文件马篮,編輯/etc/fdfs/client.conf文件,打開后依次做如下修改:

base_path=/opt/fastdfs_tracker       #tracker服務(wù)器文件路徑
tracker_server=192.168.64.32:22122  #tracker服務(wù)器IP地址和端口號(hào)
http.tracker_server_port=88  # tracker 服務(wù)器的 http 端口號(hào)怜奖,必須和tracker的設(shè)置對(duì)應(yīng)起來

配置完畢就可以上傳文件了浑测。
執(zhí)行客戶端上傳命令:

$/usr/bin/fdfs_upload_file  /etc/fdfs/client.conf  note.txt
上傳文件

返回的路徑就只文件的存儲(chǔ)目錄,在/opt/fastdfs_storage_data目錄下歪玲,


存儲(chǔ)目錄

想在web段查看上次存儲(chǔ)的文件迁央,需要安裝nginx和fastdfs-nginx-module。

至此滥崩,簡(jiǎn)單測(cè)試OK岖圈!

5 安裝fastdfs-nginx-module

fastdfs-nginx-module 作用說明

FastDFS 通過 Tracker 服務(wù)器,將文件放在 Storage 服務(wù)器存儲(chǔ)钙皮,但是同組存儲(chǔ)服務(wù)器之間需要進(jìn)入文件復(fù)制蜂科,有同步延遲的問題。假Tracker 服務(wù)器將文件上傳到了 192.168.64.32短条,上傳成功后文件ID已經(jīng)返回給客戶端导匣。此時(shí) FastDFS 存儲(chǔ)集群機(jī)制會(huì)將這個(gè)文件同步到同組存儲(chǔ) 192.168.64.33,在文件還沒有復(fù)制完成的情況下茸时,客戶端如果用這個(gè)文件 ID 在 192.168.64.33 上取文件贡定,就會(huì)出現(xiàn)文件無法訪問的錯(cuò)誤。而 fastdfs-nginx-module 可以重定向文件連接到源服務(wù)器取文件可都,避免客戶端由于復(fù)制延遲導(dǎo)致的文件無法訪問錯(cuò)誤

5.1 安裝準(zhǔn)備

在安裝nginx之前需要先安裝一些模塊依賴的lib庫:pcre-devel厕氨、zlib-devel、openssl-devel

$yum -y install pcre pcre-devel  
$yum -y install zlib zlib-devel  
$yum -y install openssl openssl-devel

準(zhǔn)備完畢汹粤,開始分別為tracker和storage安裝配置nginx命斧。
安裝流程

1 解壓fastdfs-nginx-module-master和nginx-1.12.2
2 ./configure配置nginx參數(shù)
3 編譯安裝
4 修改nginx的配置文件nginx.conf
5 copy http.conf和mime.types文件
6 copy mod_fastdfs.conf文件并修改參數(shù)
7 啟動(dòng)nginx

5.2 安裝storage nginx

1 ) 解壓

$unzip fastdfs-nginx-module-master.zip
$tar -zxvf nginx-1.12.2.tar.gz

2 ) ./configure配置
解壓完畢后進(jìn)入nginx目錄,在執(zhí)行./configure配置nginx參數(shù)的時(shí)候嘱兼,需要將fastdfs-nginx-moudle源碼作為模塊編譯進(jìn)去国葬,執(zhí)行以下命令:

$./configure --prefix=/usr/local/src/nginx --add-module=/usr/local/src/fastdfs-nginx-module-master/src

配置成功!


./configure配置

3 )編譯安裝

$make
$make install

安裝完成后再指定路徑/usr/local/src/nginx可查看到安裝的目錄


nginx安裝目錄

4 )修改nginx.conf
修改nginx的配置文件芹壕,打開/conf/nginx.conf文件汇四,修改http中server的listen,添加location踢涌, 具體如下:

listen   7777; #注意通孽,此處的listen對(duì)應(yīng)于/etc/fdfs/storage.conf中的http.server_port=7777

#location放在server里面
location ~/group1/M00 {
      root /opt/fastdfs_storage_data/data;
      ngx_fastdfs_module;
}

5 ) copy http.conf和mime.types

$cp -r /usr/local/src/fastdfs-5.05/conf/http.conf /etc/fdfs/
$cp -r /usr/local/src/fastdfs-5.05/conf/mime.types /etc/fdfs/

6 ) 配置mod_fastdfs.conf文件
將fastdfs-nginx-module-master/src/mod_fastdfs.conf拷貝到/etc/fdfs目錄下

$cp -r /usr/local/src/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/

編輯剛拷貝的mod_fastdfs.conf文件,打開并按順序依次編譯以下內(nèi)容:

base_path=/opt/fastdfs_storage        #保存日志目錄
tracker_server=192.168.64.32:22122   #tracker服務(wù)器的IP地址以及端口號(hào)
storage_server_port=23000             #storage服務(wù)器的端口號(hào)
url_have_group_name = true            #文件url中是否有 group 名
store_path0=/opt/fastdfs_storage_data # 存儲(chǔ)路徑
group_count = 3                       #設(shè)置組的個(gè)數(shù)睁壁,事實(shí)上這次只使用了group1

設(shè)置group_count = 3背苦,需要在文件尾部追加這3個(gè)group setting

[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs_storage_data

[group2]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs_storage_data

[group3]
group_name=group3
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs_storage_data

7 ) 啟動(dòng)nginx

$/usr/local/src/nginx/sbin/nginx            #啟動(dòng)
$/usr/local/src/nginx/sbin/nginx -s reload  #重新啟動(dòng)
$/usr/local/src/nginx/sbin/nginx -s stop    #停止

顯示如下信息說明nginx已啟動(dòng)成功:


nginx啟動(dòng)成功

通過瀏覽器看到nginx的主頁:端口為7777


image.png

5.3 安裝tracker nginx

步驟和安裝storage nginx一樣

$mkdir tracker_nginx
$cd nginx-1.12.2/
$./configure --prefix=/usr/local/src/tracker_nginx --add-module=/usr/local/src/fastdfs-nginx-module-master/src
$make
$make install

#安裝完畢互捌,修改tracker_nginx/conf/nginx.conf的配置文件
#listen端口和tracker.conf的http.server_port=88一致
#添加upstream和location :
#upstream 命令要放在http里面 server外面,location 在server里面,7777對(duì)應(yīng)于storage的server_port

listen    88;
upstream fdfs_group1 {
     server 127.0.0.1:7777;   
}
#location放在server里面
location /group1/M00 {
     proxy_pass http://fdfs_group1;
}

#啟動(dòng)tracker_nginx
$/usr/local/src/tracker_nginx/sbin/nginx
tracker_nginx的主頁

6 HTTP測(cè)試

查看/etc/fdfs/client.conf文件配置是否正確:

base_path=/data/fastdfs_storage     #日志存放路徑
tracker_server=192.168.64.32:22122  #tracker 服務(wù)器 IP 地址和端口號(hào)
http.tracker_server_port=88       # tracker 服務(wù)器的 http 端口號(hào)行剂,必須和tracker的設(shè)置對(duì)應(yīng)起來

通過客戶端命令測(cè)試上傳:

$/usr/bin/fdfs_upload_file /etc/fdfs/client.conf data/20170131.jpg
上傳圖片

如上圖秕噪,上傳成功,通過HTTP測(cè)試文件訪問厚宰,打開瀏覽器輸入ip地址+文件名看看是否能正常訪問該圖片:


HTTP測(cè)試文件訪問

至此腌巾,HTTP測(cè)試OK!

請(qǐng)求Tracker服務(wù)器下載圖片铲觉,其實(shí)請(qǐng)求的是Tracker服務(wù)器上的nginx服務(wù)澈蝙,因?yàn)閚ginx服務(wù)的端口是88端口,而tracker服務(wù)端口是22122撵幽。

tracker上的nginx起到http訪問的反向代理作用灯荧,反向代理到group對(duì)應(yīng)的所有storage上的nginx服務(wù)〔⑵耄客戶端請(qǐng)求tracker上的nginx服務(wù)漏麦,根據(jù)配置的location /group1找到對(duì)應(yīng)的group1下所有的storage服務(wù)器上的nginx服務(wù)的ip和端口(提供下載接口)客税,然后由tracker決定使用哪臺(tái)storage况褪,最后將該storage的ngnix服務(wù)的ip和port返回給客戶端「埽客戶端拿到storage的nginx服務(wù)的ip和端口测垛,去請(qǐng)求這個(gè)nginx服務(wù),根據(jù)請(qǐng)求中的group1/M00與storage的nginx配置的

location ~/group1/M00 {
root /opt/fastdfs_storage_data/data;
ngx_fastdfs_module;
}

進(jìn)行匹配秧均,然后獲取到文件的存儲(chǔ)目錄食侮,然后在根據(jù)兩級(jí)目錄和文件名來獲取到文件。

7 總結(jié)

要提前安裝好依賴包和運(yùn)行環(huán)境目胡,關(guān)閉防火墻锯七,做筆記整理資料。

8 參考資料

1.分布式文件系統(tǒng) FastDFS 5.0.5 & Linux CentOS 7 安裝配置
2.FastDFS分布式文件系統(tǒng)安裝與使用(單節(jié)點(diǎn))
3.CENTOS 7 安裝perl環(huán)境
4.Centos7網(wǎng)絡(luò)配置( 網(wǎng)關(guān)誉己、dns眉尸、ip地址配置)
5.FastDFS學(xué)習(xí)筆記
6.Centos7 Linux安裝命令


                                   20171107
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市巨双,隨后出現(xiàn)的幾起案子噪猾,更是在濱河造成了極大的恐慌,老刑警劉巖筑累,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件袱蜡,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡慢宗,警方通過查閱死者的電腦和手機(jī)坪蚁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門奔穿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人迅细,你說我怎么就攤上這事巫橄。” “怎么了茵典?”我有些...
    開封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵湘换,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我统阿,道長(zhǎng)彩倚,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任扶平,我火速辦了婚禮帆离,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘结澄。我一直安慰自己哥谷,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開白布麻献。 她就那樣靜靜地躺著们妥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪勉吻。 梳的紋絲不亂的頭發(fā)上监婶,一...
    開封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音齿桃,去河邊找鬼惑惶。 笑死,一個(gè)胖子當(dāng)著我的面吹牛短纵,可吹牛的內(nèi)容都是我干的带污。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼香到,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼鱼冀!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起养渴,我...
    開封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤雷绢,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后理卑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體翘紊,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年藐唠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了帆疟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鹉究。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖踪宠,靈堂內(nèi)的尸體忽然破棺而出自赔,到底是詐尸還是另有隱情,我是刑警寧澤柳琢,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布绍妨,位于F島的核電站,受9級(jí)特大地震影響柬脸,放射性物質(zhì)發(fā)生泄漏他去。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一倒堕、第九天 我趴在偏房一處隱蔽的房頂上張望灾测。 院中可真熱鬧,春花似錦垦巴、人聲如沸媳搪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽秦爆。三九已至,卻和暖如春涯雅,著一層夾襖步出監(jiān)牢的瞬間鲜结,已是汗流浹背展运。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工活逆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人拗胜。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓蔗候,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親埂软。 傳聞我的和親對(duì)象是個(gè)殘疾皇子锈遥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容