分布式文件系統(tǒng) FastDFS 5.0.5 & Linux CentOS 6 安裝配置

簡(jiǎn)介

首先簡(jiǎn)單了解一下基礎(chǔ)概念阁危,F(xiàn)astDFS是一個(gè)開(kāi)源的輕量級(jí)分布式文件系統(tǒng)群井,由跟蹤服務(wù)器(tracker server)状飞、存儲(chǔ)服務(wù)器(storage server)和客戶端(client)三個(gè)部分組成,主要解決了海量數(shù)據(jù)存儲(chǔ)問(wèn)題,特別適合以中小文件(建議范圍:4KB < file_size <500MB)為載體的在線服務(wù)诬辈。FastDFS的系統(tǒng)結(jié)構(gòu)圖如下:

image.png

如上圖酵使,F(xiàn)astDFS的兩個(gè)核心概念分別是:

  1. Tracker(跟蹤器)
  2. Storage(存儲(chǔ)節(jié)點(diǎn))

Tracker主要做調(diào)度工作,相當(dāng)于mvc中的controller的角色焙糟,在訪問(wèn)上起負(fù)載均衡的作用口渔。跟蹤器和存儲(chǔ)節(jié)點(diǎn)都可以由一臺(tái)或多臺(tái)服務(wù)器構(gòu)成,跟蹤器和存儲(chǔ)節(jié)點(diǎn)中的服務(wù)器均可以隨時(shí)增加或下線而不會(huì)影響線上服務(wù)穿撮,其中跟蹤器中的所有服務(wù)器都是對(duì)等的缺脉,可以根據(jù)服務(wù)器的壓力情況隨時(shí)增加或減少。Tracker負(fù)責(zé)管理所有的Storage和group悦穿,每個(gè)storage在啟動(dòng)后會(huì)連接Tracker攻礼,告知自己所屬的group等信息,并保持周期性的心跳栗柒,tracker根據(jù)storage的心跳信息礁扮,建立group==>[storage server list]的映射表,Tracker需要管理的元信息很少瞬沦,會(huì)全部存儲(chǔ)在內(nèi)存中太伊;另外tracker上的元信息都是由storage匯報(bào)的信息生成的,本身不需要持久化任何數(shù)據(jù)逛钻,這樣使得tracker非常容易擴(kuò)展僚焦,直接增加tracker機(jī)器即可擴(kuò)展為tracker cluster來(lái)服務(wù),cluster里每個(gè)tracker之間是完全對(duì)等的曙痘,所有的tracker都接受stroage的心跳信息芳悲,生成元數(shù)據(jù)信息來(lái)提供讀寫(xiě)服務(wù)。

Storage采用了分卷[Volume](或分組[group])的組織方式屡江,存儲(chǔ)系統(tǒng)由一個(gè)或多個(gè)組組成芭概,組與組之間的文件是相互獨(dú)立的,所有組的文件容量累加就是整個(gè)存儲(chǔ)系統(tǒng)中的文件容量惩嘉。一個(gè)卷[Volume](組[group])可以由一臺(tái)或多臺(tái)存儲(chǔ)服務(wù)器組成罢洲,一個(gè)組中的存儲(chǔ)服務(wù)器中的文件都是相同的,組中的多臺(tái)存儲(chǔ)服務(wù)器起到了冗余備份和負(fù)載均衡的作用文黎,數(shù)據(jù)互為備份惹苗,存儲(chǔ)空間以group內(nèi)容量最小的storage為準(zhǔn),所以建議group內(nèi)的多個(gè)storage盡量配置相同耸峭,以免造成存儲(chǔ)空間的浪費(fèi)桩蓉。更多原理性的內(nèi)容可以參考這篇blog,介紹的很詳細(xì):分布式文件系統(tǒng)FastDFS設(shè)計(jì)原理
接下來(lái)就具體看一下FastDFS的整個(gè)下載安裝過(guò)程~

下載

目前作者最后一次releases的時(shí)間的14年11月22號(hào)劳闹,對(duì)應(yīng)的最新版本是5.0.5院究,直接在余大的GitHub上下載就可以了:
https://github.com/happyfish100/fastdfs/releases

image.png

如上圖洽瞬,由于FastDFS是純C語(yǔ)言實(shí)現(xiàn),只支持Linux业汰、FreeBSD等UNIX系統(tǒng)伙窃,所以我們直接下載tar.gz的壓縮包,同時(shí)FastDFS 5.0.5同以前版本相比將公共的一些函數(shù)等單獨(dú)封裝成了libfastcommon包样漆,所以在安裝FastDFS之前我們還必須安裝libfastcommon为障,在余大的GitHub首頁(yè)可以看到:

image.png

下載完成后將下面這兩個(gè)文件上傳至CentOS服務(wù)器,然后就可以開(kāi)始解壓安裝了:

image.png
一鍵安裝腳本

https://download.csdn.net/download/qiuxiao630320/10302878

安裝

libfastcommon
首先第一步是安裝libfastcommon放祟,我這里將libfastcommon上傳到的/usr/local目錄下鳍怨,直接解壓:

unzip libfastcommon-master.zip

解壓成功后進(jìn)入目錄看一下壓縮包的文件:


image.png

如果沒(méi)有裝解壓工具unzip可以通過(guò)以下yum命令進(jìn)行安裝后再解壓:

yum -y install unzip zip

解壓完成后就可以進(jìn)行編譯安裝了,分別執(zhí)行./make.sh和./make.sh install跪妥,由于是新安裝的系統(tǒng)有可能會(huì)提示找不到gcc命令:


image.png

如上圖鞋喇,所以我們先要安裝gcc編譯器:

yum -y install gcc-c++

看到如下信息說(shuō)明gcc已經(jīng)安裝成功:


image.png

此時(shí)再次執(zhí)行./make.sh命令進(jìn)行編譯,沒(méi)有error信息的話就說(shuō)明編譯成功了骗奖,最后再執(zhí)行./make.sh install進(jìn)行安裝确徙,看到類(lèi)似如下提示信息就說(shuō)明libfastcommon已安裝成功(畫(huà)風(fēng)突變醒串,黑底白字看的眼睛累T_T执桌,所以換成白底黑字了):


image.png

至此libfastcommon就已經(jīng)安裝成功了,但注意一下上圖中紅色框標(biāo)注的內(nèi)容芜赌,libfastcommon.so 默認(rèn)安裝到了/usr/lib64/libfastcommon.so仰挣,但是FastDFS主程序設(shè)置的lib目錄是/usr/local/lib,所以此處需要重新設(shè)置軟鏈接(類(lèi)似于Windows的快捷方式):
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

設(shè)置完畢后就可以開(kāi)始安裝fastdfs了缠沈。

FastDFS

第一步依然是解壓:

tar -zxvf fastdfs-5.05.tar.gz 

解壓完成后進(jìn)入目錄fastdfs-5.05膘壶,依次執(zhí)行./make.sh和./make.sh install:

./make.sh
./make.sh install

沒(méi)有報(bào)錯(cuò)就說(shuō)明安裝成功了,在log中我們可以發(fā)現(xiàn)安裝路徑:

image.png

沒(méi)錯(cuò)洲愤,正是安裝到了/etc/fdfs中颓芭,我們看一下該目錄下的文件:


image.png

如上圖,安裝成功后就會(huì)生成如上的3個(gè).sample文件(示例配置文件)柬赐,我們?cè)俜謩e拷貝出3個(gè)后面用的正式的配置文件:

cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf

之后再查看一下/etc/fdfs的文件目錄:

image.png

至此FastDFS已經(jīng)安裝完畢亡问,接下來(lái)的工作就是依次配置Tracker和Storage了。

