centos 系統下安裝FastDFS+nginx+fastdfs-nginx-module安裝配置

來源:互聯網
上載者:User

標籤:

前言:

以前的項目上傳的檔案都是儲存到本地或者是區域網路內的共用資料夾下,由於資料量,伺服器的負載平衡(分機的某些圖片無法訪問的問題處理)等因素的情況下,就想到用fastdfs來檔案管理,花了幾天時間硬著頭皮去學習怎樣安裝配置,由於linux基礎不好,安裝配置起來感覺有點費力,不得不隨時去尋找一些資料,好在經過這幾天的努力安裝配置fastdfs最終還是搞定了,最終的付出並沒有白費,以下是個人的見解,如有誤差,請多多指導。不瞭解fastdfs的童鞋可以先去瞭解下,請看http://tech.uc.cn/?p=221

一、簡介

FastDFS是一個開源的輕量級Distributed File System,它對檔案進行管理,功能包括:檔案儲存體、檔案同步、檔案訪問(檔案上傳、檔案下載)等,解決了大型存放區和負載平衡的問題。特別適合以檔案為載體的線上服務,如相簿網站、視頻網站等等

 1.fastdfs架構如示:

FastDFS服務端有三個角色:Tracing Service器(tracker server)、儲存伺服器(storage server)和用戶端(client)。

  • tracker server:Tracing Service器,主要做調度工作,起負載平衡的作用。在記憶體中記錄集群中所有儲存群組和儲存伺服器的狀態資訊,是用戶端和資料服務器互動的樞紐。相比GFS中的master更為精簡,不記錄檔案索引資訊,佔用的記憶體量很少。
  • storage server:儲存伺服器(又稱:儲存節點或資料服務器),檔案和檔案屬性(meta data)都儲存到儲存伺服器上。Storage server直接利用OS的檔案系統調用管理檔案。
  • client:用戶端,作為業務請求的發起方,通過專有介面,使用TCP/IP協議與跟蹤器伺服器或儲存節點進行資料互動。

、檔案上傳和下載的互動過程

上傳機制:

上傳流程:

用戶端(client)詢問Tracker server上傳到的Storage server

1.client->Tracker server(返回一台可用的Storage server,返回的資料為該Storage server的IP地址和連接埠)

2.client直接與1返回的Storage server建立串連->檔案上傳成功後->Storage server會返回新產生的檔案ID->結束

 檔案下載流程的步驟如下:

1. client詢問Tracker server可以下載指定檔案的Storage server,參數為檔案ID(包含組名和檔案名稱);

2. Tracker server返回一台可用的Storage server;

3. client直接和該Storage server建立串連,完成檔案下載。

系統內容Centor7 64位,本文只安裝一個tracker和storage在同一台伺服器

準備安裝包

首先下載如下的安裝包(,請查看本文最後的部分):

三、安裝過程

由於fastdfs5.0.5依賴libevent,所以我們先安裝libevent,其中openssl,pcre,zlib是nginx的依賴,由於需要使用apt-get命令安裝軟體,但此處出現資源停用情況或者無效的指令,所以需要手動去安裝這些依賴確實會很麻煩,下文會說到,此處是先解釋的檔案,以防有些童鞋誤導。

安裝步驟如下:

登陸linux系統,切換使用者到root使用者下

1.安裝libevent

 cd /root(對應存放libevent壓縮檔的目錄)

tar -zxvf libevent-2.0.22-stable.tar.gz

cd libevent-2.0.22-stable

make clean 
./configure 
 make

 make install 

最後,如果是

32位linux:

ln –s /usr/local/libevent/libevent-2.0.so.5 /usr/lib/

64位linux:

ln -s /usr/local/libevent/libevent-2.0.so.5 /usr/lib64/

2.FastDFS安裝

tar -zxvf FastDFS_v4.06.tar.gz

cd  FastDFS_v4.06

./make.sh

./make.sh install 

如果沒報錯就表示安裝成功了,建立了上面的軟連結安裝基本就沒問題了

2.1:安裝成功後,/etc/fdfs目錄下會有相關設定檔:

client.conf

http.conf

mime.types

storage.conf

tracker.conf

修改設定檔:

配置tracker

gedit tracker.conf

2.2:修改設定檔的這幾項(根據資料情況修改):

disabled= false         #啟用設定檔 port=22122           #設定tracker的連接埠號碼 base_path= /data/fastdfs/trackerd    #設定tracker的資料檔案和日誌目錄(需預先建立) http.server_port=18080      #設定http連接埠號碼啟動trackerd服務/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf如需要的開機自動開啟的情況: # echo ‘/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart‘ >> /etc/rc.d/rc.local

通過如下命令查看trackerd服務是否啟動:

netstat -tupln | grep trackerd 

也可以通過查看記錄檔看下有沒有出錯(/data/fastdfs/tracker/logs是前面配置的路徑),如果沒有報錯,應該trackerd服務啟動了。

配置storage.conf

gedit storage.conf

disabled= false             #啟用設定檔  group_name=group1          #組名,根據實際情況修改 port=23000                 #設定storage的連接埠號碼 base_path= /data/fastdfs/storage    #設定storage的日誌目錄(需預先建立)  store_path_count=1         #儲存路徑個數,需要和store_path個數匹配  store_path0= /data/fastdfs/storage   #儲存路徑 tracker_server=192.168.188:22122  #tracker伺服器的IP地址和連接埠號碼  http.server_port=80      #設定http連接埠號碼啟動trackerd服務/usr/local/bin/fdfs_ storage  /etc/fdfs/storage.conf 設定開機啟動 # echo ‘/usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf restart‘ >> /etc/rc.d/rc.local

