Centos7.X部署分布式文件系統(tǒng):FastDFS+Nginx-創(chuàng)新互聯(lián)

1、FastDFS簡(jiǎn)介

成都創(chuàng)新互聯(lián)自2013年起,先為海鹽等服務(wù)建站,海鹽等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為海鹽企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

1.1 介紹

  • FastDFS是一個(gè)開(kāi)源的,高性能的的分布式文件系統(tǒng),他主要的功能包括:文件存儲(chǔ),同步和訪問(wèn),設(shè)計(jì)基于高可用和負(fù)載均衡,F(xiàn)astDFS非常適用于基于文件服務(wù)的站點(diǎn),例如圖片分享和視頻分享網(wǎng)站。

  • FastDFS它是一個(gè)輕量級(jí)的開(kāi)源分布式文件系統(tǒng),主要解決了大容量的文件存儲(chǔ)和高并發(fā)訪問(wèn)的問(wèn)題,文件存取時(shí)實(shí)現(xiàn)了負(fù)載均衡。

  • 支持存儲(chǔ)服務(wù)器在線擴(kuò)容,支持相同的文件只保存一份,節(jié)約磁盤。

  • FastDFS只能通過(guò)Client API訪問(wèn),不支持POSIX訪問(wèn)方式。

  • FastDFS適合中大型網(wǎng)站使用,用來(lái)存儲(chǔ)資源文件(如:圖片、文檔、視頻等)

1.2 FastDFS組成

tracker server

跟蹤服務(wù)器:用來(lái)調(diào)度來(lái)自客戶端的請(qǐng)求。且在內(nèi)存中記錄所有存儲(chǔ)組和存儲(chǔ)服務(wù)器的信息狀態(tài)。

storage server

存儲(chǔ)服務(wù)器:用來(lái)存儲(chǔ)文件(data)和文件屬性(metadata)

client

客戶端:業(yè)務(wù)請(qǐng)求發(fā)起方,通過(guò)專用接口基于TCP協(xié)議與tracker以及storage server進(jìn)行交互

group

組,也可稱為卷:同組內(nèi)上的文件是完全相同的

文件標(biāo)識(shí)

包括兩部分:組名和文件名(包含路徑)

meta data

文件相關(guān)屬性:鍵值對(duì)(Key Value Pair)方式

fid

文件標(biāo)識(shí)符: (例如: group1/M00/00/00/CgEOxVegXB2AdYafAAAB0b8tBbQ9155303 )

  • group1:存儲(chǔ)組的組名;上傳完成后,需要客戶端自行保存

  • M00:服務(wù)器配置的虛擬路徑,與磁盤選項(xiàng)store_path#對(duì)應(yīng)

  • 00/00:兩級(jí)以兩位16進(jìn)制數(shù)字命名的目錄

  • CgEOxVegXB2AdYafAAAB0b8tBbQ9155303:文件名,與原文件名并不相同;由storage server根據(jù)特定信息生成。文件名包含:源存儲(chǔ)服務(wù)器的IP地址、文件創(chuàng)建時(shí)間戳、文件大小、隨機(jī)數(shù)和文件擴(kuò)展名等

1.3 FastDFS同步機(jī)制

  • 同一組內(nèi)的storage server之間是對(duì)等的,文件上傳、刪除等操作可以在任意一臺(tái)storage server上進(jìn)行;

  • 文件同步只在同組內(nèi)的storage server之間進(jìn)行,采用push方式,即源服務(wù)器同步給目標(biāo)服務(wù)器;

  • 源頭數(shù)據(jù)才需要同步,備份數(shù)據(jù)不需要再次同步,否則就構(gòu)成環(huán)路了;

    提示:上述第二條規(guī)則有個(gè)例外,就是新增加一臺(tái)storage server時(shí),由已有的一臺(tái)storage server將已有的所有數(shù)據(jù)(包括源頭數(shù)據(jù)和備份數(shù)據(jù))同步給該新增服務(wù)器。

1.4 FastDFS特性

指標(biāo)
說(shuō)明
系統(tǒng)簡(jiǎn)潔性
很簡(jiǎn)潔,只有兩個(gè)角色:tracker、storage
系統(tǒng)性能很高、沒(méi)有使用數(shù)據(jù)庫(kù),文件同步直接點(diǎn)對(duì)點(diǎn),不經(jīng)過(guò)tracker中轉(zhuǎn)
系統(tǒng)穩(wěn)定性

高、C語(yǔ)言開(kāi)發(fā),可支持高并發(fā)和負(fù)載

RAID方式
分組(組內(nèi)冗余),具有很高的靈活性
通信協(xié)議專有協(xié)議,下載文件支持HTTP
屬性(meta,data)
支持
相同內(nèi)容文件只保存一份
支持
下載文件時(shí)支持文件偏移量
支持

2、背景

    在這里,我用3臺(tái)服務(wù)器集群部署,這3臺(tái)服務(wù)器都要部署nginx+fastdfs以及相關(guān)模塊。3臺(tái)服務(wù)器部署方式都一樣,只不過(guò)storage服務(wù)器有些配置會(huì)不同,部署的過(guò)程中請(qǐng)大家看清楚在哪里操作,過(guò)程有點(diǎn)麻煩,請(qǐng)大家一定要有耐心,一步一步走下去部署是OK的。

2.1 環(huán)境說(shuō)明

172.18.18.111(tracker服務(wù)器): nginx、fastdfs(運(yùn)行tracker、storage)、fastfds其它模塊

172.18.18.112(storage服務(wù)器):nginx、fastdfs(運(yùn)行storage)、fastfds其它模塊

172.18.18.113(storage服務(wù)器):nginx、fastdfs(運(yùn)行storage)、fastfds其它模塊

2.2 軟件包、安裝路徑

準(zhǔn)備的軟件包:

nginx-1.9.3.tar.gz

lua-5.1.4.tar.gz

libfastcommon-1.0.35.zip

fastdfs-master.zip

LuaJIT-2.1.0-beta2.tar.gz

v0.2.19.tar.gz

GraphicsMagick-1.3.25.tar.gz

GraphicsMagick-1.3.25.tar

安裝的路徑:

服務(wù)目錄
nginx/usr/local/nginx/
fastdfs配置

/etc/fdfs/

fastdfs

/usr/local/fastDFS/

Storage_data

/usr/local/fastDFS/storage/
安裝包/usr/src

3、部署FastDFS

3.1、安裝libfastcommon(tracker和storage服務(wù)器操作)

   安裝fastDFS前,首先下載最新版本的libfastcommon進(jìn)行安裝,上傳至/usr/src目錄中。下載地址https://github.com/happyfish200/libfastcommon/releases

  • 解壓、配置和編譯:

#cd /usr/src/

#unzip libfastcommon-1.0.35.zip

#cd libfastcommon-1.0.35/

#./make.sh

#./make.sh install

提示:確認(rèn)make沒(méi)有錯(cuò)誤后,執(zhí)行安裝,64位系統(tǒng)默認(rèn)會(huì)復(fù)制到/usr/lib64下。

  • 設(shè)置環(huán)境變量、創(chuàng)建軟鏈接:

#export LD_LIBRARY_PATH=/usr/lib64/

#ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so

3.2、安裝fastdfs(tracker和storage服務(wù)器操作)

    下載最新版本的fastDFS,上傳至/usr/src/目錄中。下載地址:https://github.com/happyfish200/fastdfs

  • 解壓、編譯:

#cd /usr/src/

#unzip fastdfs-master.zip

#cd fastdfs-master/

#./make.sh

#./make.sh install

提示:確認(rèn)make沒(méi)有錯(cuò)誤后,執(zhí)行安裝,默認(rèn)會(huì)安裝到/usr/bin中,以及會(huì)在/etc/fdfs生成以.sample結(jié)尾的4個(gè)文件,如下所示:

#ll /etc/fdfs/

-rw-r--r-- 1 root root 1461 Aug 12 15:48 client.conf.sample

-rw-r--r-- 1 root root 7927 Aug 12 15:48 storage.conf.sample

-rw-r--r-- 1 root root 105 Aug 12 15:48 storage_ids.conf.sample

-rw-r--r-- 1 root root 7389 Aug 12 15:48 tracker.conf.sample

# ll /usr/bin/fdfs_*

-rwxr-xr-x 1 root root 317432 Aug 12 15:48 /usr/bin/fdfs_appender_test

-rwxr-xr-x 1 root root 317208 Aug 12 15:48 /usr/bin/fdfs_appender_test1

-rwxr-xr-x 1 root root 304064 Aug 12 15:48 /usr/bin/fdfs_append_file

-rwxr-xr-x 1 root root 303800 Aug 12 15:48 /usr/bin/fdfs_crc32

-rwxr-xr-x 1 root root 304120 Aug 12 15:48 /usr/bin/fdfs_delete_file

-rwxr-xr-x 1 root root 304856 Aug 12 15:48 /usr/bin/fdfs_download_file

-rwxr-xr-x 1 root root 304448 Aug 12 15:48 /usr/bin/fdfs_file_info

-rwxr-xr-x 1 root root 322360 Aug 12 15:48 /usr/bin/fdfs_monitor

-rwxr-xr-x 1 root root 1111640 Aug 12 15:48 /usr/bin/fdfs_storaged

-rwxr-xr-x 1 root root 327376 Aug 12 15:48 /usr/bin/fdfs_test

-rwxr-xr-x 1 root root 326592 Aug 12 15:48 /usr/bin/fdfs_test1

-rwxr-xr-x 1 root root 453880 Aug 12 15:48 /usr/bin/fdfs_trackerd

-rwxr-xr-x 1 root root 305048 Aug 12 15:48 /usr/bin/fdfs_upload_appender

-rwxr-xr-x 1 root root 306072 Aug 12 15:48 /usr/bin/fdfs_upload_file

3.3 配置tracker服務(wù)器(在tracker服務(wù)器操作)

  • 復(fù)制tracker樣例配置文件,并重命名

#cd /etc/fdfs/

#cp tracker.conf.sample tracker.conf

  • 修改tracker配置文件

#vim tracker.conf

bind_addr=172.18.18.111   #綁定服務(wù)IP,如果不填則表示所有的

port=22122       #提供服務(wù)的端口

base_path=/usr/local/fastDFS  #存儲(chǔ)日志和數(shù)據(jù)的根目錄

store_group=group1  #設(shè)當(dāng)上一個(gè)參數(shù)設(shè)定為1 時(shí) (store_lookup=1,即指定組名時(shí)),必須設(shè)置本參數(shù)為系統(tǒng)中存在的一個(gè)組名。如果選擇其他的上傳方式,這個(gè)參數(shù)就沒(méi)有效了。

store_server=1   #選擇哪個(gè)storage server 進(jìn)行上傳操作,1表示根據(jù)ip 地址進(jìn)行排序選擇第一個(gè)服務(wù)器(IP地址最小者)

download_server=1     #選擇哪個(gè) storage server 作為下載服務(wù)器,1表示哪個(gè)為源storage server 就用哪一個(gè)

http.server_port=80    #HTTP服務(wù)端口,默認(rèn)為8080,你也可以不用改,但是測(cè)試訪問(wèn)你要帶8080端口訪問(wèn)

其它參數(shù)保留默認(rèn)配置, 具體配置解釋可參考官方文檔說(shuō)明:http://bbs.chinaunix.net/thread-1941456-1-1.html

  • 創(chuàng)建bash_path指定路徑

#mkdir /usr/local/fastDFS/

#mkdir -p /usr/local/fastDFS/storage/data

3.4 配置storage服務(wù)器(tracker和storage服務(wù)器操作)

  • 復(fù)制storage樣例配置文件,并重命名:

#cd /etc/fdfs/
#cp storage.conf.sample  storage.conf

  • 修改tstorage配置文件

#vim storage.conf

group_name=group1            #指定此 storage server 所在 組

bind_addr=               #綁定服務(wù)IP,可以不用填寫(如果是tracker服務(wù)器,也可以配置tracker服務(wù)器自身IP地址)

base_path=/usr/local/fastDFS      #儲(chǔ)日志和數(shù)據(jù)的根目錄

store_path0=/usr/local/fastDFS/storage #第1個(gè)存儲(chǔ)目錄

tracker_server=172.18.18.111:22122   #tracker服務(wù)器的IP和端口,如果有多個(gè)tracker服務(wù)器可以寫多行

http.server_port=80           #HTTP服務(wù)端口,默認(rèn)為8888,你也可以不用改,但是測(cè)試訪問(wèn)你要帶8080端口訪問(wèn)

其它參數(shù)保留默認(rèn)配置, 具體配置解釋可參考官方文檔說(shuō)明:http://bbs.chinaunix.net/thread-1941456-1-1.html

3. 5修改tracker服務(wù)器客戶端配置文件(tracker服務(wù)器操作)

  • 復(fù)制client樣例配置文件,并重命名

#cd /etc/fdfs/

#cp client.conf.sample client.conf

  • 修改client.conf配置文件:

#cd /etc/fdfs/

#cp client.conf.sample client.conf

#vim client.conf

base_path=/usr/local/fastDFS       #修改路徑

tracker_server=172.18.18.111:22122  #tracker服務(wù)器IP和端口,有多個(gè)tracker服務(wù)器可以寫多條配置

4、文件上傳測(cè)試

4.1 啟動(dòng)tracker服務(wù)(tracker服務(wù)器操作)

#/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf

檢查FastDFS Tracker Server是否啟動(dòng)成功:

#ps -ef | grep fdfs_trackerd

root   27077 25738 0 15:11 pts/2  00:00:00 grep --color=auto fdfs_trackerd

root   31854   1 0 Nov20 ?    00:02:34 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf

4.2 啟動(dòng)storage服務(wù)(tracker和storage服務(wù)器操作)

    到了這里,有些朋友可能會(huì)問(wèn)我,為什么我啟動(dòng)storage服務(wù)也要在tracker服務(wù)器上操作呢?大家有沒(méi)有注意,我在2.1的步驟中,就聲明了tracker服務(wù)器同時(shí)運(yùn)行(tracker、storage)這兩個(gè)服務(wù),所以不要覺(jué)得奇怪。

# /usr/bin/fdfs_storaged /etc/fdfs/storage.conf

# ps -ef | grep fdfs_storaged

root   27234 25738 0 15:15 pts/2  00:00:00 grep --color=auto fdfs_storaged

root   31863   1 0 Nov20 ?    00:03:37 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf

4.3 執(zhí)行文件上傳(tracker服務(wù)器操作)

  • 我先放張測(cè)試圖片(test.jpg)至/home目錄下:

#ll /home

drwx------. 14 admin admin  4096 Apr 22 2017 admin

-rw-r--r--  1 root root 4121391 Dec 7 17:13 test.jpg

  • 使用fdfs_test命令來(lái)測(cè)試上傳,格式如下:

#fdfs_test /etc/fdfs/client.conf upload /home/test.jpg

This is FastDFS client test program v5.11

Copyright (C) 2008, Happy Fish / YuQing

FastDFS may be copied only under the terms of the GNU General

Public License V3, which may be found in the FastDFS source kit.

Please visit the FastDFS Home Page http://www.csource.org/

for more detail.

[2017-12-27 15:20:21] DEBUG - base_path=/usr/local/fastDFS, 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

tracker_query_storage_store_list_without_group:

server 1. group_name=, ip_addr=172.18.18.111, port=23000

group_name=group1, ip_addr=172.18.18.111, port=23000

storage_upload_by_filename

group_name=group1, remote_filename=M00/00/12/rBISb1pDSbWAeUGaAD7jL_Zyu6I957.jpg

source ip address: 172.18.18.111

file timestamp=2017-12-27 15:20:21

file size=4121391

file crc32=4134714274

example file url: http://172.18.18.111/group1/M00/00/12/rBISb1pDSbWAeUGaAD7jL_Zyu6I957.jpg

storage_upload_slave_by_filename

group_name=group1, remote_filename=M00/00/12/rBISb1pDSbWAeUGaAD7jL_Zyu6I957_big.jpg

source ip address: 172.18.18.111

file timestamp=2017-12-27 15:20:21

file size=4121391

file crc32=4134714274

example file url: http://172.18.18.111/group1/M00/00/12/rBISb1pDSbWAeUGaAD7jL_Zyu6I957_big.jpg

如下圖的結(jié)果,能返回文件ID,說(shuō)明圖片上傳成功:

Centos 7.X部署分布式文件系統(tǒng):FastDFS+Nginx

說(shuō)明:剛才把test.jpg的圖片上傳至fastdfs了,如果要用瀏覽器訪問(wèn)測(cè)試上面給出的url地址,還需要安裝nginx服務(wù)。

  • 用fdfs_delete_file命令來(lái)測(cè)試刪除(這里我不做刪除的測(cè)試了,我下面還要用到這張上傳的圖片),如下操作:

# fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/12/rBISb1pDSbWAeUGaAD7jL_Zyu6I957.jpg

4、安裝LuaJIT、nginx-lua-module、GraphicsMagick模塊(tracker和storage服務(wù)器操作)

4.1 安裝LuaJIT

  • 下載最新的LuaJIT,然后上傳至/usr/src目錄下:

#cd /usr/src

#wget http://luajit.org/download/LuaJIT-2.1.0-beta2.tar.gz

  • 解壓、配置:

# tar zxf LuaJIT-2.1.0-beta2.tar.gz

# cd LuaJIT-2.1.0-beta2

# make

# make install

4.2 安裝nginx_devel_kit(NDK)模塊

  • 下載最新的nginx_devel_kit模塊,然后上傳至/usr/src目錄下:

#cd /usr/src

# wget http://luajit.org/download/LuaJIT-2.1.0-beta2.tar.gz

  • 解壓、配置:

# tar zxf LuaJIT-2.1.0-beta2.tar.gz

# cd LuaJIT-2.1.0-beta2

# make

# make install

4.3 安裝lua_nginx_module模塊

  • 下載最新的nginx_devel_module模塊,然后上傳至/usr/src目錄:

#cd /usr/src

# wget https://github.com/openresty/lua-nginx-module/archive/v0.10.2.tar.gz

4.4 安裝GraphicsMagick模塊(免費(fèi)的圖片編輯、合成等功能的軟件)

  • 下載最新的GraphicsMagick模塊,然后上傳至/usr/src目錄:

#cd /usr/src

#wget ftp://ftp.graphicsmagick.org/pub/GraphicsMagick/1.3/GraphicsMagick-1.3.5.tar.gz

  • 安裝ImageMagick依賴包:

# yum -y install libpng-devel libpng

# yum -y install libjpeg-devel libjpeg

# yum -y install libtool-ltdl libtool-ltdl-devel

#yum -y install ImageMagick ImageMagick-devel

  • 編譯、配置:

# cd GraphicsMagick-1.3.25

# ./configure

#make && make install


PS: 將會(huì)默認(rèn)在一下目錄中安裝相應(yīng)文件:

   /usr/local/bin

   /usr/local/include

   /usr/local/lib

   /usr/local/share

提示:整個(gè)第4步可根據(jù)公司的業(yè)務(wù)情況來(lái)增加這些模塊,如果你們公司不需要用到這些模塊,這一步可以省略......

5、安裝fastdfs-nginx-module模塊(在所有storage節(jié)點(diǎn)安裝,相當(dāng)于在tracker和storage服務(wù)器操作)

5.1 fastdfs-nginx-module作用說(shuō)明

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

5.2 下載fastdfs-nginx-module

下載最新的fastdfs-nginx-module,然后上傳至/usr/src目錄下:

#cd /usr/src

#wget https://github.com/happyfish200/fastdfs-nginx-module/archive/master.zip

#unzip master

5.3 安裝nginx依賴包

#yum -y install gcc gcc-c++ make automake autoconf libtool pcre* zlib openssl openssl-devel

5.3 編譯安裝nginx(把剛才幾個(gè)模塊編譯添加進(jìn)去)

# cd /usr/src

#tar -zxvf nginx-1.9.3.tar.gz

# cd nginx-1.9.3

# ./configure --prefix=/usr/local/nginx --user=www --group=www \

--with-http_stub_status_module \

--with-http_realip_module \

--with-pcre \

--with-http_ssl_module \

--with-stream \

--add-module=/usr/src/fastdfs/ngx_devel_kit-0.2.19/ \

--add-module=/usr/src/fastdfs/lua-nginx-module-0.10.2/ \

--add-module=/usr/src/fastdfs/fastdfs-nginx-module-master/src

#make

#make install

如果出現(xiàn)如下錯(cuò)誤:

./configure: error: ngx_http_lua_module requires the Lua library.

解決:

  • 安裝lua的相關(guān)依賴:yum install readline-dev readline-devel

  • 安裝lua5.1:

下載lux5.1的包

# tar -zxvf lua-5.1.4.tar.gz

# cd lua-5.1.4

# make linux test

# make install

然后在重新:

./configure

make && make install

5.4 復(fù)制fastdfs-nginx-module 源碼中的配置文件到/etc/fdfs 目錄,并修改

#cp /usr/src/fastdfs-nginx-module/src/mod_fastdfs.conf   /etc/fdfs/

#vim /etc/fdfs/mod_fastdfs.conf

修改以下內(nèi)容:

base_path=/usr/local/fastDFS             #存儲(chǔ)數(shù)據(jù)庫(kù)根目錄

tracker_server=172.18.18.111:22122        #tracker服務(wù)器IP和端口

url_have_group_name = true              #url中包含group名稱

store_path0=/usr/local/fastDFS/storage

log_filename=/usr/local/fastDFS/logs/mod_fastdfs.log #mod_fastdfs日記存放路徑

group_count = 1

在文件末尾添加:

[group1]

group_name=group1

storage_server_port=23000

store_path_count=1

store_path0=/usr/local/fastDFS/storage

#手動(dòng)創(chuàng)建mod_fastdfs.log日志文件

#touch /usr/local/fastDFS/log/mod_fastdfs.lo

5.5 復(fù)制 fastdfs-mast的部分配置文件到/etc/fdfs 目錄

#cd /usr/src/fastdfs-master/conf

#cp http.conf mime.types /etc/fdfs/

5.6 nginx配置、啟動(dòng)

  • 創(chuàng)建www用戶

#groupadd www

#useradd -g www www

  • 修改fastDFS目錄屬組權(quán)限:

#chown -R www:www /usr/local/fastDFS/

  • 修改nginx.conf文件:

#vim /usr/local/nginx/conf/nginx.conf

user www;

worker_processes auto;

server {

    listen    80;

    server_name localhost;

    location / {

      root  html;

      index index.php index.html index.htm;

    location /group1/M00 {

    ngx_fastdfs_module;

    alias /usr/local/fastDFS/storage/data;

    set $image_root "/usr/local/fastDFS/storage/data";

    if ($uri ~ "/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/(.*)") {

      set $image_dir "$image_root/$3/$4/";

      set $image_name "$5";

      set $file "$image_dir$image_name";

    }

    if ($image_name ~ "([a-zA-Z0-9_\-]+)_([0-9]+x[0-9]+|water)?(q[0-9]{1,2})?.([a-zA-Z0-9]+)") {

      set $a "$1";

      set $b "$2";

      set $c "$3";

      set $d "$4";

      set $e "$5";

      set $f "$6";

      set $file "$file";

    }

    }

}

說(shuō)明:

 A、/etc/fdfs/storage.conf 中的配置 http.server_port=8888 ,默認(rèn)端口是8888,我改成 80,如果大家沒(méi)有修改這個(gè)默認(rèn)端口,那么nginx配置監(jiān)聽(tīng)的端口也要改成8888。

 B、Storage 對(duì)應(yīng)有多個(gè) group 的情況下,訪問(wèn)路徑帶 group 名,如/group1/M00/00/00/xxx, 對(duì)應(yīng)的 Nginx 配置為:

    location ~/group([0-9])/M00 {

        ngx_fastdfs_module;

}

  • 啟動(dòng)nginx服務(wù):

#/usr/local/nginx/sbin/nginx -t

ngx_http_fastdfs_set pid=6715

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

#/usr/local/nginx/sbin/nginx


6、用http的方式測(cè)試剛才上傳的圖片

http://172.18.18.111/group1/M00/00/12/rBISb1pDSbWAeUGaAD7jL_Zyu6I957_big.jpg

測(cè)試如下圖所示:

Centos 7.X部署分布式文件系統(tǒng):FastDFS+Nginx

到這里有點(diǎn)難為情了,上面這張是筆者自己的照片,在電腦上隨手拿了一張圖片就上傳了,唯一一張圖片,當(dāng)然,讀者朋友們覺(jué)得很帥的話也可以收藏起來(lái),哈哈??!

然后,我們來(lái)測(cè)試一下圖片能不能裁剪(前提條件是你要配置了4.4的操作步驟),修改下面紅色的字體為裁剪的大小,然后在瀏覽器中訪問(wèn):

http://172.18.18.111/group1/M00/00/12/rBISb1pDSbWAeUGaAD7jL_Zyu6I957_400x400.jpg

Centos 7.X部署分布式文件系統(tǒng):FastDFS+Nginx

通過(guò)上圖可以看到,我這里可以把上傳的圖片進(jìn)行裁剪,圖片確實(shí)裁剪小了,是OK的。

7、fastDFS一些簡(jiǎn)單操作命令

#重啟storage服務(wù):

# /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

#重啟tracker服務(wù):

# /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

#關(guān)閉storage服務(wù):

# killall fdfs_storaged

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

# killall fdfs_trackered

#查看集群狀態(tài):

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

#上傳操作:

#fdfs_test /etc/fdfs/client.conf upload 文件具體url

#刪除操作:

#fdfs_delete_file /etc/fdfs/client.conf 上傳后的路徑

比如:

#fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/ZciEZlepkl6Abj28AAAPOSSdASU225_big.gif)

8、Java API 客戶端配置

1.前往GitHub下載Java_client代碼。https://github.com/fzmeng/fastdfs.client

2.在你的項(xiàng)目src/java/resources 下加入文件 fastdfs_client.conf

注意修改tracker服務(wù)器Ip地址:

connect_timeout = 2

network_timeout = 30

charset = ISO8859-1

http.tracker_http_port = 80

http.anti_steal_token = no

tracker_server=172.18.18.111:22122

default_group_name=group1


當(dāng)然,還有php及其它客戶端連接到fastdfs,我就不挨個(gè)介紹了,感興趣的朋友可以自行百度或留言討論,最后要感謝張秋方大師筆者才能才能順利完成此篇文稿。

參考文章:

https://blog.51cto.com/xinzong/1834466

https://github.com/qieangel2013/nginxLuaGmFastdfs

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

新聞名稱:Centos7.X部署分布式文件系統(tǒng):FastDFS+Nginx-創(chuàng)新互聯(lián)
本文路徑:http://bm7419.com/article18/cdgedp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、定制開(kāi)發(fā)、搜索引擎優(yōu)化營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)