Linux搭建FastDFS單機版

前言

使用FastDFS文件服務器主要分爲兩大步。

第一步·FastDFS系統環境搭建

第二部·配置 Nginx 模塊及訪問測試

在本文你可以一站式從搭建到使用一一瞭解到。

 

正文

介紹

FastDFS特別適合以中小文件(建議範圍:4KB < file_size <500MB)爲載體的在線服務。

FastDFS 系統有三個角色,跟蹤服務器(Tracker Server)、存儲服務器(Storage Server)和客戶端(Client)。

  • Tracker Server: 跟蹤服務器,主要做調度工作,起到均衡的作用;負責管理所有的 storage server
  • 和 group,每個 storage 在啓動後會連接 Tracker,告知自己所屬 group 等信息,並保持週期性心跳。
  • Storage Server:存儲服務器,主要提供容量和備份服務;以 group 爲單位,每個 group 內可以有多臺 storage server,數據互爲備份。
  • Client:客戶端,上傳下載數據的服務器,也就是我們自己的項目所部署在的服務器
     

網上偷個圖

 

FastDFS 在 CentOS 下配置安裝部署

我的所有下載操作都是在 /usr/local 下進行的。

一、安裝 libfastcommon 和 FastDFS

1.下載libfastcommon

wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz

2.解壓libfastcommon

tar -zxvf V1.0.7.tar.gz

3.編譯,進入libfastcommon-1.0.7目錄:

cd libfastcommon-1.0.7/
./make.sh

安裝

./make.sh install

顯示這樣的畫面,就是安裝 libfastcommon 成功啦。

 

4.下載安裝 FastDFS

wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz

5.解壓FastDFS

tar -zxvf V5.05.tar.gz

6.編譯,進入fastfds-5.05目錄

cd fastdfs-5.05/
./make.sh

安裝

./make.sh install

顯示這樣的畫面,就是安裝 FastDFS 成功啦。

如果上述所有步驟都成功,那麼接下來我們可以配置我們都服務了。

二.配置 Tracker 服務

 cd /etc/fdfs/
 cp tracker.conf.sample tracker.conf
vim tracker.conf

 

// 編輯tracker.conf文件,找到你需要修改的兩個參數就可以了,我這裏不做修改,用默認的
# the base path to store data and log files // 數據和日誌的存放目錄
base_path=/home/yuqing/fastdfs   //默認的

# HTTP port on this tracker server // http服務端口,默認8080,如果跟你其他服務有衝突就改成8070
http.server_port=8070

 

創建tracker的工作目錄

mkdir -p /home/yuqing/fastdfs

啓動tracker服務:

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

查看啓動成功

 ps -ef|grep fdfs
 netstat -lnpt|grep fdfs

這時候就算 Tracker服務安裝成功啦!

 

三、配置 Storage 服務

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

找到下面參數進行修改:

# the base path to store data and log files // 數據和日誌的存放目錄
base_path=/home/yuqing/fastdfs  //使用默認的

# path(disk or mount point) count, default value is 1 // storage在存儲文件時支持多路徑,默認只設置一個(下面store_path0配置的數量個數)
store_path_count=1

# store_path#, based 0, if store_path0 not exists, it's value is base_path // 配置多個store_path路徑,從0開始,如果store_path0不存在,則base_path必須存在
# the paths must be exist
// 此處可以配置多個路徑,如:store_path0=xx, store_path1=xx,store_path2=xx
// 多個項目的文件按照文件夾分割,通過/usr/bin/fdfs_upload_file <config_file> <local_filename> [storage_ip:port] [store_path_index] 選擇storage服務器和store_path角標上傳到相應的項目下
store_path0=/home/yuqing/fastdfs

# tracker_server can ocur more than once, and tracker_server format is // 設置tracker_server
#  "host:port", host can be hostname or ip address
tracker_server=xx.xx.xx.xx:22122  //使用tracker服務的服務器ip,端口用這個

 

在啓動Storage前,我們要保證22122和23000端口在服務器的出入都是通的,要不然啓動失敗,修改完後執行啓動命令

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

22122 和 23000端口都在監聽了,這個時候你去/home/yuqing/fastdfs文件夾下看的話,會出現一大堆文件夾,而且進去還有一大堆,這就是存放文件的啦!
到這裏,我們安裝配置並啓動了 Tracker 和 Storage 服務。

我們檢查他倆是不是在通信,下面我們監聽一下

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

紅線處ACTIVE這樣就 ok 啦!

四、配置 fdfs_upload_file 上傳文件

cd /etc/fdfs/
cp client.conf.sample client.conf
vim client.conf

這個就是配置我們的客戶端,將來這就是用java程序上傳

# the base path to store log files // 日誌的存放目錄
base_path=/home/yuqing/fastdfs //還是一樣,使用默認的

# tracker_server can ocur more than once, and tracker_server format is // tracker_server服務的地址和端口號
#  "host:port", host can be hostname or ip address
tracker_server=xx.xx.xx.xx:22122  //這個是tracker服務器的ip地址,端口保留

這時候我們使用命令進行上傳文件,我在服務器的tmp目錄下準備了一個圖,在tmp目錄下執行:

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf timg.jpeg group1/M01/00/00/timgaa.jpg

文件上傳後會返回文件所在路徑,我們只要把這路徑保存起來,後續集成Nginx我們就可以訪問到上傳的文件了。

 

四、配置Nginx 使用 fastdfs-nginx-module 模塊

在這之前我們要安裝一個nginx,這屬於附加內容,如果小夥伴的服務器有nginx略過

cd /usr/local/
1.下載安裝 nginx
wget http://nginx.org/download/nginx-1.15.0.tar.gz
2.解壓 nginx
tar -zxvf nginx-1.15.0.tar.gz
3.編譯&安裝
cd /usr/local/nginx-1.15.0
./configure
make
make install
4.啓動
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

整個過程大概就是這樣,如果在安裝編譯的時候有錯誤,請百度nginx相關依賴的安裝和下載,很簡單的。

1.下載fastdfs-nginx-module模塊

wget https://nchc.dl.sourceforge.net/project/fastdfs/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz

2.解壓fastdfs-nginx-module_v1.16.tar.gz

tar -zxvf fastdfs-nginx-module_v1.16.tar.gz

3.配置 nginx 安裝,加入fastdfs-nginx-module模塊

這步很關鍵,我們需要切換到ngixn源碼帶有configure目錄下執行,根據你們fastdfs-nginx-module相應地址靈活變更一下

./configure --prefix=/usr/local/nginx  --add-module=/usr/local/fastdfs-nginx-module/src/

然後編譯一下執行

make

然後

cp objs/nginx /usr/local/nginx/sbin/nginx
yes

啓動nginx

/usr/local/nginx/sbin/nginx

查看是否模塊假如成功

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

紅色圈圈內是當前nginx已經安裝的模塊

 

五.配置fastdfs-nginx-module 模塊

1.拷貝mod-fastdfs.conf到/etc/fdfs文件目錄下,配置mod-fastdfs.conf

進入目錄fastdfs-nginx-module

cp mod_fastdfs.conf /etc/fdfs/
vim /etc/fdfs/mod_fastdfs.conf

修改文件

tracker_server=xx.xx.xx.xx:22122 //修改成tracker服務器的ip

# if the url / uri including the group name
# set to false when uri like /M00/00/00/xxx
# set to true when uri like ${group_name}/M00/00/00/xxx, such as group1/M00/xxx
# default value is false
url_have_group_name = true

# store_path#, based 0, if store_path0 not exists, it's value is base_path
# the paths must be exist
# must same as storage.conf
store_path0=/home/yuqing/fastdfs

我們需要把fastdfs-5.05下面的配置中還沒有存在/etc/fdfs中的拷貝進去

cd /usr/local/fastdfs-5.05/conf/
 cp anti-steal.jpg http.conf mime.types /etc/fdfs/
 cd /etc/fdfs/

 

2.配置 Nginx。編輯nginx.conf文件

cd /usr/local/nginx/conf
vim nginx.conf

修改

location /group1/M00 {
    root /home/yuqing/fastdfs/data/; // 文件上傳存放目錄
    ngx_fastdfs_module;
}

 

重啓nginx

./nginx -s reload 

 

測試

還記得前面我們已經上傳了一個文件了嗎,把生成的地址保留,然後加上你服務器的地址請求

 

成功啦!!!

日落了,

下班了,今天再見。

下面是用java客戶端進行文件上傳的代碼地址

https://github.com/362460453/PublicPlatform/tree/master/file-demo

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章