FastDFS搭建

一.介紹

技術(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)與流程

架構(gòu)圖.jpg
上傳流程.jpg

client詢問(wèn)tracker上傳到的storage脸狸,不需要附加參數(shù);
tracker返回一臺(tái)可用的storage藐俺;
client直接和storage通訊完成文件上傳

下載流程.jpg

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 -> 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/目錄中是否有上傳的文件(一般情況上傳的文件按順序保存在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_SRCSngx_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_SRCSngx_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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子泌绣,更是在濱河造成了極大的恐慌钮追,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阿迈,死亡現(xiàn)場(chǎng)離奇詭異元媚,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)苗沧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門刊棕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人待逞,你說(shuō)我怎么就攤上這事甥角。” “怎么了飒焦?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵蜈膨,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我牺荠,道長(zhǎng)翁巍,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任休雌,我火速辦了婚禮灶壶,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘杈曲。我一直安慰自己驰凛,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布担扑。 她就那樣靜靜地躺著恰响,像睡著了一般。 火紅的嫁衣襯著肌膚如雪涌献。 梳的紋絲不亂的頭發(fā)上胚宦,一...
    開(kāi)封第一講書(shū)人閱讀 49,784評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音燕垃,去河邊找鬼枢劝。 笑死,一個(gè)胖子當(dāng)著我的面吹牛卜壕,可吹牛的內(nèi)容都是我干的您旁。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼轴捎,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼鹤盒!你這毒婦竟也來(lái)了蚕脏?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤昨悼,失蹤者是張志新(化名)和其女友劉穎蝗锥,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體率触,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡终议,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了葱蝗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片穴张。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖两曼,靈堂內(nèi)的尸體忽然破棺而出皂甘,到底是詐尸還是另有隱情,我是刑警寧澤悼凑,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布偿枕,位于F島的核電站,受9級(jí)特大地震影響户辫,放射性物質(zhì)發(fā)生泄漏渐夸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一渔欢、第九天 我趴在偏房一處隱蔽的房頂上張望墓塌。 院中可真熱鬧,春花似錦奥额、人聲如沸苫幢。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)韩肝。三九已至,卻和暖如春九榔,著一層夾襖步出監(jiān)牢的瞬間伞梯,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工帚屉, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人漾峡。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓攻旦,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親生逸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子牢屋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

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