Tracker

在配置Tracker之前肛宋,首先需要?jiǎng)?chuàng)建Tracker服務(wù)器的文件路徑州藕,即用于存儲(chǔ)Tracker的數(shù)據(jù)文件和日志文件等,我這里選擇在/opt目錄下創(chuàng)建一個(gè)fastdfs_tracker目錄用于存放Tracker服務(wù)器的相關(guān)文件:

mkdir /opt/fastdfs_tracker

接下來(lái)就要重新編輯上一步準(zhǔn)備好的/etc/fdfs目錄下的tracker.conf配置文件酝陈,打開(kāi)文件后依次做以下修改:

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=6666 #設(shè)置http端口號(hào),默認(rèn)為8080
配置完成后就可以啟動(dòng)Tracker服務(wù)器了沉帮,但首先依然要為啟動(dòng)腳本創(chuàng)建軟引用锈死,因?yàn)閒dfs_trackerd等命令在/usr/local/bin中并沒(méi)有贫堰,而是在/usr/bin路徑下:

ln -s /usr/bin/fdfs_trackerd /usr/local/bin
ln -s /usr/bin/stop.sh /usr/local/bin
ln -s /usr/bin/restart.sh /usr/local/bin

最后通過(guò)命令啟動(dòng)Tracker服務(wù)器:

service fdfs_trackerd start

命令執(zhí)行后可以看到以下提示:


image.png

如果啟動(dòng)命令執(zhí)行成功,那么同時(shí)在剛才創(chuàng)建的tracker文件目錄/opt/fastdfs_tracker中就可以看到啟動(dòng)后新生成的data和logs目錄待牵,tracker服務(wù)的端口也應(yīng)當(dāng)被正常監(jiān)聽(tīng)严嗜,最后再通過(guò)netstat命令查看一下端口監(jiān)聽(tīng)情況:

netstat -unltp|grep fdfs

可以看到tracker服務(wù)運(yùn)行的22122端口正常被監(jiān)聽(tīng):


image.png

確認(rèn)tracker正常啟動(dòng)后可以將tracker設(shè)置為開(kāi)機(jī)啟動(dòng),打開(kāi)/etc/rc.d/rc.local并在其中加入以下配置:

service fdfs_trackerd start

如果重啟后發(fā)現(xiàn)未能自動(dòng)啟動(dòng)則通過(guò)命令ll /etc/rc.d/rc.local檢查一下rc.local是否具備可執(zhí)行權(quán)限洲敢,若是無(wú)可執(zhí)行權(quán)限則通過(guò)chmod +x /etc/rc.d/rc.local進(jìn)行授權(quán)漫玄,如下圖:


image.png

Tracker至此就配置好了,接下來(lái)就可以配置FastDFS的另一核心——Storage压彭。

Storage

同理睦优,步驟基本與配置Tracker一致,首先是創(chuàng)建Storage服務(wù)器的文件目錄壮不,需要注意的是同Tracker相比我多建了一個(gè)目錄汗盘,因?yàn)镾torage還需要一個(gè)文件存儲(chǔ)路徑,用于存放接收的文件:

mkdir /opt/fastdfs_storage
mkdir /opt/fastdfs_storage_data

接下來(lái)修改/etc/fdfs目錄下的storage.conf配置文件询一,打開(kāi)文件后依次做以下修改:

1.disabled=false #啟用配置文件(默認(rèn)啟用)
2.group_name=group1 #組名隐孽,根據(jù)實(shí)際情況修改
3.port=23000 #設(shè)置storage的端口號(hào),默認(rèn)是23000健蕊,同一個(gè)組的storage端口號(hào)必須一致
4.base_path=/opt/fastdfs_storage #設(shè)置storage數(shù)據(jù)文件和日志目錄
5.store_path_count=1 #存儲(chǔ)路徑個(gè)數(shù)菱阵,需要和store_path個(gè)數(shù)匹配
6.store_path0=/opt/fastdfs_storage_data #實(shí)際文件存儲(chǔ)路徑
7.tracker_server=192.168.111.11:22122 #tracker 服務(wù)器的 IP地址和端口號(hào),如果是單機(jī)搭建缩功,IP不要寫(xiě)127.0.0.1晴及,否則啟動(dòng)不成功(此處的ip是我的CentOS虛擬機(jī)ip)
8.http.server_port=8888 #設(shè)置 http 端口號(hào)
配置完成后同樣要為Storage服務(wù)器的啟動(dòng)腳本設(shè)置軟引用:

ln -s /usr/bin/fdfs_storaged /usr/local/bin

接下來(lái)就可以啟動(dòng)Storage服務(wù)了:

service fdfs_storaged start

命令執(zhí)行后可以看到以下提示:


image.png

同理,如果啟動(dòng)成功嫡锌,/opt/fastdfs_storage中就可以看到啟動(dòng)后新生成的data和logs目錄虑稼,端口23000也應(yīng)被正常監(jiān)聽(tīng),還有一點(diǎn)就是文件存儲(chǔ)路徑下會(huì)生成多級(jí)存儲(chǔ)目錄势木,那么接下來(lái)看看是否啟動(dòng)成功了:

image.png

如上圖蛛倦,貌似沒(méi)成功啊,因?yàn)閱?dòng)storage后文件都沒(méi)生成啦桌,為了確認(rèn)我們看一下storage的端口情況:


image.png

果然是沒(méi)啟動(dòng)成功溯壶!端口目前還是只監(jiān)聽(tīng)了一個(gè),storage的23000端口并未被監(jiān)聽(tīng)震蒋,那么我們只能去日志文件中找原因了茸塞,進(jìn)入/opt/fastdfs_storage/logs目錄下并打開(kāi)storaged.log文件:


image.png

如上圖,可以看到確實(shí)有一個(gè)error查剖,關(guān)鍵信息是:

ERROR - file: storage_func.c, line: 896, mkdir “/etc/fastdfs_storage_data/data” fail, errno: 2, error info: No such file or directory

沒(méi)有文件或目錄钾虐!再回頭看一下/etc/fdfs目錄下的storage.conf的配置:

image.png

果不其然配錯(cuò)了,我們指定成了/etc/fastdfs_storage_data目錄笋庄,而實(shí)際上我們創(chuàng)建的位置是/opt/fastdfs_storage_data效扫,粗心大意倔监,老眼昏花比搭!修改路徑后再次重啟storage服務(wù)粒梦,然后再看看data目錄和實(shí)際存儲(chǔ)文件的/opt/fastdfs_storage_data:

image.png

如上圖,可以看到/opt/fastdfs_storage/data目錄下生成好的pid文件和dat文件聊倔,那么再看一下實(shí)際文件存儲(chǔ)路徑下是否有創(chuàng)建好的多級(jí)目錄呢:

image.png

如上圖济丘,沒(méi)有任何問(wèn)題谱秽,data下有256個(gè)1級(jí)目錄,每級(jí)目錄下又有256個(gè)2級(jí)子目錄摹迷,總共65536個(gè)文件疟赊,新寫(xiě)的文件會(huì)以hash的方式被路由到其中某個(gè)子目錄下,然后將文件數(shù)據(jù)直接作為一個(gè)本地文件存儲(chǔ)到該目錄中峡碉。那么最后我們?cè)倏匆幌聅torage服務(wù)的端口監(jiān)聽(tīng)情況:


image.png

如上圖近哟,可以看到此時(shí)已經(jīng)正常監(jiān)聽(tīng)tracker的22122端口和storage的23000端口,至此storage服務(wù)器就已經(jīng)配置完成鲫寄,確定了storage服務(wù)器啟動(dòng)成功后吉执,還有一項(xiàng)工作就是看看storage服務(wù)器是否已經(jīng)登記到 tracker服務(wù)器(也可以理解為tracker與storage是否整合成功),運(yùn)行以下命令:

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

[root@localhost /]# /usr/bin/fdfs_monitor /etc/fdfs/storage.conf
[2016-09-23 12:59:26] DEBUG - base_path=/opt/fastdfs_storage, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0

server_count=1, server_index=0

tracker server is 192.168.111.11:22122

group count: 1

Group 1:
group name = group1
disk total space = 6818 MB
disk free space = 2169 MB
trunk free space = 0 MB
storage server count = 1
active server count = 1
storage server port = 23000
storage HTTP port = 8888
store path count = 1
subdir count per path = 256
current write server index = 0
current trunk file id = 0

Storage 1:
id = 192.168.111.11
ip_addr = 192.168.111.11 ACTIVE
http domain =
version = 5.05
join time = 2016-09-23 11:15:54
up time = 2016-09-23 12:33:26
total storage = 6818 MB
free storage = 2169 MB
upload priority = 10
store_path_count = 1
subdir_count_per_path = 256
storage_port = 23000
storage_http_port = 8888
current_write_path = 0
source storage id =
if_trunk_server = 0
connection.alloc_count = 256
connection.current_count = 0
connection.max_count = 0
total_upload_count = 0
success_upload_count = 0
total_append_count = 0
success_append_count = 0
total_modify_count = 0
success_modify_count = 0
total_truncate_count = 0
success_truncate_count = 0
total_set_meta_count = 0
success_set_meta_count = 0
total_delete_count = 0
success_delete_count = 0
total_download_count = 0
success_download_count = 0
total_get_meta_count = 0
success_get_meta_count = 0
total_create_link_count = 0
success_create_link_count = 0
total_delete_link_count = 0
success_delete_link_count = 0
total_upload_bytes = 0
success_upload_bytes = 0
total_append_bytes = 0
success_append_bytes = 0
total_modify_bytes = 0
success_modify_bytes = 0
stotal_download_bytes = 0
success_download_bytes = 0
total_sync_in_bytes = 0
success_sync_in_bytes = 0
total_sync_out_bytes = 0
success_sync_out_bytes = 0
total_file_open_count = 0
success_file_open_count = 0
total_file_read_count = 0
success_file_read_count = 0
total_file_write_count = 0
success_file_write_count = 0
last_heart_beat_time = 2016-09-23 12:58:59
last_source_update = 1970-01-01 08:00:00
last_sync_update = 1970-01-01 08:00:00
last_synced_timestamp = 1970-01-01 08:00:00

如上所示地来,看到192.168.111.11 ACTIVE 字樣即可說(shuō)明storage服務(wù)器已經(jīng)成功登記到了tracker服務(wù)器戳玫,同理別忘了添加開(kāi)機(jī)啟動(dòng),打開(kāi)/etc/rc.d/rc.local并將如下配置追加到文件中:

service fdfs_storaged start

至此我們就已經(jīng)完成了fastdfs的全部配置靠抑,此時(shí)也就可以用客戶端工具進(jìn)行文件上傳下載的測(cè)試了量九。

初步測(cè)試

測(cè)試時(shí)需要設(shè)置客戶端的配置文件适掰,編輯/etc/fdfs目錄下的client.conf 文件颂碧,打開(kāi)文件后依次做以下修改:

base_path=/opt/fastdfs_tracker #tracker服務(wù)器文件路徑
tracker_server=192.168.111.11:22122 #tracker服務(wù)器IP地址和端口號(hào)
http.tracker_server_port=6666 # tracker 服務(wù)器的 http 端口號(hào),必須和tracker的設(shè)置對(duì)應(yīng)起來(lái)
配置完成后就可以模擬文件上傳了类浪,先給/opt目錄下放一張圖片(暴雪爸爸的LOGO):

image.png

然后通過(guò)執(zhí)行客戶端上傳命令嘗試上傳:

/usr/bin/fdfs_upload_file  /etc/fdfs/client.conf  /opt/BLIZZARD.jpg

運(yùn)行后可以發(fā)現(xiàn)給我們返回了一個(gè)路徑:


image.png

這就表示我們的文件已經(jīng)上傳成功了载城,當(dāng)文件存儲(chǔ)到某個(gè)子目錄后,即認(rèn)為該文件存儲(chǔ)成功费就,接下來(lái)會(huì)為該文件生成一個(gè)文件名诉瓦,文件名由group、存儲(chǔ)目錄力细、兩級(jí)子目錄睬澡、fileid、文件后綴名(由客戶端指定眠蚂,主要用于區(qū)分文件類(lèi)型)拼接而成煞聪,如下圖:


image.png

同時(shí)在之前配置的storage服務(wù)器的實(shí)際文件存儲(chǔ)路徑中也可以根據(jù)返回的路徑找到實(shí)際文件:
image.png

接下來(lái)嘗試用瀏覽器發(fā)送HTTP請(qǐng)求訪問(wèn)一下文件:


image.png

此時(shí)發(fā)現(xiàn)并不能訪問(wèn),因?yàn)镕astDFS目前已不支持http協(xié)議逝慧,我們?cè)贔astDFS 4.0.5的版本更新日志中可以看到這樣一條信息:

image.png

如上圖昔脯,4.0.5版本開(kāi)始移除了自帶的HTTP支持(因?yàn)橹白詭У腍TTP服務(wù)較為簡(jiǎn)單啄糙,無(wú)法提供負(fù)載均衡等高性能服務(wù)),所以余大提供了nginx上使用FastDFS的模塊fastdfs-nginx-module云稚,下載地址如下:https://github.com/happyfish100/fastdfs-nginx-module隧饼,這樣做最大的好處就是提供了HTTP服務(wù)并且解決了group中storage服務(wù)器的同步延遲問(wèn)題,接下來(lái)就具體記錄一下fastdfs-nginx-module的安裝配置過(guò)程静陈。

fastdfs-nginx-module

在余大的GitHub上下載好fastdfs-nginx-module上傳到我們的CentOS中就可以開(kāi)始安裝了燕雁,在安裝nginx之前需要先安裝一些模塊依賴(lài)的lib庫(kù),我在以前寫(xiě)的blog有做詳細(xì)介紹(Linux CentOS 7 & Tengine(Nginx)安裝與配置)鲸拥,直接貼出安裝代碼:

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

依次裝好這些依賴(lài)之后就可以開(kāi)始安裝nginx了贵白。

storage nginx

首先是為storage服務(wù)器安裝nginx,首先將nginx和fastdfs-nginx-module的安裝包上傳至CentOS:

image.png

首先分別進(jìn)行解壓:

tar -zxvf nginx-1.8.1.tar.gz
unzip fastdfs-nginx-module-master.zip

解壓成功后就可以編譯安裝nginx了崩泡,進(jìn)入nginx目錄并輸入以下命令進(jìn)行配置:

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

配置成功后會(huì)看到如下信息:


image.png

緊接著就可以進(jìn)行編譯安裝了禁荒,依次執(zhí)行以下命令:

make
make install

解決報(bào)錯(cuò)

make的時(shí)候會(huì)報(bào)以下錯(cuò)誤,

        root/fastdfs-nginx-module/src//common.c:21:25: fatal error: fdfs_define.h: No such file or directory

include "fdfs_define.h"

                        ^

compilation terminated.

make[1]: *** [objs/addon/src/ngx_http_fastdfs_module.o] Error 1

解決辦法:

vim /root/fastdfs-nginx-module/src/config

 CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

 CORE_LIBS="$CORE_LIBS -L/usr/lib -lfastcommon -lfdfsclient"

因?yàn)槲覀兊念^文件都安裝在了 /usr/include/下而不是 /usr/local/include/,lib文件也是路徑要搞對(duì)角撞。

重新編譯呛伴,安裝即可

安裝完成后,我們?cè)谖覀冎付ǖ哪夸?usr/local/nginx中就可以看到nginx的安裝目錄了:


image.png

接下來(lái)要修改一下nginx的配置文件谒所,進(jìn)入conf目錄并打開(kāi)nginx.conf文件加入以下配置:

listen       9999;

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

然后進(jìn)入FastDFS的安裝目錄/usr/local/fastdfs-5.05目錄下的conf目錄热康,將http.conf和mime.types拷貝到/etc/fdfs目錄下:

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

接下來(lái)還需要把fastdfs-nginx-module安裝目錄中src目錄下的mod_fastdfs.conf也拷貝到/etc/fdfs目錄下:

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

看一下/etc/fdfs目錄下當(dāng)前所有的配置文件:

image.png

沒(méi)什么問(wèn)題,接下來(lái)就需要編輯剛拷貝的這個(gè)mod_fastdfs.conf文件了劣领,打開(kāi)mod_fastdfs.conf并按順序依次編譯以下內(nèi)容:

1.base_path=/opt/fastdfs_storage #保存日志目錄
2.tracker_server=192.168.111.11:22122 #tracker服務(wù)器的IP地址以及端口號(hào)
3.storage_server_port=23000 #storage服務(wù)器的端口號(hào)
4.url_have_group_name = true #文件 url 中是否有 group 名
5.store_path0=/opt/fastdfs_storage_data # 存儲(chǔ)路徑
6.group_count = 3 #設(shè)置組的個(gè)數(shù)姐军,事實(shí)上這次只使用了group1
設(shè)置了group_count = 3,接下來(lái)就需要在文件尾部追加這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

接下來(lái)還需要建立 M00 至存儲(chǔ)目錄的符號(hào)連接:

ln  -s  /opt/fastdfs_storage_data/data  /opt/fastdfs_storage_data/data/M00

最后啟動(dòng)nginx:

/usr/local/nginx/sbin/nginx

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

image.png

通過(guò)瀏覽器也可以看到nginx的主頁(yè):


image.png

storage服務(wù)器的nginx就已經(jīng)安裝完畢尖淘,接下來(lái)看一下tracker服務(wù)器的nginx安裝奕锌。

tracker nginx

同理,再裝一個(gè)nginx村生,目錄命名為nginx2惊暴,安裝路徑依舊放在/usr/local下,由于和之前一樣趁桃,此處就不再做詳細(xì)解釋?zhuān)?/p>

mkdir nginx2
cd nginx-1.8.1/
./configure --prefix=/usr/local/nginx2 --add-module=/usr/local/fastdfs-nginx-module-master/src
make
make install

接下來(lái)依然是修改nginx2的配置文件辽话,進(jìn)入conf目錄并打開(kāi)nginx.conf文件加入以下配置,storage的nginx無(wú)需修改listen端口卫病,即默認(rèn)的80端口油啤,并將upstream指向tracker的nginx地址:

upstream fdfs_group1 {
     server 127.0.0.1:9999;
}

location /group1/M00 {
     proxy_pass http://fdfs_group1;
}

接下來(lái)啟動(dòng)nginx2:

/usr/local/nginx2/sbin/nginx

此時(shí)訪問(wèn)nginx2的主頁(yè),由于沒(méi)有修改端口蟀苛,直接訪問(wèn)ip地址即可:

image.png

最后一步就是需要修改/etc/fdfs目錄下的client.conf文件益咬,打開(kāi)該文件并加入以下配置:

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

至此關(guān)于fastdfs就已經(jīng)全部配置完畢了屹逛,再一次進(jìn)行測(cè)試看看是否能正常上傳文件并通過(guò)http訪問(wèn)文件础废。