通過如下命令查看storaged服務是否啟動:

netstat -tupln | grep storaged 

也可以通過查看記錄檔看下有沒有出錯(/data/fastdfs/storage/logs是前面配置的路徑),如果沒有報錯,應該storaged服務啟動了

配置http.conf中有防盜鏈的,可以根據需要配置一下,:

http.anti_steal.check_token=true
http.anti_steal.token_ttl=900http.anti_steal.secret_key=FastDFSSecretKey001http.anti_steal.token_check_fail=/data/fastdfs/img/anti-steal.jpg

http.anti_steal.check_token:是否開啟防盜鏈,預設為false
http.anti_steal.token_ttl:防盜鏈token的有效時間長度
http.anti_steal.secret_key:產生token的密鑰
http.anti_steal.token_check_fail:如果是防盜鏈,需要展示的圖片路徑

配置client並測試上傳

gedit client.conf

修改設定檔的這幾項(根據資料情況修改):
base_path=/data/fastdfs/client
tracker_server=192.168.1.188:22122

那麼接下來就可以進行一個簡單檔案上傳測試了

cd /usr/local/bin

上傳的是client.conf ,執行成功會返回對應的組+M00+圖片的相對路徑(也即上述storage配置的路徑)。

如果需要用瀏覽器訪問該圖片,就需要nginx來做反向 Proxy,直接存取是不行的。

那麼接下來就需要安裝和配置nginx,文章的開篇說到,openssl,pcre,zlib是nginx的依賴,如果不能使用命令安裝自動安裝的話,就需要手動的一個個安裝

安裝nginx依賴(以下使用的版本是個人使用。並沒有特別的意思)

1.安裝pcre

擷取pcre編譯安裝包,在http://www.pcre.org/上可以擷取當前最新的版本

解壓縮pcre-8.31.tar.gz包。

進入解壓縮目錄,執行./configure。

依次執行make 和 make install命令

2.安裝openssl

擷取openssl編譯安裝包,在http://www.openssl.org/source/上可以擷取當前最新的版本。

解壓縮openssl-1.0.2h.tar.gz包。

進入解壓縮目錄,執行./config。

依次執行make 和 make install命令

3.安裝zlib

擷取zlib編譯安裝包,在http://www.zlib.net/上可以擷取當前最新的版本。

解壓縮zlib-1.2.5.tar.gz包。

進入解壓縮目錄,執行./configure。

依次執行make 和 make install命令

4.那麼到現在為止:nginx的相依模組都已經安裝完畢,接著可以進行安裝nginx

tar -zxvf nginx-1.10.1.tar.gz  

cd nginx-1.10.1

./configure --prefix=/usr/local/nginx      (--prefix是安裝到那個目錄下)

make

make install

5.安裝完nginx後進行nginx的配置

cd /usr/local/nginx/conf 

gedit nginx.conf 

在server節點加入下面的配置

location /group1/M00{
root /fastdfs/storage/data;
ngx_fastdfs_module;
}

這個時候你監聽的連接埠後預設是80,之前我配置storage檔案的時候的http.server_port就有用到80,如需要改其他連接埠的,可根據情況自行修改

  error_page   500 502 503 504   /50x .html;      location =  /50x .html {          root    /usr/share/nginx/html ;      } 

6.啟動nginx

/usr/local/nginx/sbin/nginx 

用如下命令查看nginx是否啟動了:

netstat -tupln | grep nginx 

成功的話會看到nginx監控的資訊

 

7.安裝和配置nginx外掛程式fastdfs-nginx-module

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

cd fastdfs-nginx-module/src/ 
gedit config (這一步很重要,很重要,很重要(重要的事情說三遍)我就是被一些文章弄暈了幾天,導致啟動nginx模組的時候出現錯誤,如果上面啟動nginx報錯的話,先不用著急,接著安裝nginx外掛程式,這裡配置好重新編譯一遍,然後重新啟動nginx就ok了)

 CORE_INCS= "$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"   CORE_LIBS= "$CORE_LIBS -L/usr/lib -lfastcommon -lfdfsclient"接著需要將外掛程式添加到nginxcd /root/nginx-1.10.1/ ./configure  --add-module=/root/fastdfs-nginx-module/src/ makemake install 5.拷貝並修改fastdfs-nginx-module的設定檔cp /root/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs 
vim 修改/etc/fdfs/mod_fastdfs.conf 儲存退出 

修改如下幾項:

tracker_server=192.168.1.188:22122
store_path0=/data/fastdfs/storage
base_path=/data/fastdfs/storage/data
url_have_group_name = true(配置多個tracker時,應該將此項設定為true)

建立軟串連(設定檔中storage存放資料的路徑)

ln -s /data/fastdfs/storage/data /data/fastdfs/storage/data/M00

將FastDFS_v4.06配置目錄下的2個檔案複製到/etc/fdfs目錄下:

cp /usr/local/fastdfs-5.05/conf/http.conf . 
cp /usr/local/fastdfs-5.05/conf/mime.types .

最後我再進行一次上傳檔案測試:

cd /usr/local/bin

上傳了一張測試圖片

然後再瀏覽器上面輸入自己的ip+連接埠號碼+檔案路徑(ip換成綁定的對應網域名稱也行)

看下成果:

這樣基本就ok了

歡迎看完來噴,更歡迎有建設性的意見。大家一起探討學習

 

 

 

 

 

 

 

 

 

centos 系統下安裝FastDFS+nginx+fastdfs-nginx-module安裝配置

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.