FastDFS分佈式文件存儲搭建

FastDFS分佈式文件存儲,具體介紹不在闡述,有不少相關的資料介紹。這裏描述一下FastDFS存儲應用的搭建過程:html

1、環境:java

一、操做系統 :centos6.5nginx

二、FastDFS版本: 5.0.8c++

三、Nginx版本: 1.8.1git

2、架構規劃:github

說明:vim

使用最小架構,構建一組存儲系統centos

一、使用一個tracker 追蹤節點,同時部署Nginx ,作 Storage 上Nginx的反向代理;瀏覽器

二、使用兩個Storage存儲節點,同時部署Nginx,支持http在線預覽文件、http下載。服務器

3、具體部署操做:

一、下載並安裝FastDFS依賴包libfastcommon

wget https://codeload.github.com/happyfish100/libfastcommon/zip/master

unzip master

 cd libfastcommon-master/

./make.sh

./make.sh install

二、下載並安裝FastDFS 

wget http://jaist.dl.sourceforge.net/project/fastdfs/FastDFS%20Server%20Source%20Code/FastDFS%20Server%20with%20PHP%20Extension%20Source%20Code%20V5.08/FastDFS_v5.08.tar.gz

tar xf FastDFS_v5.08.tar.gz
cd FastDFS
./make.sh && ./make.sh install

三、採用默認方式安裝後的文件及目錄:

ll /etc/init.d/ |grep fdfs

ll /etc/fdfs/

ll /usr/bin|grep fdfs

以上三個步驟在 三臺機器上一樣的操做。

 

四、配置跟蹤服務器(tracker server)

1)拷貝tracker server和client端樣例配置文件並重命名

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

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

 

2)編輯tracker server配置文件tracker.conf,這裏須要注意的是你的服務器磁盤掛載的目錄空間

可使用:df -h 命令查看,配置base_path路徑應該是設置到大存儲空間的路徑裏,這個是FastDFS文件存儲的實際路徑。

disabled=false(默認爲false,表示是否無效)
port=22122(默認爲22122)
base_path=/opt/fastdfs/tracker

 

3)編輯client端的配置文件client.conf

base_path=/data/fastdfs/tracker
tracker_server=192.168.1.72:22122

 

4)建立tracker server數據目錄,就是上面配置的base_path路徑

mkdir -p /opt/fastdfs/tracker

 

5)測試啓動tracker server,查看22122端口是否監聽

/etc/init.d/fdfs_trackerd start
ss -lntup|grep 22122

 

五、配置存儲服務器(storage server)

1)拷貝storage server樣例配置文件並重命名

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

 

2)編輯storage server配置文件storage.conf

disabled=false(默認爲false,表示是否無效)
    port=23000(默認爲23000)
    base_path=/opt/fastdfs/storage
    tracker_server=192.168.1.72:22122
    store_path0=/opt/fastdfs/storage
    http.server_port=8888(默認爲8888,nginx中配置的監聽端口)

3)建立storage server數據目錄

mkdir -p /data/fastdfs/storage

 

4)測試啓動storage server,查看23000端口是否已經監聽(啓動storage server的前提是tracker server必須事先已啓動)

/etc/init.d/fdfs_storaged start
ss -lntup|grep 23000

5)安裝並配置nginx

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

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

cd fastdfs-nginx-module/src/

vim config

編輯config文件,執行以下命令進行批量替換並保存退出
:%s+/usr/local/+/usr/+g

6)拷貝fastdfs-nginx-module模塊中配置文件到/etc/fdfs目錄中並編輯

cp /home/oldcat/tools/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
vi /etc/fdfs/mod_fastdfs.conf

修改內容以下:
connect_timeout=10
base_path=/tmp(默認爲/tmp ,請使用這個默認路徑,修改路徑的話,有可能http預覽文件失敗)
tracker_server=192.168.1.72:22122
storage_server_port=23000(默認配置爲23000)
url_have_group_name = true
store_path0=/opt/fastdfs/storage
group_name=group1(默認配置爲group1)

7)安裝nginx依賴庫,而且安裝Nginx

yum install -y pcre-devel zlib-devel

wget http://nginx.org/download/nginx-1.8.1.tar.gz

tar xf nginx-1.8.1.tar.gz 

cd nginx-1.8.1

./configure --prefix=/application/nginx/ --add-module=../fastdfs-nginx-module/src/

make && make install

若是過程提示 gcc 等依賴安裝,就添加安裝gcc

yum install gcc-c++

8)拷貝FastDFS中的部分配置文件到/etc/fdfs目錄中

cp /home/oldcat/tools/FastDFS/conf/http.conf /etc/fdfs/
cp /home/oldcat/tools/FastDFS/conf/mime.types /etc/fdfs/

9)配置nginx

vi /application/nginx/conf/nginx.conf

配置如下內容:
user  root;    
    worker_processes  1;
    events {
       worker_connections  1024;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;
        server {
            listen       8888;
            server_name  localhost;
            location ~/group[0-9]/ {
                ngx_fastdfs_module;
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
            root   html;
            }
        }
    }

10)啓動Nginx,並查看8888端口是否已經監聽:

cd /application/nginx/sbin/

./nginx

ss -lntup|grep 8888

在另一臺Storage 服務器上一樣的安裝和配置

 

六、配置Tracker服務器上Nginx,固然也能夠把Nginx單獨安裝在另一臺服務器上:

1)安裝gcc編譯器

yum install gcc-c++

2)安裝openssl,能夠支持https

yum install openssl openssl-devel   -y

3)下載Nginx

wget http://nginx.org/download/nginx-1.8.1.tar.gz

4)解壓安裝

tar xf nginx-1.8.1.tar.gz
cd nginx-1.8.1
./configure --prefix=/application/nginx/ --with-http_ssl_module      
make && make install

5)配置nginx.conf 配置文件

cd /application/nginx/conf/

vi nginx.conf

修改如下配置:

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

   upstream fdfs_group1 {
       server 192.168.1.79:8888 weight=1 max_fails=2 fail_timeout=30s;
       server 192.168.1.73:8888 weight=1 max_fails=2 fail_timeout=30s;
    }


    server {
        listen       8888;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location ~/group[0-9]/ {

         proxy_pass http://fdfs_group1;
        }

主要是增長  upstream fdfs_group1 配置,

配置Storage服務器上的Nginx 的反向代理

location ~/group[0-9]/ {

         proxy_pass http://fdfs_group1;
  }

七、防火牆端口配置:

請參考這篇文章裏的打開防火牆端口配置 :http://www.javashuo.com/article/p-nhyhicib-v.html

八、啓動各個服務:

啓動tracker
/etc/init.d/fdfs_trackerd start

啓動兩個storage

/etc/init.d/fdfs_storaged start

九、測試文件上傳:

首先傳一張圖片到tracker 服務上的 home目錄下,而後執行命令上傳到FastDFS文件存儲

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /home/889.jpg

存儲會返回相似這樣的文件路徑:
group1/M00/00/00/wKgBT1sfnFeATLAXAAA1zm8yF5M375.jpg

而後打開瀏覽器,輸入 http://192.168.1.72:8888/group1/M00/00/00/wKgBT1sfnFeATLAXAAA1zm8yF5M375.jpg

正常狀況下瀏覽器能夠直接加載這張上傳後的圖片。

十、配置各個服務開機自啓動項:

1)tracker服務器

vi /etc/rc.d/rc.local 

而後添加:
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
/application/nginx/sbin/nginx

 

2)storage服務器

vi /etc/rc.d/rc.local 

而後添加:
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
/application/nginx/sbin/nginx

 

以上整個文件存儲搭建完成。

相關文章
相關標籤/搜索