1. 程式人生 > >(5)Centos6.X安裝FastDFS(偽分佈)

(5)Centos6.X安裝FastDFS(偽分佈)

1.什麼是FastDFS

      FastDFS是用c語言編寫的一款開源的分散式檔案系統。FastDFS為網際網路量身定製,充分考慮了冗餘備份、負載均衡、線性擴容等機制,並注重高可用、高效能等指標,使用FastDFS很容易搭建一套高效能的檔案伺服器叢集提供檔案上傳、下載等服務。
     FastDFS架構包括 Tracker serverStorage server。客戶端請求Tracker server進行檔案上傳、下載。通過Tracker server排程最終由Storage server完成檔案上傳和下載。Tracker server作用是負載均衡和排程,通過Tracker server

在檔案上傳時可以根據一些策略找到Storage server提供檔案上傳服務。可以將tracker稱為追蹤伺服器或排程伺服器。Storage server作用是檔案儲存,客戶端上傳的檔案最終儲存在Storage伺服器上,Storage server沒有實現自己的檔案系統而是利用作業系統 的檔案系統來管理檔案。可以將storage稱為儲存伺服器。

如下圖:

這裡寫圖片描述

在本篇部落格中就介紹一下如何安裝FastDFS的偽分佈,並且通過http訪問我們上傳的圖片。

2.安裝環境

      在安裝FastDFS偽分佈之前,首先說一下我電腦的配置。

  • 作業系統:Centos6.7
  • 安裝軟體使用root
    使用者(害怕某些許可權不夠)
  • FastDFS的版本為v5.05
  • nginx的版本為1.8.0
  • 本機的內網ip地址為:192.168.232.131(很重要)
  • tracker的儲存地址為:/usr/local/fastdfs/home
  • storage的儲存地址為:/usr/local/fastdfs/storage
  • storage的日誌地址為:/usr/local/fastdfs/home (偽分佈,為了方便,設定的和tracker儲存地址一樣,也可以不一樣)

3.安裝FastDFS

3.1 安裝FastDFS依賴

#在Centos6.7s上不需要執行此命令(自帶)
yum -y install gcc-c++
#FastDFS依賴libevent庫
yum -y install libevent

3.2 安裝libfastcommon

      libfastcommonFastDFS官方提供的,libfastcommon包含了FastDFS執行所需要的一些基礎庫。libfastcommon的下載地址為:libfastcommon下載連結

  • libfastcommon上傳linux,並解壓縮
#解壓檔案
tar -zxvf ibfastcommonV1.0.7.tar.gz
#進入資料夾
cd libfastcommon-1.0.7
#編譯檔案
./make.sh
#安裝libfastcommon
./make.sh install
#libfastcommon安裝好後會自動將庫檔案拷貝至/usr/lib64下,由於FastDFS程式引用usr/lib目錄所以需要將/usr/lib64下的庫檔案拷貝至/usr/lib下
cp /usr/lib64/libfastcommon.so /usr/lib/

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

3.3 FastDFS編譯安裝

  • FastDFS上傳並編譯安裝tracker
