FastDFS教程Ⅰ-文件服務器安裝與Nginx配置


1.簡介

    FastDFS是一個開源的輕量級分布式文件系統,它對文件進行管理,功能包括:文件存儲、文件同步、文件訪問(文件上傳、文件下載)等,解決了大容量存儲和負載均衡的問題。特別適合以文件為載體的在線服務,如相冊網站、視頻網站等等。FastDFS為互聯網量身定制,充分考慮了冗余備份、負載均衡、線性擴容等機制,並注重高可用、高性能等指標,使用FastDFS很容易搭建一套高性能的文件服務器集群提供文件上傳、下載等服務。
    FastDFS服務端有兩個角色:跟蹤器(tracker)和存儲節點(storage)。跟蹤器主要做調度工作,在訪問上起負載均衡的作用。存儲節點存儲文件,完成文件管理的所有功能:就是這樣的存儲、同步和提供存取接口,FastDFS同時對文件的metadata進行管理。所謂文件的meta data就是文件的相關屬性,以鍵值對(key valuepair)方式表示,如:width=1024,其中的key為width,value為1024。文件metadata是文件屬性列表,可以包含多個鍵值對。跟蹤器和存儲節點都可以由一台或多台服務器構成。跟蹤器和存儲節點中的服務器均可以隨時增加或下線而不會影響線上服務。其中跟蹤器中的所有服務器都是對等的,可以根據服務器的壓力情況隨時增加或減少。
    為了支持大容量,存儲節點(服務器)采用了分卷(或分組)的組織方式。存儲系統由一個或多個卷組成,卷與卷之間的文件是相互獨立的,所有卷的文件容量累加就是整個存儲系統中的文件容量。一個卷可以由一台或多台存儲服務器組成,一個卷下的存儲服務器中的文件都是相同的,卷中的多台存儲服務器起到了冗余備份和負載均衡的作用。
    在卷中增加服務器時,同步已有的文件由系統自動完成,同步完成后,系統自動將新增服務器切換到線上提供服務。當存儲空間不足或即將耗盡時,可以動態添加卷。只需要增加一台或多台服務器,並將它們配置為一個新的卷,這樣就擴大了存儲系統的容量。FastDFS中的文件標識分為兩個部分:卷名和文件名,二者缺一不可。

2.下載FastDFS安裝包

    本手冊使用CentOS 7.0 64位操作系統,安裝文件服務器時所需下載軟件包有:

  1. libfastcommon源代碼:wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz
  2. fastdfs-nginx-module源代碼:wget http://jaist.dl.sourceforge.net/project/fastdfs/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz
  3. FastDFS源代碼:wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz
  4. nginx服務器源代碼:wget http://nginx.org/download/nginx-1.8.0.tar.gz
  5. nginx依賴的pcre庫源代碼:wget http://netassist.dl.sourceforge.net/project/pcre/pcre/8.36/pcre-8.36.zip
  6. nginx依賴的zlib庫源代碼:wget http://zlib.net/zlib-1.2.11.tar.gz

3.安裝libfastcommon

    安裝libfastcommon需進行如下操作:

  1. 復制已經下載的軟件:cp V1.0.7.tar.gz /usr/local/
  2. 進入復制后的目錄: cd /usr/local    
  3. 軟件解壓:tar -zxvf V1.0.7.tar.gz
  4. 軟件編譯:  ./make.sh
  5.  軟件安裝: ./make.sh install

    注意安裝的路徑:libfastcommon默認安裝到了/usr/lib64/這個位置。

4.安裝FastDFS

    安裝fastdfs需進行如下操作:

  1. 解壓文件:tar -zxvf V5.05.tar.gz -C /usr/local
  2. 進入軟件目錄:cd /usr/local/fastdfs-5.05/
  3. 編輯配置文件:vi make.sh   將TARGET_PREFIX=$DESTDIR/usr改成TARGET_PREFIX=$DESTDIR/usr/local
  4. 軟件編譯:  ./make.sh
  5. 軟件安裝: ./make.sh install

    編輯make.sh時,可用vi或者vim命令打開make.sh文件,進入文件后,輸入字母i表示把文件設置為可編輯模式,修改內容時,移動光標到指定內容處做修改。修改完成后,按ESC退出編輯模式,輸入:wq命令,保存並退出此次編輯。

   軟件安裝成功后,服務腳本在/etc/init.d/fdfs_storaged,/etc/init.d/fdfs_trackerd。配置文件在 /etc/fdfs/client.conf.sample,/etc/fdfs/storage.conf.sample,/etc/fdfs/tracker.conf.sample文件中。FastDFS服務腳本設置的bin目錄為/usr/local/bin/下,可在這個目錄下通過命令(cd /usr/local/bin && ls | grep fdfs)查看它自帶的腳本。

