一.介紹
技術(shù)論壇: http://bbs.chinaunix.net/forum-240-1.html
資源地址: https://sourceforge.net/projects/fastdfs/
源碼資源: https://github.com/happyfish100
FastDFS是一個(gè)開(kāi)源的輕量級(jí)分布式文件系統(tǒng),它對(duì)文件進(jìn)行管理夺颤,功能包括:文件存儲(chǔ)工育、文件同步善已、文件訪問(wèn)(文件上傳忘嫉、文件下載)等盖奈,解決了大容量存儲(chǔ)和負(fù)載均衡的問(wèn)題拆又。特別適合以文件為載體的在線服務(wù)养晋,如相冊(cè)網(wǎng)站、視頻網(wǎng)站等等收恢。
FastDFS為互聯(lián)網(wǎng)量身定制武学,充分考慮了冗余備份、負(fù)載均衡派诬、線性擴(kuò)容等機(jī)制劳淆,并注重高可用、高性能等指標(biāo)默赂,使用FastDFS很容易搭建一套高性能的文件服務(wù)器集群提供文件上傳、下載等服務(wù)括勺。
FastDFS服務(wù)端有兩個(gè)角色:跟蹤器(tracker)和存儲(chǔ)節(jié)點(diǎn)(storage)缆八。跟蹤器主要做調(diào)度工作,在訪問(wèn)上起負(fù)載均衡的作用疾捍。
存儲(chǔ)節(jié)點(diǎn)存儲(chǔ)文件奈辰,完成文件管理的所有功能:就是這樣的存儲(chǔ)、同步和提供存取接口乱豆,F(xiàn)astDFS同時(shí)對(duì)文件的metadata進(jìn)行管理奖恰。所謂文件的meta data就是文件的相關(guān)屬性,以鍵值對(duì)(key value)方式表示宛裕,如:width=1024瑟啃,其中的key為width,value為1024揩尸。文件metadata是文件屬性列表蛹屿,可以包含多個(gè)鍵值對(duì)。
跟蹤器和存儲(chǔ)節(jié)點(diǎn)都可以由一臺(tái)或多臺(tái)服務(wù)器構(gòu)成岩榆。跟蹤器和存儲(chǔ)節(jié)點(diǎn)中的服務(wù)器均可以隨時(shí)增加或下線而不會(huì)影響線上服務(wù)错负。其中跟蹤器中的所有服務(wù)器都是對(duì)等的,可以根據(jù)服務(wù)器的壓力情況隨時(shí)增加或減少勇边。
為了支持大容量犹撒,存儲(chǔ)節(jié)點(diǎn)(服務(wù)器)采用了分卷(或分組)的組織方式。存儲(chǔ)系統(tǒng)由一個(gè)或多個(gè)卷組成粒褒,卷與卷之間的文件是相互獨(dú)立的识颊,所有卷的文件容量累加就是整個(gè)存儲(chǔ)系統(tǒng)中的文件容量。一個(gè)卷可以由一臺(tái)或多臺(tái)存儲(chǔ)服務(wù)器組成怀浆,一個(gè)卷下的存儲(chǔ)服務(wù)器中的文件都是相同的谊囚,卷中的多臺(tái)存儲(chǔ)服務(wù)器起到了冗余備份和負(fù)載均衡的作用怕享。
在卷中增加服務(wù)器時(shí),同步已有的文件由系統(tǒng)自動(dòng)完成镰踏,同步完成后函筋,系統(tǒng)自動(dòng)將新增服務(wù)器切換到線上提供服務(wù)。
當(dāng)存儲(chǔ)空間不足或即將耗盡時(shí)奠伪,可以動(dòng)態(tài)添加卷跌帐。只需要增加一臺(tái)或多臺(tái)服務(wù)器,并將它們配置為一個(gè)新的卷绊率,這樣就擴(kuò)大了存儲(chǔ)系統(tǒng)的容量谨敛。
FastDFS中的文件標(biāo)識(shí)分為兩個(gè)部分:卷名和文件名,二者缺一不可滤否。
1.架構(gòu)與流程
client詢問(wèn)tracker上傳到的storage脸狸,不需要附加參數(shù);
tracker返回一臺(tái)可用的storage藐俺;
client直接和storage通訊完成文件上傳
client詢問(wèn)tracker下載文件的storage炊甲,參數(shù)為文件標(biāo)識(shí)(組名和文件名);
tracker返回一臺(tái)可用的storage欲芹;
client直接和storage通訊完成文件下載卿啡。
2 FastDFS運(yùn)行時(shí)目錄結(jié)構(gòu)
2.1 Tracker Server目錄
${base_path}
|__data
| |__storage_groups.dat:存儲(chǔ)分組信息
| |__storage_servers.dat:存儲(chǔ)服務(wù)器列表
|__logs
|__trackerd.log:tracker server日志文件
3.2 Storage Server目錄
|${base_path}
|__data
| |__.data_init_flag:當(dāng)前storage server初始化信息
| |__storage_stat.dat:當(dāng)前storage server統(tǒng)計(jì)信息
| |__sync:存放數(shù)據(jù)同步相關(guān)文件
| | |__binlog.index:當(dāng)前的binlog文件索引號(hào)
| | |__binlog.###:存放更新操作記錄(日志)
| | |__${ip_addr}_${port}.mark:存放同步的完成情況
| |
| |__一級(jí)目錄:256個(gè)存放數(shù)據(jù)文件的目錄,如:00, 1F
| |__二級(jí)目錄:256個(gè)存放數(shù)據(jù)文件的目錄
|__logs
|__storaged.log:storage server日志文
一菱父、 安裝
準(zhǔn)備兩個(gè)Linux服務(wù)器颈娜。兩個(gè)服務(wù)器分別作為tracker服務(wù)器(跟蹤服務(wù)器)和storage服務(wù)器(存儲(chǔ)服務(wù)器)。
Tracker服務(wù)器 : 192.168.52.100
Storage服務(wù)器 : 192.168.2.101
課上環(huán)境中浙宜,所有的安裝包都存放在/root/upload目錄中官辽。解壓后的安裝包根據(jù)具體命令查看。(/usr/local/fastdfs)
1 核心安裝
Tracker Server 和 Storage Server完全一致的安裝梆奈。
安裝FastDFS 5.08版本
1.1 安裝FastDFS依賴
FastDFS是C語(yǔ)言開(kāi)發(fā)的應(yīng)用野崇。安裝必須使用make、cmake和gcc編譯器亩钟。
yum install -y make cmake gcc gcc-c++
yum -y install zlib zlib-devel pcre pcre-devel gcc gcc-c++ openssl openssl-devel libevent libevent-devel perl unzip net-tools wget
1.2 解壓FastDFS核心庫(kù)
libfastcommon是從FastDFS 和FastDHT 中提取出來(lái)的公共C函數(shù)庫(kù)
cd /root/upload
yum install zip unzip
unzip libfastcommon-master.zip -d /usr/local/fastdfs
1.3 進(jìn)入解壓后的目錄
cd /usr/local/fastdfs/libfastcommon-master
1.4 編譯安裝
libfastcommon沒(méi)有提供make命令安裝文件乓梨。使用的是shell腳本執(zhí)行編譯和安裝。shell腳本為make.sh
編譯
./make.sh
安裝
./make.sh install
有固定的默認(rèn)安裝位置清酥。在/usr/lib64和/usr/include/fastcommon兩個(gè)目錄中扶镀。
1.5 創(chuàng)建軟連接
因?yàn)?FastDFS 主程序設(shè)置的 lib 目錄是/usr/local/lib,所以需要?jiǎng)?chuàng)建軟鏈接
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/local/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/local/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
1.6 解壓FastDFS主程序
本案例使用5.08版本FastDFS焰轻。
cd /root/upload
tar -zxf FastDFS_v5.08.tar.gz -C /usr/local/fastdfs
1.7 進(jìn)入FastDFS主程序源碼目錄
cd /usr/local/fastdfs/FastDFS
1.8 修改安裝路徑
此操作可選臭觉。在集群環(huán)境中使用默認(rèn)安裝路徑安裝。兩種安裝方式都嘗試一下。
vi /usr/local/fastdfs/FastDFS/make.sh
TARGET_PREFIX=DESTDIR/usr/local
1.9 編譯安裝
./make.sh
./make.sh install
安裝后蝠筑,F(xiàn)astDFS主程序所在位置是:
/usr/local/bin - 可執(zhí)行文件所在位置狞膘。默認(rèn)安裝在/usr/bin中。
/etc/fdfs - 配置文件所在位置什乙。就是默認(rèn)位置挽封。
/usr/local/lib64 - 主程序代碼所在位置。默認(rèn)在/usr/bin中。
/usr/local/include/fastdfs - 包含的一些插件組所在位置。默認(rèn)在/usr/include/fastdfs中辟宗。
1.10FastDFS安裝后資源簡(jiǎn)介
1.10.1 服務(wù)腳本
/etc/init.d/目錄中,腳本文件是 - fdfs-storaged和fdfs-trackerd
ls /etc/init.d/ | grep fdfs
1.10.2 配置文件模板
/etc/fdfs/目錄中忱辅,配置文件是 - client.conf.sample、storage.conf.sample和tracker.conf.sample
ls /etc/fdfs/
tracker.conf.sample - 跟蹤器服務(wù)配置文件模板
storage.conf.sample - 存儲(chǔ)服務(wù)器配置文件模板
client.conf.sample - FastDFS提供的命令行客戶端配置文件模板。可以通過(guò)命令行測(cè)試FastDFS有效性癞埠。
1.10.3 內(nèi)置命令
/usr/local/bin/目錄中。命令有若干聋呢⊙嗖睿可通過(guò)命令在控制臺(tái)訪問(wèn)FastDFS。
ls /usr/local/bin/ | grep fdfs
以上為通用安裝坝冕,F(xiàn)astDFS的跟蹤服務(wù)和存儲(chǔ)服務(wù)是通過(guò)配置實(shí)現(xiàn)的。后續(xù)內(nèi)容為跟蹤服務(wù)和存儲(chǔ)服務(wù)的具體配置瓦呼。
2 tracker基礎(chǔ)配置
只在tracker server節(jié)點(diǎn)中配置喂窟。192.168.52.100
2.1 創(chuàng)建跟蹤服務(wù)配置文件
FastDFS提供了配置文件模板,可以根據(jù)模板創(chuàng)建需要使用的配置文件央串。
cd /etc/fdfs
cp tracker.conf.sample tracker.conf
2.2 修改配置文件
tracker.conf配置文件用于描述跟蹤服務(wù)的行為磨澡,需要進(jìn)行下述修改:
vi /etc/fdfs/tracker.conf
port=22122 # 默認(rèn)服務(wù)端口
base_path=/home/yuqing/fastdfs -> base_path=/fastdfs/tracker(自定義目錄)
base_path是FastDFSTracker啟動(dòng)后使用的根目錄。也就是data和logs所在位置质和。
2.3 創(chuàng)建自定義目錄
為配置文件中定義的base_path變量創(chuàng)建對(duì)應(yīng)的目錄稳摄。
mkdir -p /fastdfs/tracker
2.4 修改啟動(dòng)服務(wù)腳本
vi /etc/init.d/fdfs_trackerd
將 PRG=/usr/bin/fdfs_trackerd 修改為 PRG=/usr/local/bin/fdfs_trackerd
2.5 啟動(dòng)服務(wù)
/etc/init.d/fdfs_trackerd start
啟動(dòng)成功后,配置文件中base_path指向的目錄中出現(xiàn)FastDFS服務(wù)相關(guān)數(shù)據(jù)目錄(data目錄饲宿、logs目錄)
2.6 查看服務(wù)狀態(tài)
/etc/init.d/fdfs_trackerd status
ps aux | grep fdfs
2.7 停止服務(wù)
/etc/init.d/fdfs_trackerd stop
2.8 重啟服務(wù)
/etc/init.d/fdfs_trackerd restart
2.9 設(shè)置開(kāi)啟自啟
vi /etc/rc.d/rc.local
新增內(nèi)容 - /etc/init.d/fdfs_trackerd start
3 storage基礎(chǔ)配置
只在storage server中配置厦酬。192.168.2.100
3.1 創(chuàng)建存儲(chǔ)服務(wù)配置文件
FastDFS提供了配置文件模板,可以根據(jù)模板創(chuàng)建需要使用的配置文件瘫想。
cd /etc/fdfs
cp storage.conf.sample storage.conf
3.2 修改配置文件
storage.conf配置文件用于描述存儲(chǔ)服務(wù)的行為仗阅,需要進(jìn)行下述修改:
vi /etc/fdfs/storage.conf
base_path=/home/yuqing/fastdfs -> base_path=/fastdfs/storage/base (自定義目錄)
store_path0=/home/yuqing/fastdfs -> store_path0=/fastdfs/storage/store(自定義目錄)
tracker_server=192.168.52.100:22122 -> tracker_server=tracker服務(wù)IP:22122
base_path - 基礎(chǔ)路徑。用于保存storage server基礎(chǔ)數(shù)據(jù)內(nèi)容和日志內(nèi)容的目錄国夜。
store_path0 - 存儲(chǔ)路徑减噪。是用于保存FastDFS中存儲(chǔ)文件的目錄,就是要?jiǎng)?chuàng)建256*256個(gè)子目錄的位置。
base_path和store_path0可以使用同一個(gè)目錄筹裕。
tracker_server - 跟蹤服務(wù)器位置醋闭。就是跟蹤服務(wù)器的ip和端口。
3.3 創(chuàng)建自定義目錄
mkdir -p /fastdfs/storage/base
mkdir -p /fastdfs/storage/store
3.4 修改服務(wù)腳本
vi /etc/init.d/fdfs_storaged
將PRG=/usr/bin/fdfs_storaged 修改為PRG=/usr/local/bin/fdfs_storaged
3.5 啟動(dòng)服務(wù)(要求tracker服務(wù)必須已啟動(dòng))
/etc/init.d/fdfs_storaged start
啟動(dòng)成功后朝卒,配置文件中base_path指向的目錄中出現(xiàn)FastDFS服務(wù)相關(guān)數(shù)據(jù)目錄(data目錄证逻、logs目錄),配置文件中的store_path0指向的目錄中同樣出現(xiàn)FastDFS存儲(chǔ)相關(guān)數(shù)據(jù)錄(data目錄)扎运。其中$store_path0/data/目錄中默認(rèn)創(chuàng)建若干子孫目錄(兩級(jí)目錄層級(jí)總計(jì)256*256個(gè)目錄)瑟曲,是用于存儲(chǔ)具體文件數(shù)據(jù)的。
Storage服務(wù)器啟動(dòng)比較慢豪治,因?yàn)榈谝淮螁?dòng)的時(shí)候洞拨,需要?jiǎng)?chuàng)建256*256個(gè)目錄。
3.6 查看服務(wù)狀態(tài)
/etc/init.d/fdfs_storaged status
ps aux | grep fdfs
3.7 停止服務(wù)
/etc/init.d/fdfs_storaged stop
3.8 重啟服務(wù)
/etc/init.d/fdfs_storaged restart
3.9 設(shè)置開(kāi)機(jī)自啟
vi /etc/rc.d/rc.local
新增內(nèi)容 - /etc/init.d/fdfs_storaged start
因啟動(dòng)前提為tracker服務(wù)必須已啟動(dòng)负拟,不推薦開(kāi)啟自啟烦衣。
4 客戶端基礎(chǔ)配置
不是必須的。就是用于使用命令行測(cè)試FastDFS才需要配置的掩浙。
4.1 創(chuàng)建客戶端配置文件
在tracker服務(wù)結(jié)點(diǎn)所在服務(wù)器中配置客戶端花吟。同樣通過(guò)配置文件模板創(chuàng)建對(duì)應(yīng)配置文件。
cd /etc/fdfs
cp client.conf.sample client.conf
4.2 修改配置文件
client.conf配置文件中主要描述客戶端的行為厨姚,需要進(jìn)行下述修改:
vi /etc/fdfs/client.conf
base_path=/home/yuqing/fastdfs -> base_path=/fastdfs/client (自定義目錄)
tracker_server=192.168.52.100:22122 -> tracker_server=tracker服務(wù)IP:22122
base_path - 就是客戶端命令行執(zhí)行過(guò)程時(shí)臨時(shí)數(shù)據(jù)存儲(chǔ)位置衅澈。
4.3 創(chuàng)建自定義目錄
mkdir -p /fastdfs/client
5 控制臺(tái)測(cè)試FastDFS
命令所在: /usr/local/bin目錄。 (如果在安裝FastDFS過(guò)程中谬墙,沒(méi)有修改make.sh文件中的TARGET_PREFIX屬性值今布,命令所在為/usr/bin目錄)
5.1 上傳文件
/usr/local/bin/fdfs_upload_file /etc/fdfs/client.conf /要上傳的文件
上傳結(jié)束后,返回group1/M00/00/00/xxxxxxxxxx.xxx拭抬,檢查storage服務(wù)結(jié)點(diǎn)中的store_path0/data/00/00/目錄中部默,不能完全保證)。
課上測(cè)試的上傳文件結(jié)果:group1/M00/00/00/wKgCbltTYaeACDWgAAVCLEPUQWI.tar.gz
卷名 : group1
文件名 : M00/00/00/wKgCbltTYaeACDWgAAVCLEPUQWI.tar.gz
其中M00是一個(gè)虛擬目錄造虎,相當(dāng)于windows中的快捷方式傅蹂,引用的是$store_path0/data目錄。
5.2 刪除文件
/usr/local/bin/fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/xxxxxxx.xxx
刪除結(jié)束后算凿,檢查$store_path0/data/00/00/目錄中是否還有文件份蝴。
6 安裝Nginx組件
如果FastDFS中保存的是圖片信息。希望在WEB應(yīng)用中可以直接訪問(wèn)FastDFS中的圖片進(jìn)行顯示澎媒。如果操作搞乏?
安裝Nginx是為了WEB應(yīng)用中可以使用HTTP協(xié)議直接訪問(wèn)Storage服務(wù)中存儲(chǔ)的文件。在#storage結(jié)點(diǎn)#所在服務(wù)器安裝Nginx組件戒努。
需要安裝兩部分內(nèi)容请敦。
Nginx應(yīng)用镐躲,在安裝nginx應(yīng)用的時(shí)候,同時(shí)要在nginx中增加一個(gè)FastDFS的組件侍筛。Module萤皂。
6.1 解壓fastdfs-nginx-module_v1.16.tar.gz
tar -zxf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/fastdfs
6.2 修改fastdfs-nginx-module_v1.16.tar.gz源文件中的配置
此操作必須修改,否則Nginx編譯會(huì)報(bào)錯(cuò)匣椰。
cd /usr/local/fastdfs/fastdfs-nginx-module/src
vi /usr/local/fastdfs/fastdfs-nginx-module/src/config
參數(shù)是用于配置安裝nginx中的FastDFS組件的時(shí)候裆熙,在什么位置查找FastDFS核心代碼。
源數(shù)據(jù):
ngx_addon_name=ngx_http_fastdfs_module
HTTP_MODULES="$HTTP_MODULES ngx_http_fastdfs_module"
NGX_ADDON_SRCS="ngx_addon_dir/ngx_http_fastdfs_module.c"
CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"
CORE_LIBS="$CORE_LIBS -L/usr/local/lib -lfastcommon -lfdfsclient"
CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='"/etc/fdfs/mod_fastdfs.conf"'"
|
修改后內(nèi)容:(如果安裝FastDFS時(shí)禽笑,沒(méi)有修改make.sh文件入录,則改為:CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/")
|
ngx_addon_name=ngx_http_fastdfs_module
HTTP_MODULES="$HTTP_MODULES ngx_http_fastdfs_module"
NGX_ADDON_SRCS="ngx_addon_dir/ngx_http_fastdfs_module.c"
CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/include/fastcommon/"
CORE_LIBS="$CORE_LIBS -L/usr/local/lib -lfastcommon -lfdfsclient"
CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='"/etc/fdfs/mod_fastdfs.conf"'"
|
6.3 安裝Nginx
6.3.1 安裝Nginx需要的依賴
yum install -y gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel
6.3.3 解壓Nginx
tar -zxf nginx-1.8.0.tar.gz -C /usr/local/fastdfs/
6.3.4 進(jìn)入Nginx源碼目錄
cd /usr/local/fastdfs/nginx-1.8.0/
6.3.5 配置Nginx安裝信息
./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/fastdfs-nginx-module/src
--add-module必須定義,此配置信息是用于指定安裝Nginx時(shí)需要加載的模塊佳镜,如果未指定僚稿,Nginx安裝過(guò)程不會(huì)加載fastdfs-nginx-module模塊,后續(xù)功能無(wú)法實(shí)現(xiàn)蟀伸。
6.3.6 創(chuàng)建目錄
Nginx運(yùn)行時(shí)需要?jiǎng)?chuàng)建若干臨時(shí)文件蚀同,如果默認(rèn)安裝不需創(chuàng)建此目錄。
mkdir -p /var/temp/nginx
6.3.7 編譯安裝
make
make install
6.3.8 配置fastdfs-nginx-module模塊配置文件
復(fù)制配置文件/usr/local/fastdfs/fastdfs-nginx-module/src/mod_fastdfs.conf到/etc/fdfs目錄中
cp /usr/local/fastdfs/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
cd /etc/fdfs/
修改配置文件mod_fastdfs.conf
vi mod_fastdfs.conf
源配置:
connect_timeout=2 #連接超時(shí)時(shí)間啊掏,單位秒
tracker_server=tracker:22122 #tracker服務(wù)結(jié)點(diǎn)
url_have_group_name = false #URL中是否包含group名稱
store_path0=/home/yuqing/fastdfs # storage服務(wù)結(jié)點(diǎn)的存儲(chǔ)位置蠢络,與配置storage結(jié)點(diǎn)一致
|
參考修改值:
|
connect_timeout=10
tracker_server=192.168.2.109:22122
url_have_group_name = true
store_path0=/fastdfs/storage/store
|
6.3.9 提供FastDFS需要的HTTP配置文件
復(fù)制FastDFS安裝包中的兩個(gè)配置文件(http.conf和mime.types)到/etc/fdfs目錄中
cp /usr/local/fastdfs/FastDFS/conf/http.conf /etc/fdfs/
cp /usr/local/fastdfs/FastDFS/conf/mime.types /etc/fdfs/
6.3.10 創(chuàng)建nginx啟動(dòng)需要的軟連接
創(chuàng)建軟連接
ln -s /usr/local/lib64/libfdfsclient.so /usr/lib64/libfdfsclient.so
nginx啟動(dòng)后,會(huì)在默認(rèn)的/usr/lib64目錄中查找需要的so文件迟蜜。如果在安裝FastDFS時(shí)刹孔,修改了make.sh文件中的TARGET_PREFIX參數(shù),則必須創(chuàng)建此軟連接
6.3.11 創(chuàng)建網(wǎng)絡(luò)訪問(wèn)存儲(chǔ)服務(wù)的軟連接
ln -s /fastdfs/storage/store/data/ /fastdfs/storage/store/data/M00
在上傳文件到FastDFS后娜睛,F(xiàn)astDFS會(huì)返回group1/M00/00/00/xxxxxxxxxx.xxx芦疏。其中g(shù)roup1是卷名,在mod_fastdfs.conf配置文件中已配置了url_have_group_name微姊,以保證URL解析正確。而其中的M00是FastDFS保存數(shù)據(jù)時(shí)使用的虛擬目錄分预,需要將這個(gè)虛擬目錄定位到真實(shí)數(shù)據(jù)目錄上兢交。
6.3.12 修改nginx配置文件
cd /usr/local/nginx/conf
vi nginx.conf
參考修改配置:(部分配置信息,不要完整復(fù)制)
|
user root; # Nginx需要訪問(wèn)linux文件系統(tǒng)笼痹,必須有文件系統(tǒng)的權(quán)限配喳。User root代表nginx訪問(wèn)文件系統(tǒng)的權(quán)限是root用戶權(quán)限。如果不開(kāi)啟權(quán)限凳干,可能有404訪問(wèn)錯(cuò)誤晴裹。
server{
listen 8888; # storage配置中,有http.server_port=8888的配置信息救赐,必須一致涧团。配置文件是/etc/fdfs/storaged.conf
server_name localhost;
location ~/group([0-9])/M00{
ngx_fastdfs_module;
}
}
|
6.3.13 測(cè)試WEB訪問(wèn)存儲(chǔ)服務(wù)中的文件
使用瀏覽器查看FastDFS中保存的文件:
http://ip:8888/group1/M00/00/00/xxxxxxx.xxx
測(cè)試上傳的文件: group1/M00/00/00/wKgCbltTmv-ASTG2AAAmTx4ns0s172.jpg
測(cè)試WEB訪問(wèn)地址:
http://192.168.52.101:8888/group1/M00/00/00/wKgCbltTmv-ASTG2AAAmTx4ns0s172.jpg