#解壓壓縮包
tar -zxvf FastDFS_v5.05.tar.gz
#進入FastDFS目錄
cd FastDFS
#編譯FastDFS
./make.sh
#安裝FastDFS,安裝成功,會生成/etc/fdfs目錄
./make.sh install
#將conf目錄下的配置檔案拷貝到/etc/fdfs
cp conf/* /etc/fdfs/
  • 修改tracker的配置檔案
#建立`tracker`的儲存目錄
mkdir -p /usr/local/fastdfs/home
#使用tracker.conf.sample覆蓋掉原有的tracker.conf
cp tracker.conf.sample tracker.conf
#修改/etc/fdfs/tracker.conf檔案
vim /etc/fdfs/tracker.conf
#修改/etc/fdfs/tracker.conf檔案的base_path變數為我們剛建立的目錄
base_path=/usr/local/fastdfs/home
#啟動tracker服務
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
#檢視服務是否啟動成功
ps -aux|grep tracker
#配置開機自啟動(在/etc/rc.d/rc.local)檔案中新增如下命令
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

修改內容

這裡寫圖片描述

啟動成功

這裡寫圖片描述

開機自啟動

這裡寫圖片描述

  • 安裝storage,修改配置檔案 storage.conf
#建立storage儲存目錄
mkdir -p /usr/local/fastdfs/storage
#編輯配置檔案
vim /etc/fdfs/storage.conf
#修改的內容有
#預設group_name=group1,這裡不需要修改
group_name=group1
#修改base_path:這裡是日誌檔案,使用tracker建立的檔案/usr/local/fastdfs/home
base_path=/usr/local/fastdfs/home
#修改store_path0,為實際儲存路徑/usr/local/fastdfs/storage,如果有多個路徑還可以新增(store_path1=..  store_path2=......)
store_path0=/usr/local/fastdfs/storage
#指定tracker的地址(哪怕是偽分佈,此處也千萬不要寫localhost)
tracker_server=192.168.232.131:22122
#啟動storage服務
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
#檢視服務是否啟動
ps -aux|grep storage
#配置服務自啟動,在(/etc/rc.d/rc.local)檔案中新增下面程式碼
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

這裡寫圖片描述

3.4 驗證FastDFS是否安裝成功

  • 修改配置檔案用於驗證
#編輯/etc/fdfs/client.conf檔案
vim /etc/fdfs/client.conf
#修改base_path引數和tracker_server引數
base_path=/usr/local/fastdfs/home
tracker_server=192.168.232.131:22122

這裡寫圖片描述

  • 驗證檔案是否可以上傳
#將/root/software/test.png上傳到FastDFS伺服器
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /root/software/test.png

上傳成功

這裡寫圖片描述

4.FastDFSnginx整合

      由於現在還沒有和nginx整合,所以無法在瀏覽器中檢視上傳的圖片,要想實現FastDFSnginx整合,需要使用FastDFS 所提供的整合包FastDFS-nginx-module_v1.16.tar.gzFastDFS-nginx-module_v1.16.tar.gz的下載連結為:FastDFS-nginx-module_v1.16.tar.gz下載連結
      由於我們是搭建的是偽分佈,只有一臺電腦,所以就不需要考慮nginx安裝位置問題。

4.1 安裝整合模組

#解壓安裝包
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
#進入安裝檔案src目錄
cd fastdfs-nginx-module/src/
#修改配置檔案config,將/usr/local/路徑改為/usr/(一共修改三處,如下圖所示)
#將src目錄的mod_FastDFS.conf複製到/etc/fdfs/目錄下面
cp mod_fastdfs.conf /etc/fdfs/
#修改mod_fastdfs.conf檔案的內容,base_path、tracker_server(可配置多個)、url_have_group_name、store_path0(可配置多個)
base_path=/usr/local/fastdfs/home
tracker_server=192.168.232.131:22122
url_have_group_name=true
store_path0=/usr/local/fastdfs/storage
#將libfdfsclient.so拷貝至/usr/lib下
cp /usr/lib64/libfdfsclient.so /usr/lib/
#建立nginx/client目錄
mkdir -p /var/temp/nginx/client

config配置檔案

這裡寫圖片描述

4.2 安裝nginx

  • 安裝nginx依賴庫
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
  • 安裝nginx
#上傳nginx,並解壓
tar -zxvf nginx-1.8.0.tar.gz
#進入nginx目錄
cd nginx-1.8.0
#建立nginx臨時目錄
mkdir -p /var/temp/nginx
#配置nginx(prefix配置nginx的安裝目錄,add-module指定我們的整合外掛地址)
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/root/software/fastdfs-nginx-module/src
#編譯
make
#安裝(會在/usr/local/下生成nginx資料夾)
make install
  • 修改nginx的配置檔案(nginx.conf,修改該檔案的Server節點,如下)
 server {
        listen       80;
        server_name  192.168.232.131;
        location /group1/M00/{
            ngx_fastdfs_module;
        }
    }

這裡寫圖片描述

備註:
server_name是本機的ip地址(不要寫localhost)
/group1/M00/是根據我們上傳的圖片的地址確定的

  • 啟動nginx
#啟動nginx命令
./nginx
#重新載入nginx命令
./nginx -s reload

這裡寫圖片描述