5.進行軟鏈接

FastDFS主程序設置的目錄為/usr/local/lib/,而我們的安裝目錄為/usr/lib64,所以我們需要創建/usr/lib64/下的一些核心執行程序的軟連接文件。

  1. 命令:ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
  2. 命令:ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
  3. 命令:ln -s /usr/local/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
  4. 命令:ln -s /usr/local/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

6.配置跟蹤器tracker

    配置tracker需進行如下操作:

  1. 進入配置目錄:cd /etc/fdfs
  2. 復制配置文件:cp tracker.conf.sample tracker.conf
  3. 修改配置文件:vim /etc/fdfs/tracker.conf 修改內容為文本中的base_path,base_path=/fastdfs/tracker
  4. 新建文件:mkdir -p /fastdfs/tracker (這個新建目錄就是與base_path對應的文件目錄)
  5. 開放端口:22122端口。
  6. 設置tracker開機啟動:cd /ect/init.d/ chkconfig -add fdfs_strackerd chkconfig fdfs_trackerd on (設置為開機啟動)

    遷移配置說明:為了后期方便做文件服務器遷移,當ip地址變化時,盡可能的減少文件中ip地址替換,應采用自定義Server ID的模式。具體操作為修改tracker.conf文件中的內容:

    其中storage_ids.conf在下載的文件配置包中有(如: /usr/local/fastdfs-5.05/conf/storage_ids.conf),復制這個文件與tracker.conf同目錄即可。strage_ids.conf內容如:

    在其他的配置文件中,如client.conf,storage.conf,mod_fastdfs.conf這些里面的ip地址填寫與strage_ids.conf中的ip地址一致既可。group設置也應和strage_ids.conf中的group_name一致。特別說明,client.conf,mod_fastdfs.conf中也有設置Server ID的模式,但是測試client.conf無效。

    對於tracker.conf配置文件參數解釋可以找官方文檔,地址為:http://bbs.chinaunix.net/thread-1941456-1-1.html。Centos 7.0中操作firewall端口的命令為:

  • 查看端口:firewall-cmd --list-ports
  • 開放端口:firewall-cmd --zone=public --add-port=22122/tcp --permanent   (permanent表示永久生效)
  • 重啟firewall:firewall-cmd --reload

    tracker.conf文件配置完成后,可通過tracker的命令啟動並查看是否配置成功。配置成功后在 /fastdfs/tracker/目錄下面會有logs目錄和data目錄。

  1. 啟動tracker命令:/etc/init.d/fdfs_trackerd start
  2. 查看進程命令:ps -el | grep fdfs
  3. 停止tracker命令:/etc/init.d/fdfs_trackerd stop
  4. 目錄命令:cd /fastdfs/tracker/ && ll

7.配置存儲器storage

    配置storage需進行如下操作:

  1. 進入配置目錄:cd /etc/fdfs
  2. 復制配置文件:cp tracker.conf.sample storage.conf
  3. 修改配置文件:vim /etc/fdfs/storage.conf 修改內容為以下定義項:
  • base_path=/fastdfs/storage
  • store_path0=/fastdfs/storage
  • tracker_server=192.168.3.159:22122(為服務器的外面ip地址,與自定義的storage_ids.conf里面的ip保持一致) 
  • http.server_port=8888
  1. 新建文件:mkdir -p /fastdfs/storage (這個新建目錄就是與base_path對應的文件目錄)
  2. 開放端口:23000端口。
  3. 設置storage開機啟動:cd /ect/init.d/ chkconfig -add fdfs_storaged chkconfig fdfs_storaged on (設置為開機啟動)

    對於storage.conf配置文件參數解釋可以找官方文檔,地址為:http://fredlong.iteye.com/blog/2287899。 storage.conf文件配置完成后,可通過storage的命令啟動並查看是否配置成功。配置成功后在 /fastdfs/storage/目錄下面會有logs目錄和data目錄。

  1. 啟動storage命令:/etc/init.d/fdfs_storaged start
  2. 查看進程命令:ps -el | grep fdfs
  3. 停止storage命令:/etc/init.d/fdfs_storaged stop
  4. 目錄命令:cd /fastdfs/storage/ && ll

