Centos7 FastDFS 搭建

安裝libfastcommonnginx

首先第一步是安裝libfastcommon,我這裏將libfastcommon上傳到的/opt目錄下,直接解壓:c++

yum -y install gcc-c++vim

yum -y install unzip zip瀏覽器

unzip libfastcommon-master.zip服務器

 

 

 

進入目錄tcp

./make.sh工具

./make.sh install測試

 

 

至此libfastcommon就已經安裝成功了,但注意一下上圖中紅色框標註的內容,libfastcommon.so 默認安裝到了/usr/lib64/libfastcommon.so,可是FastDFS主程序設置的lib目錄是/usr/local/lib,因此此處須要從新設置軟連接(相似於Windows的快捷方式):ui

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

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

 

設置完畢後就能夠開始安裝fastdfs

 

 

安裝FastDFS

tar -zxvf fastdfs-5.05.tar.gz

 

 

進入目錄

./make.sh

./make.sh install

 

 

 

沒錯,正是安裝到了/etc/fdfs中,咱們看一下該目錄下的文件:

 

 

安裝成功後就會生成如上的3.sample文件,咱們再分別拷貝出3個後面用的正式的配置文件

cp client.conf.sample client.conf

cp storage.conf.sample storage.conf

cp tracker.conf.sample tracker.conf

以後再查看一下/etc/fdfs的文件目錄

 

 

至此FastDFS已經安裝完畢,接下來的工做就是依次配置TrackerStorage了。

 

Tracker

在配置Tracker以前,首先須要建立Tracker服務器的文件路徑,即用於存儲Tracker的數據文件和日誌文件等,我這裏選擇在/opt目錄下建立一個fastdfs_tracker目錄用於存放Tracker服務器的相關文件:

mkdir /opt/fastdfs_tracker

接下來就要從新編輯上一步準備好的/etc/fdfs目錄下的tracker.conf配置文件,打開文件後依次作如下修改:

 

disabled=false #啓用配置文件(默認啓用)

port=22122         #設置tracker的端口號,一般採用22122這個默認端口

base_path=/opt/fastdfs_tracker  #設置tracker的數據文件和日誌目錄

http.server_port=6666           #設置http端口號,默認爲8080

配置完成後就能夠啓動Tracker服務器了,但首先依然要爲啓動腳本建立軟引用,由於fdfs_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服務器:

service fdfs_trackerd start

 

 

若是啓動命令執行成功,那麼同時在剛纔建立的tracker文件目錄/opt/fastdfs_tracker中就能夠看到啓動後新生成的datalogs目錄,tracker服務的端口也應當被正常監聽,最後再經過netstat命令查看一下端口監聽狀況沒有 ifconfig netstat -an 的話安裝 net-tools package

yum install net-tools

netstat -unltp|grep fdfs

 

 

確認tracker正常啓動後能夠將tracker設置爲開機啓動,打開/etc/rc.d/rc.local並在其中加入如下配置:

vim /etc/rc.d/rc.local

service fdfs_trackerd start

 

 

若是重啓後發現未能自動啓動則經過命令ll /etc/rc.d/rc.local檢查一下rc.local是否具有可執行權限,如果無可執行權限則經過chmod +x /etc/rc.d/rc.local進行受權

chmod +x /etc/rc.d/rc.local

 

Tracker至此就配置好了,接下來就能夠配置FastDFS的另外一核心——Storage

 

Storage

 

同理,步驟基本與配置Tracker一致,首先是建立Storage服務器的文件目錄,須要注意的是同Tracker相比我多建了一個目錄,由於Storage還須要一個文件存儲路徑,用於存放接收的文件:

mkdir /opt/fastdfs_storage

mkdir /opt/fastdfs_storage_data

 

接下來修改/etc/fdfs目錄下的storage.conf配置文件,打開文件後依次作如下修改:

 

disabled=false                          #啓用配置文件(默認啓用)

group_name=group1                       #組名,根據實際狀況修改

port=23000                              #設置storage的端口號,默認是23000,同一個組的storage端口號必須一致

base_path=/opt/fastdfs_storage          #設置storage數據文件和日誌目錄

store_path_count=1                      #存儲路徑個數,須要和store_path個數匹配

store_path0=/opt/fastdfs_storage_data   #實際文件存儲路徑

tracker_server=192.168.111.11:22122     #tracker 服務器的 IP地址和端口號,若是是單機搭建,IP不要寫127.0.0.1,不然啓動不成功(此處的ip是個人CentOS虛擬機ip

http.server_port=8888                   #設置 http 端口號

 

配置完成後一樣要爲Storage服務器的啓動腳本設置軟引用:

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

 

接下來就能夠啓動Storage服務了:

service fdfs_storaged start

 

 

同理,若是啓動成功,/opt/fastdfs_storage中就能夠看到啓動後新生成的datalogs目錄,端口23000也應被正常監聽,還有一點就是文件存儲路徑下會生成多級存儲目錄,那麼接下來看看是否啓動成功了

netstat -unltp|grep fdfs

 

 

能夠看到/opt/fastdfs_storage/data目錄下生成好的pid文件和dat文件,那麼再看一下實際文件存儲路徑下是否有建立好的多級目錄呢:

 

 

 

 

如上圖,能夠看到/opt/fastdfs_storage/data目錄下生成好的pid文件和dat文件,那麼再看一下實際文件存儲路徑下是否有建立好的多級目錄呢:

如上圖,沒有任何問題,data下有2561級目錄,每級目錄下又有2562級子目錄,總共65536個文件,新寫的文件會以hash的方式被路由到其中某個子目錄下,而後將文件數據直接做爲一個本地文件存儲到該目錄中。那麼最後咱們再看一下storage服務的端口監聽狀況:

 

 

如上圖,能夠看到此時已經正常監聽tracker22122端口和storage23000端口,至此storage服務器就已經配置完成,肯定了storage服務器啓動成功後,還有一項工做就是看看storage服務器是否已經登記到 tracker服務器(也能夠理解爲trackerstorage是否整合成功),運行如下命令:

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

 

 

 

如上所示,看到192.168.111.11 ACTIVE 字樣便可說明storage服務器已經成功登記到了tracker服務器,同理別忘了添加開機啓動,打開/etc/rc.d/rc.local並將以下配置追加到文件中:

vim /etc/rc.d/rc.local

service fdfs_storaged start

 

 

至此咱們就已經完成了fastdfs的所有配置,此時也就能夠用客戶端工具進行文件上傳下載的測試了。

 

初步測試

測試時須要設置客戶端的配置文件,編輯/etc/fdfs目錄下的client.conf 文件,打開文件後依次作如下修改:

 

base_path=/opt/fastdfs_tracker #tracker服務器文件路徑

tracker_server=192.168.111.11:22122 #tracker服務器IP地址和端口號

http.tracker_server_port=6666 # tracker 服務器的 http 端口號,必須和tracker的設置對應起來

配置完成後就能夠模擬文件上傳了,先給/opt目錄下放一張圖片

 

 

而後經過執行客戶端上傳命令嘗試上傳:

 

 

這就表示咱們的文件已經上傳成功了,當文件存儲到某個子目錄後,即認爲該文件存儲成功,接下來會爲該文件生成一個文件名,文件名由group、存儲目錄、兩級子目錄、fileid、文件後綴名(由客戶端指定,主要用於區分文件類型)拼接而成,以下圖:

 

 

同時在以前配置的storage服務器的實際文件存儲路徑中也能夠根據返回的路徑找到實際文件:

 

 

 

---------------------------------------------------------------------------------------

 

安裝Nginx

上面將文件上傳成功了,但咱們沒法下載。所以安裝Nginx做爲服務器以支持Http方式訪問文件。同時,後面安裝FastDFSNginx模塊也須要Nginx環境。

Nginx只須要安裝到StorageServer所在的服務器便可,用於訪問文件。我這裏因爲是單機,TrackerServerStorageServer在一臺服務器上。

 

1、安裝nginx所需環境 

gcc 安裝

# yum install gcc-c++

PCRE pcre-devel 安裝

# yum install -y pcre pcre-devel

zlib 安裝

# yum install -y zlib zlib-devel

OpenSSL 安裝

# yum install -y openssl openssl-devel

 

2、安裝Nginx

① 下載nginx

# wget -c https://nginx.org/download/nginx-1.12.1.tar.gz

② 解壓

# tar -zxvf nginx-1.12.1.tar.gz

# cd nginx-1.12.1

 

 

③ 使用默認配置

# ./configure

 

 

④ 編譯、安裝

# make

# make install

⑤ 啓動nginx

# cd /usr/local/nginx/sbin/

# ./nginx

 

 

其它命令

# ./nginx -s stop

# ./nginx -s quit

# ./nginx -s reload

 

⑥ 設置開機啓動

# vim /etc/rc.d/rc.local

添加一行:

/usr/local/nginx/sbin/nginx

 

 

# 設置執行權限

# chmod 755 rc.local

⑦ 查看nginx的版本及模塊

/usr/local/nginx/sbin/nginx -V

 

 

⑧ 防火牆中打開Nginx端口(默認的 80

添加後就能在本機使用80端口訪問了。

# vim /etc/sysconfig/iptables

添加以下端口行:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

重啓防火牆:

# service iptables restart

 

3、訪問文件

簡單的測試訪問文件

① 修改nginx.conf

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

 

添加以下行,將 /group1/M00 映射到 /ljzsg/fastdfs/file/data

location /group1/M00 {

    alias /ljzsg/fastdfs/file/data;

}

# 重啓nginx

# /usr/local/nginx/sbin/nginx -s reload

 

 

② 在瀏覽器訪問以前上傳的圖片、成功。

http://172.30.60.19/group1/M00/00/00/rB48E1rf8LGAXL2lAAB0KGv2sTo474.jpg

 

 

4、FastDFS 配置 Nginx 模塊

1、安裝配置Nginx模塊

fastdfs-nginx-module 模塊說明

 

  FastDFS 經過 Tracker 服務器,將文件放在 Storage 服務器存儲, 可是同組存儲服務器之間須要進行文件複製, 有同步延遲的問題。

 

  假設 Tracker 服務器將文件上傳到了 192.168.51.128,上傳成功後文件 ID已經返回給客戶端。

 

  此時 FastDFS 存儲集羣機制會將這個文件同步到同組存儲 192.168.51.129,在文件尚未複製完成的狀況下,客戶端若是用這個文件 ID 192.168.51.129 上取文件,就會出現文件沒法訪問的錯誤。

 

  而 fastdfs-nginx-module 能夠重定向文件連接到源服務器取文件,避免客戶端因爲複製延遲致使的文件沒法訪問錯誤。

 

② 下載 fastdfs-nginx-module、解壓

 

 

 

③ 配置Nginx

 

nginx中添加模塊

# 先停掉nginx服務

# /usr/local/nginx/sbin/nginx -s stop

 

進入解壓包目錄

# cd nginx-1.10.0/

 

# 添加模塊

# ./configure --add-module=/opt/fastdfs-nginx-module-master/src

 

從新編譯、安裝

# make && make install

 

④ 查看Nginx的模塊

# /usr/local/nginx/sbin/nginx -V

 

 

⑤ 複製 fastdfs-nginx-module 源碼中的配置文件到/etc/fdfs 目錄, 並修改

 

# cd /softpackages/fastdfs-nginx-module-master/src

# cp mod_fastdfs.conf /etc/fdfs/

 

修改以下配置,其它默認

 

# 鏈接超時時間

connect_timeout=10

 

# Tracker Server

tracker_server=file.ljzsg.com:22122

 

# StorageServer 默認端口

storage_server_port=23000

 

# 若是文件IDuri中包含/group**,則要設置爲true

url_have_group_name = true

 

# Storage 配置的store_path0路徑,必須和storage.conf中的一致

store_path0=/ljzsg/fastdfs/file

 

⑥ 複製 FastDFS 的部分配置文件到/etc/fdfs 目錄

# cd /softpackages/fastdfs-5.05/conf/

 

# cp anti-steal.jpg http.conf mime.types /etc/fdfs/

 

⑦ 配置nginx,修改nginx.conf

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

修改配置,其它的默認

 

80端口下添加fastdfs-nginx模塊

 

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

    ngx_fastdfs_module;

}

 

 

注意:

 

  listen 80 端口值是要與 /etc/fdfs/storage.conf 中的 http.server_port=80 (前面改爲80)相對應。若是改爲其它端口,則須要統一,同時在防火牆中打開該端口。

 

  location 的配置,若是有多個group則配置location ~/group([0-9])/M00 ,沒有則不用配group

 

⑧ 在/ljzsg/fastdfs/file 文件存儲目錄下建立軟鏈接,將其連接到實際存放數據的目錄,這一步能夠省略。

 

# ln -s /ljzsg/fastdfs/file/data/ /ljzsg/fastdfs/file/data/M00

 

⑨ 啓動nginx

 

 

# /usr/local/nginx/sbin/nginx

 

打印處以下就算配置成功

⑩ 在地址欄訪問。

能下載文件就算安裝成功。注意和第三點中直接使用nginx路由訪問不一樣的是,這裏配置 fastdfs-nginx-module 模塊,能夠重定向文件連接到源服務器取文件。

http://172.30.60.19/group1/M00/00/00/rB48E1rf9BGAG6W9AACCVif2Dzc224.jpg

相關文章
相關標籤/搜索