(5)Centos6.X安裝FastDFS(偽分佈)
1.什麼是FastDFS
FastDFS
是用c語言編寫的一款開源的分散式檔案系統。FastDFS
為網際網路量身定製,充分考慮了冗餘備份、負載均衡、線性擴容等機制,並注重高可用、高效能等指標,使用FastDFS
很容易搭建一套高效能的檔案伺服器叢集提供檔案上傳、下載等服務。
FastDFS
架構包括 Tracker server
和Storage 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
libfastcommon
是FastDFS
官方提供的,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.FastDFS
和nginx
整合
由於現在還沒有和nginx
整合,所以無法在瀏覽器中檢視上傳的圖片,要想實現FastDFS
和nginx
整合,需要使用FastDFS
所提供的整合包FastDFS-nginx-module_v1.16.tar.gz
,FastDFS-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