8.文件服務器測試

    測試文件服務器是否可用需進行如下操作:

  1. 進入配置文件:cd /etc/fdfs/
  2. 復制客戶端配置文件:cp client.conf.sample client.conf
  3. 編輯配置文件:命令:vim /etc/fdfs/client.conf ,修改內容:base_path=/fastdfs/tracker,tracker_server=192.168.3.159:22122
  4. 調用上傳命令上傳文件:/usr/local/bin/fdfs_upload_file /etc/fdfs/client.conf /root/fastdfsdownfile/V1.0.7.tar.gz   (執行上傳文件命令成功時,會返回上傳文件所在的位置。)

9.nginx插件安裝

  1. 安裝gcc環境包:yum groupinstall "Development Tools"
  2. 安裝pcre:unzip -f pcre-8.36.zip , cd pcre-8.36,./configure,make && make install (分為四步執行)
  3. 安裝zlib:tar -zxvf zlib-1.2.11.tar.gz,cd zlib-1.2.11,./configure,make && make install

    安裝nginx插件:

  1. 解壓文件:tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
  2. 修改配置文件:cd fastdfs-nginx-module/src/  vi config  修改內容為CORE_INCS="$CORE_INCS  /usr/local/include/fastdfs /usr/local/include/fastcommon/"  改成CORE_INCS="$CORE_INCS  /usr/local/include/fastdfs /usr/include/fastcommon/"
  3. 復制配置文件mod_fastdfs.conf:cp  mod_fastdfs.conf /etc/fdfs
  4. 修改配置文件mod_fastdfs.conf:修改配置如下:

         vi /etc/fdfs/mod_fastdfs.conf 
          group_name=group1
          tracker_server=192.168.3.159:22122
          store_path0=/fastdfs/storage
          base_path=/fastdfs/storage
          url_have_group_name = true

    在文件末尾添加以下信息

          [group1] 
          group_name=group1 
          storage_server_port=23000 

          store_path_count=1 

  5. 文件復制:復制FastDFS里的2個文件,到/etc/fdfs目錄中。cp /usr/local/fastdfs-5.05/conf/http.conf /etc/fdfs/,cp /usr/local/fastdfs-5.05/conf/mime.types /etc/fdfs/

  6. 創建一個軟連接:在/fastdfs/storage文件存儲目錄下創建軟連接,將其鏈接到實際存放數據的目錄。命令:ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00

10.nginx安裝及綁定

    在每個Storage服務器上安裝Nginx:

  1. 解壓文件:tar -zxvf nginx-1.8.0.tar.gz
  2. 進入目錄: cd nginx-1.8.0
  3. 設置配置:./configure --./configure --add-module=/usr/local/fast/fastdfs-nginx-module/src/      (add-module=/${fastdfs-nginx-module安裝目錄}/fastdfs-nginx-module/src) 
  4. 編譯:make
  5. 安裝:make install
  6. 設置nginx配置文件:cd /usr/local/nginx/conf ,  vi nginx.conf
  7. 開放端口:8888。
  8. nginx.conf文件修改內容為:

    listen 8888;
    server_name localhost;
    location ~/group([0-9])/M00 {
    root /fastdfs/storage/data;
    ngx_fastdfs_module;
    }

    注意:nginx里的端口要和配置FastDFS存儲中的storage.conf文件配置一致,
    也就是(http.server_port=8888)

     最后檢查防火牆,然后啟動nginx服務。啟動成功后網頁訪問如下:

  • 啟動命令:/usr/local/nginx/sbin/nginx
  • 重新啟動命令:cd /usr/local/nginx/sbin ./nginx -s reload

    上傳測試文件並通過網頁訪問效果如下:

 

 

   

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM