前言
項(xiàng)目中用到文件服務(wù)器柏锄,有朋友推薦用fastdfs,所以就了解學(xué)習(xí)了一番复亏,感覺確實(shí)頗為強(qiáng)大趾娃,在此再次感謝淘寶資深架構(gòu)師余慶大神開源了如此優(yōu)秀的輕量級分布式文件系統(tǒng),本篇blog就記錄一下fastdfs的最新版本5.0.5在centos7中的安裝與配置缔御。
簡介
首先簡單了解一下基礎(chǔ)概念抬闷,F(xiàn)astDFS是一個(gè)開源的輕量級分布式文件系統(tǒng),由跟蹤服務(wù)器(tracker server)耕突、存儲服務(wù)器(storage server)和客戶端(client)三個(gè)部分組成笤成,主要解決了海量數(shù)據(jù)存儲問題,特別適合以中小文件(建議范圍:4KB < file_size <500MB)為載體的在線服務(wù)眷茁。FastDFS的系統(tǒng)結(jié)構(gòu)圖如下:
如上圖炕泳,F(xiàn)astDFS的兩個(gè)核心概念分別是:
- Tracker(跟蹤器)
- Storage(存儲節(jié)點(diǎn))
Tracker主要做調(diào)度工作,相當(dāng)于mvc中的controller的角色上祈,在訪問上起負(fù)載均衡的作用培遵。跟蹤器和存儲節(jié)點(diǎn)都可以由一臺或多臺服務(wù)器構(gòu)成浙芙,跟蹤器和存儲節(jié)點(diǎn)中的服務(wù)器均可以隨時(shí)增加或下線而不會影響線上服務(wù),其中跟蹤器中的所有服務(wù)器都是對等的籽腕,可以根據(jù)服務(wù)器的壓力情況隨時(shí)增加或減少嗡呼。Tracker負(fù)責(zé)管理所有的Storage和group,每個(gè)storage在啟動后會連接Tracker皇耗,告知自己所屬的group等信息晤锥,并保持周期性的心跳,tracker根據(jù)storage的心跳信息廊宪,建立group==>[storage server list]的映射表矾瘾,Tracker需要管理的元信息很少,會全部存儲在內(nèi)存中箭启;另外tracker上的元信息都是由storage匯報(bào)的信息生成的壕翩,本身不需要持久化任何數(shù)據(jù),這樣使得tracker非常容易擴(kuò)展傅寡,直接增加tracker機(jī)器即可擴(kuò)展為tracker cluster來服務(wù)放妈,cluster里每個(gè)tracker之間是完全對等的,所有的tracker都接受stroage的心跳信息荐操,生成元數(shù)據(jù)信息來提供讀寫服務(wù)芜抒。
Storage采用了分卷[Volume](或分組[group])的組織方式,存儲系統(tǒng)由一個(gè)或多個(gè)組組成托启,組與組之間的文件是相互獨(dú)立的宅倒,所有組的文件容量累加就是整個(gè)存儲系統(tǒng)中的文件容量。一個(gè)卷[Volume](組[group])可以由一臺或多臺存儲服務(wù)器組成屯耸,一個(gè)組中的存儲服務(wù)器中的文件都是相同的拐迁,組中的多臺存儲服務(wù)器起到了冗余備份和負(fù)載均衡的作用,數(shù)據(jù)互為備份疗绣,存儲空間以group內(nèi)容量最小的storage為準(zhǔn)线召,所以建議group內(nèi)的多個(gè)storage盡量配置相同,以免造成存儲空間的浪費(fèi)多矮。更多原理性的內(nèi)容可以參考這篇blog缓淹,介紹的很詳細(xì):分布式文件系統(tǒng)FastDFS設(shè)計(jì)原理
接下來就具體看一下FastDFS的整個(gè)下載安裝過程~
一鍵安裝腳本
https://download.csdn.net/download/qiuxiao630320/10302878
安裝說明
獲取文件權(quán)限:
chmod 777 fastDFS.sh
執(zhí)行腳本前執(zhí)行:
yum install -y unzip zip
網(wǎng)站文章鏈接:
https://blog.csdn.net/qiuxiao630320/article/details/79657778
腳本使用說明:
將腳本放在CentOS任意目錄下,賦予腳本可執(zhí)行權(quán)限塔逃,然后直接執(zhí)行即可讯壶,一鍵傻瓜式安裝;
相關(guān)安裝目錄請參考上面的文章
注:腳本在CentOS6.9環(huán)境下測試可用,但要保證機(jī)器已聯(lián)網(wǎng)患雏,并且yum命令正撑羲荩可用(這里的可用包括支持yum安裝,并且不會存在yum源不穩(wěn)定情況)
手動安裝步驟
下載
目前作者最后一次releases的時(shí)間的14年11月22號淹仑,對應(yīng)的最新版本是5.0.5丙挽,直接在余大的GitHub上下載就可以了:
https://github.com/happyfish100/fastdfs/releases
如上圖肺孵,由于FastDFS是純C語言實(shí)現(xiàn),只支持Linux颜阐、FreeBSD等UNIX系統(tǒng)平窘,所以我們直接下載tar.gz的壓縮包,同時(shí)FastDFS 5.0.5同以前版本相比將公共的一些函數(shù)等單獨(dú)封裝成了libfastcommon包凳怨,所以在安裝FastDFS之前我們還必須安裝libfastcommon瑰艘,在余大的GitHub首頁可以看到:
下載完成后將下面這兩個(gè)文件上傳至CentOS服務(wù)器,然后就可以開始解壓安裝了:
安裝
libfastcommon
首先第一步是安裝libfastcommon肤舞,我這里將libfastcommon上傳到的/usr/local目錄下紫新,直接解壓:
unzip libfastcommon-master.zip
解壓成功后進(jìn)入目錄看一下壓縮包的文件:
如果沒有裝解壓工具unzip可以通過以下yum命令進(jìn)行安裝后再解壓:
yum -y install unzip zip
解壓完成后就可以進(jìn)行編譯安裝了,分別執(zhí)行./make.sh
和./make.sh install
李剖,由于是新安裝的系統(tǒng)有可能會提示找不到gcc命令:
如上圖芒率,所以我們先要安裝gcc編譯器:
yum -y install gcc-c++
看到如下信息說明gcc已經(jīng)安裝成功:
此時(shí)再次執(zhí)行./make.sh
命令進(jìn)行編譯裹虫,沒有error信息的話就說明編譯成功了决摧,最后再執(zhí)行./make.sh install
進(jìn)行安裝,看到類似如下提示信息就說明libfastcommon已安裝成功(畫風(fēng)突變取胎,黑底白字看的眼睛累T_T德玫,所以換成白底黑字了):
至此libfastcommon就已經(jīng)安裝成功了匪蟀,但注意一下上圖中紅色框標(biāo)注的內(nèi)容,libfastcommon.so 默認(rèn)安裝到了/usr/lib64/libfastcommon.so宰僧,但是FastDFS主程序設(shè)置的lib目錄是/usr/local/lib材彪,所以此處需要重新設(shè)置軟鏈接(類似于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è)置完畢后就可以開始安裝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
沒有報(bào)錯(cuò)就說明安裝成功了查刻,在log中我們可以發(fā)現(xiàn)安裝路徑:
沒錯(cuò),正是安裝到了/etc/fdfs中凤类,我們看一下該目錄下的文件:
如上圖,安裝成功后就會生成如上的3個(gè).sample文件(示例配置文件)普气,我們再分別拷貝出3個(gè)后面用的正式的配置文件:
cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf
之后再查看一下/etc/fdfs的文件目錄:
至此FastDFS已經(jīng)安裝完畢谜疤,接下來的工作就是依次配置Tracker和Storage了。
Tracker
在配置Tracker之前现诀,首先需要創(chuàng)建Tracker服務(wù)器的文件路徑夷磕,即用于存儲Tracker的數(shù)據(jù)文件和日志文件等,我這里選擇在/opt目錄下創(chuàng)建一個(gè)fastdfs_tracker目錄用于存放Tracker服務(wù)器的相關(guān)文件:
mkdir /opt/fastdfs_tracker
接下來就要重新編輯上一步準(zhǔn)備好的/etc/fdfs目錄下的tracker.conf配置文件仔沿,打開文件后依次做以下修改:
- disabled=false #啟用配置文件(默認(rèn)啟用)
- port=22122 #設(shè)置tracker的端口號坐桩,通常采用22122這個(gè)默認(rèn)端口
- base_path=/opt/fastdfs_tracker #設(shè)置tracker的數(shù)據(jù)文件和日志目錄
- http.server_port=6666 #設(shè)置http端口號,默認(rèn)為8080
配置完成后就可以啟動Tracker服務(wù)器了封锉,但首先依然要為啟動腳本創(chuàng)建軟引用绵跷,因?yàn)閒dfs_trackerd等命令在/usr/local/bin中并沒有膘螟,而是在/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
最后通過命令啟動Tracker服務(wù)器:
service fdfs_trackerd start
命令執(zhí)行后可以看到以下提示:
如果啟動命令執(zhí)行成功,那么同時(shí)在剛才創(chuàng)建的tracker文件目錄/opt/fastdfs_tracker中就可以看到啟動后新生成的data和logs目錄碾局,tracker服務(wù)的端口也應(yīng)當(dāng)被正常監(jiān)聽荆残,最后再通過netstat命令查看一下端口監(jiān)聽情況:
netstat -unltp|grep fdfs
可以看到tracker服務(wù)運(yùn)行的22122端口正常被監(jiān)聽:
確認(rèn)tracker正常啟動后可以將tracker設(shè)置為開機(jī)啟動,打開/etc/rc.d/rc.local并在其中加入以下配置:
service fdfs_trackerd start
如果重啟后發(fā)現(xiàn)未能自動啟動則通過命令ll /etc/rc.d/rc.local
檢查一下rc.local是否具備可執(zhí)行權(quán)限净当,若是無可執(zhí)行權(quán)限則通過chmod +x /etc/rc.d/rc.local
進(jìn)行授權(quán)内斯,如下圖:
Tracker至此就配置好了,接下來就可以配置FastDFS的另一核心——Storage像啼。
Storage
同理俘闯,步驟基本與配置Tracker一致,首先是創(chuàng)建Storage服務(wù)器的文件目錄忽冻,需要注意的是同Tracker相比我多建了一個(gè)目錄真朗,因?yàn)镾torage還需要一個(gè)文件存儲路徑,用于存放接收的文件:
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的端口號,默認(rèn)是23000振诬,同一個(gè)組的storage端口號必須一致
- base_path=/opt/fastdfs_storage #設(shè)置storage數(shù)據(jù)文件和日志目錄
- store_path_count=1 #存儲路徑個(gè)數(shù)蹭睡,需要和store_path個(gè)數(shù)匹配
- store_path0=/opt/fastdfs_storage_data #實(shí)際文件存儲路徑
- tracker_server=192.168.111.11:22122 #tracker 服務(wù)器的 IP地址和端口號,如果是單機(jī)搭建赶么,IP不要寫127.0.0.1肩豁,否則啟動不成功(此處的ip是我的CentOS虛擬機(jī)ip)
- http.server_port=8888 #設(shè)置 http 端口號
配置完成后同樣要為Storage服務(wù)器的啟動腳本設(shè)置軟引用:
ln -s /usr/bin/fdfs_storaged /usr/local/bin
接下來就可以啟動Storage服務(wù)了:
service fdfs_storaged start
命令執(zhí)行后可以看到以下提示:
同理,如果啟動成功辫呻,/opt/fastdfs_storage中就可以看到啟動后新生成的data和logs目錄清钥,端口23000也應(yīng)被正常監(jiān)聽,還有一點(diǎn)就是文件存儲路徑下會生成多級存儲目錄放闺,那么接下來看看是否啟動成功了:
如上圖祟昭,貌似沒成功啊,因?yàn)閱觭torage后文件都沒生成怖侦,為了確認(rèn)我們看一下storage的端口情況:
果然是沒啟動成功篡悟!端口目前還是只監(jiān)聽了一個(gè),storage的23000端口并未被監(jiān)聽匾寝,那么我們只能去日志文件中找原因了搬葬,進(jìn)入/opt/fastdfs_storage/logs目錄下并打開storaged.log文件:
如上圖,可以看到確實(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
沒有文件或目錄急凰!再回頭看一下/etc/fdfs目錄下的storage.conf的配置:
果不其然配錯(cuò)了,我們指定成了/etc/fastdfs_storage_data目錄猜年,而實(shí)際上我們創(chuàng)建的位置是/opt/fastdfs_storage_data抡锈,粗心大意疾忍,老眼昏花!修改路徑后再次重啟storage服務(wù)企孩,然后再看看data目錄和實(shí)際存儲文件的/opt/fastdfs_storage_data:
如上圖锭碳,可以看到/opt/fastdfs_storage/data目錄下生成好的pid文件和dat文件,那么再看一下實(shí)際文件存儲路徑下是否有創(chuàng)建好的多級目錄呢:
如上圖勿璃,沒有任何問題擒抛,data下有256個(gè)1級目錄,每級目錄下又有256個(gè)2級子目錄补疑,總共65536個(gè)文件歧沪,新寫的文件會以hash的方式被路由到其中某個(gè)子目錄下,然后將文件數(shù)據(jù)直接作為一個(gè)本地文件存儲到該目錄中莲组。那么最后我們再看一下storage服務(wù)的端口監(jiān)聽情況:
如上圖诊胞,可以看到此時(shí)已經(jīng)正常監(jiān)聽tracker的22122端口和storage的23000端口,至此storage服務(wù)器就已經(jīng)配置完成锹杈,確定了storage服務(wù)器啟動成功后撵孤,還有一項(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: 0server_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 = 0Storage 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 字樣即可說明storage服務(wù)器已經(jīng)成功登記到了tracker服務(wù)器邪码,同理別忘了添加開機(jī)啟動,打開/etc/rc.d/rc.local并將如下配置追加到文件中:
service fdfs_storaged start
至此我們就已經(jīng)完成了fastdfs的全部配置咬清,此時(shí)也就可以用客戶端工具進(jìn)行文件上傳下載的測試了闭专。
初步測試
測試時(shí)需要設(shè)置客戶端的配置文件,編輯/etc/fdfs目錄下的client.conf 文件旧烧,打開文件后依次做以下修改:
- base_path=/opt/fastdfs_tracker #tracker服務(wù)器文件路徑
- tracker_server=192.168.111.11:22122 #tracker服務(wù)器IP地址和端口號
- http.tracker_server_port=6666 # tracker 服務(wù)器的 http 端口號影钉,必須和tracker的設(shè)置對應(yīng)起來
配置完成后就可以模擬文件上傳了,先給/opt目錄下放一張圖片(暴雪爸爸的LOGO):
然后通過執(zhí)行客戶端上傳命令嘗試上傳:
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /opt/BLIZZARD.jpg
運(yùn)行后可以發(fā)現(xiàn)給我們返回了一個(gè)路徑:
這就表示我們的文件已經(jīng)上傳成功了掘剪,當(dāng)文件存儲到某個(gè)子目錄后平委,即認(rèn)為該文件存儲成功,接下來會為該文件生成一個(gè)文件名夺谁,文件名由group肆汹、存儲目錄、兩級子目錄予权、fileid、文件后綴名(由客戶端指定浪册,主要用于區(qū)分文件類型)拼接而成扫腺,如下圖:
同時(shí)在之前配置的storage服務(wù)器的實(shí)際文件存儲路徑中也可以根據(jù)返回的路徑找到實(shí)際文件:
接下來嘗試用瀏覽器發(fā)送HTTP請求訪問一下文件:
此時(shí)發(fā)現(xiàn)并不能訪問,因?yàn)镕astDFS目前已不支持http協(xié)議村象,我們在FastDFS 4.0.5的版本更新日志中可以看到這樣一條信息:
如上圖笆环,4.0.5版本開始移除了自帶的HTTP支持(因?yàn)橹白詭У腍TTP服務(wù)較為簡單攒至,無法提供負(fù)載均衡等高性能服務(wù)),所以余大提供了nginx上使用FastDFS的模塊fastdfs-nginx-module躁劣,下載地址如下:https://github.com/happyfish100/fastdfs-nginx-module迫吐,這樣做最大的好處就是提供了HTTP服務(wù)并且解決了group中storage服務(wù)器的同步延遲問題,接下來就具體記錄一下fastdfs-nginx-module的安裝配置過程账忘。
fastdfs-nginx-module
在余大的GitHub上下載好fastdfs-nginx-module上傳到我們的CentOS中就可以開始安裝了志膀,在安裝nginx之前需要先安裝一些模塊依賴的lib庫,我在以前寫的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
依次裝好這些依賴之后就可以開始安裝nginx了溉浙。
storage nginx
首先是為storage服務(wù)器安裝nginx,首先將nginx和fastdfs-nginx-module的安裝包上傳至CentOS:
首先分別進(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
配置成功后會看到如下信息:
緊接著就可以進(jìn)行編譯安裝了戳稽,依次執(zhí)行以下命令:
make
make install
解決報(bào)錯(cuò)
make的時(shí)候會報(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文件也是路徑要搞對期升。
重新編譯惊奇,安裝即可
安裝完成后,我們在我們指定的目錄/usr/local/nginx中就可以看到nginx的安裝目錄了:
接下來要修改一下nginx的配置文件播赁,進(jìn)入conf目錄并打開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/
接下來還需要把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)前所有的配置文件:
沒什么問題,接下來就需要編輯剛拷貝的這個(gè)mod_fastdfs.conf文件了行拢,打開mod_fastdfs.conf并按順序依次編譯以下內(nèi)容:
- base_path=/opt/fastdfs_storage #保存日志目錄
- tracker_server=192.168.111.11:22122 #tracker服務(wù)器的IP地址以及端口號
- storage_server_port=23000 #storage服務(wù)器的端口號
- url_have_group_name = true #文件 url 中是否有 group 名
- store_path0=/opt/fastdfs_storage_data # 存儲路徑
- 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
接下來還需要建立 M00 至存儲目錄的符號連接:
ln -s /opt/fastdfs_storage_data/data /opt/fastdfs_storage_data/data/M00
最后啟動nginx:
/usr/local/nginx/sbin/nginx
顯示如下信息說明nginx已啟動成功:
通過瀏覽器也可以看到nginx的主頁:
storage服務(wù)器的nginx就已經(jīng)安裝完畢舟奠,接下來看一下tracker服務(wù)器的nginx安裝竭缝。
tracker nginx
同理,再裝一個(gè)nginx沼瘫,目錄命名為nginx2抬纸,安裝路徑依舊放在/usr/local下,由于和之前一樣耿戚,此處就不再做詳細(xì)解釋:
mkdir nginx2
cd nginx-1.8.1/
./configure --prefix=/usr/local/nginx2 --add-module=/usr/local/fastdfs-nginx-module-master/src
make
make install
接下來依然是修改nginx2的配置文件湿故,進(jìn)入conf目錄并打開nginx.conf文件加入以下配置,storage的nginx無需修改listen端口膜蛔,即默認(rèn)的80端口坛猪,并將upstream指向tracker的nginx地址:
upstream fdfs_group1 {
server 127.0.0.1:9999;
}
location /group1/M00 {
proxy_pass http://fdfs_group1;
}
接下來啟動nginx2:
/usr/local/nginx2/sbin/nginx
此時(shí)訪問nginx2的主頁,由于沒有修改端口皂股,直接訪問ip地址即可:
最后一步就是需要修改/etc/fdfs目錄下的client.conf文件墅茉,打開該文件并加入以下配置:
base_path=/data/fastdfs_storage #日志存放路徑
tracker_server=192.168.116.145:22122 #tracker 服務(wù)器 IP 地址和端口號
http.tracker_server_port=6666 # tracker 服務(wù)器的 http 端口號,必須和tracker的設(shè)置對應(yīng)起來
至此關(guān)于fastdfs就已經(jīng)全部配置完畢了,再一次進(jìn)行測試看看是否能正常上傳文件并通過http訪問文件就斤。
HTTP測試
再給/opt目錄下上傳一張暴雪爸爸的LOGO圖:
通過客戶端命令測試上傳:
如上圖悍募,依舊上傳成功,接下來的關(guān)鍵就是通過HTTP測試文件訪問洋机,打開瀏覽器輸入ip地址+文件名看看是否能正常訪問該圖片:
一切正常~ 至此關(guān)于FastDFS在CentOS 7下的部署測試就已經(jīng)全部完成了坠宴。