HTTP測(cè)試

再給/opt目錄下上傳一張暴雪爸爸的LOGO圖:

image.png

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


image.png

如上圖汛骂,依舊上傳成功,接下來(lái)的關(guān)鍵就是通過(guò)HTTP測(cè)試文件訪問(wèn)评腺,打開(kāi)瀏覽器輸入ip地址+文件名看看是否能正常訪問(wèn)該圖片:


image.png

一切正常~ 至此關(guān)于FastDFS在CentOS 7下的部署測(cè)試就已經(jīng)全部完成了帘瞭。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蒿讥,隨后出現(xiàn)的幾起案子蝶念,更是在濱河造成了極大的恐慌,老刑警劉巖芋绸,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件媒殉,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡摔敛,警方通過(guò)查閱死者的電腦和手機(jī)廷蓉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)马昙,“玉大人桃犬,你說(shuō)我怎么就攤上這事⌒欣悖” “怎么了攒暇?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)子房。 經(jīng)常有香客問(wèn)我形用,道長(zhǎng),這世上最難降的妖魔是什么证杭? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任田度,我火速辦了婚禮,結(jié)果婚禮上躯砰,老公的妹妹穿的比我還像新娘每币。我一直安慰自己,他們只是感情好琢歇,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著梦鉴,像睡著了一般李茫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上肥橙,一...
    開(kāi)封第一講書(shū)人閱讀 49,111評(píng)論 1 285
  • 那天魄宏,我揣著相機(jī)與錄音,去河邊找鬼存筏。 笑死宠互,一個(gè)胖子當(dāng)著我的面吹牛味榛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播予跌,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼搏色,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了券册?” 一聲冷哼從身側(cè)響起频轿,我...
    開(kāi)封第一講書(shū)人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎烁焙,沒(méi)想到半個(gè)月后航邢,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡骄蝇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年膳殷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片九火。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡秽之,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出吃既,到底是詐尸還是另有隱情考榨,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布鹦倚,位于F島的核電站河质,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏震叙。R本人自食惡果不足惜掀鹅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望媒楼。 院中可真熱鬧乐尊,春花似錦、人聲如沸划址。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)夺颤。三九已至痢缎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間世澜,已是汗流浹背独旷。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人嵌洼。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓案疲,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親麻养。 傳聞我的和親對(duì)象是個(gè)殘疾皇子褐啡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

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

  • 前言 項(xiàng)目中用到文件服務(wù)器,有朋友推薦用fastdfs回溺,所以就了解學(xué)習(xí)了一番春贸,感覺(jué)確實(shí)頗為強(qiáng)大,在此再次感謝淘寶資...
    __豆約翰__閱讀 759評(píng)論 1 6
  • FastDFS是用C語(yǔ)言編寫(xiě)的一款開(kāi)源的輕量級(jí)分布式文件系統(tǒng)遗遵。它對(duì)文件進(jìn)行管理萍恕,功能包括:文件存儲(chǔ)、文件同步车要、文件...
    歡醉閱讀 4,036評(píng)論 3 12
  • 詳細(xì)配置fastdfds分布式文件服務(wù)器的方法: 跟蹤服務(wù)器:192.168.4.121 (edu-dfs-tra...
    Tsinyong閱讀 2,588評(píng)論 2 7
  • 01 大學(xué)畢業(yè)以后允粤,我選擇回到家鄉(xiāng)。 那是南方的一座小縣城翼岁,而我的家类垫,是在距離縣城17公里的一個(gè)小村落里。 我是村...
    吳廿九閱讀 255評(píng)論 0 0
  • 這三人本來(lái)練的是一個(gè)合縱之陣琅坡。三人配合悉患,攻守之間,天衣無(wú)縫榆俺。而這個(gè)宿蛟精心研制的陣法售躁,更是能大幅度的提升三人實(shí)力。...
    悠然小筑閱讀 510評(píng)論 0 5