Centos 7+FastDFS與Nginx的整合教程

FastDFS是一個開源的輕量級分佈式文件系統,它對文件進行管理,功能包括:文件存儲、文件同步、文件訪問(文件上傳、文件下載)等,解決了大容量存儲和負載均衡的問題。特別適合以文件爲載體的在線服務,如相冊網站、視頻網站等等。
FastDFS爲互聯網量身定製,充分考慮了冗餘備份、負載均衡、線性擴容等機制,並注重高可用、高性能等指標,使用FastDFS很容易搭建一套高性能的文件服務器集羣提供文件上傳、下載等服務。

Nginx是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP服務器。Nginx是由Igor Sysoev爲俄羅斯訪問量第二的Rambler.ru站點開發的,第一個公開版本0.1.0發佈於2004年10月4日。其將源代碼以類BSD許可證的形式發佈,因它的穩定性、豐富的功能集、示例配置文件和低系統資源的消耗而聞名。

Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,並在一個BSD-like 協議下發行。由俄羅斯的程序設計師Igor Sysoev所開發,供俄國大型的入口網站及搜索引擎Rambler(俄文:Рамблер)使用。其特點是佔有內存少,併發能力強。

Tracker 集羣
FastDFS集羣中的Tracker server可以有多臺,Tracker server之間是相互平等關係同時提供服務,Tracker server不存在單點故障。客戶端請求Tracker server採用輪詢方式,如果請求的tracker無法提供服務則換另一個tracker。

Storage集羣
Storage集羣採用了分組存儲方式。storage集羣由一個或多個組構成,集羣存儲總容量爲集羣中所有組的存儲容量之和。一個組由一臺或多臺存儲服務器組成,組內的Storage server之間是平等關係,不同組的Storage server之間不會相互通信,同組內的Storage server之間會相互連接進行文件同步,從而保證同組內每個storage上的文件完全一致的。一個組的存儲容量爲該組內存儲服務器容量最小的那個,由此可見組內存儲服務器的軟硬件配置最好是一致的。
採用分組存儲方式的好處是靈活、可控性較強。比如上傳文件時,可以由客戶端直接指定上傳到的組也可以由tracker進行調度選擇。一個分組的存儲服務器訪問壓力較大時,可以在該組增加存儲服務器來擴充服務能力(縱向擴容)。當系統容量不足時,可以增加組來擴充存儲容量(橫向擴容)。

具體結構如下圖
這裏寫圖片描述

瞭解基礎知識後開始搭建fastDFS 服務器
上述可知fastDFS由Tracker服務Storage服務組成
所有我們首先將這兩個服務安裝好

安裝平臺
CentOS 7

所需安裝包

這裏寫圖片描述

fastdfs_client_java._v1.25.tar.gz
nginx-1.10.3.tar.gz
FastDFS_v5.05.tar.gz 
libfastcommonV1.0.7.tar.gz 
fastdfs-nginx-module_v1.16.tar.gz

安裝依賴庫以及環境

yum install gcc
yum install libevent

安裝 libfastcommon
libfastcommon是FastDFS官方提供的,libfastcommon包含了FastDFS運行所需要的一些基礎庫。

#解壓
[root@localhost package]# tar -xvf libfastcommonV1.0.7.tar.gz -C /usr/local/

#進入目錄
[root@localhost package]# cd /usr/local/libfastcommon-1.0.7/

#編譯
[root@localhost libfastcommon-1.0.7]# ./make.sh

#安裝
[root@localhost libfastcommon-1.0.7]# ./make.sh install

#轉移文件 libfastcommon.so
[root@localhost lib64]# cp /usr/lib64/libfastcommon.so /usr/lib/

安裝tracker服務

#創建FastDFS目錄
[root@localhost lib64]# mkdir /usr/local/FastDFS

#解壓 FastDFS_v5.05.tar.gz 
[root@localhost lib64]# tar -xvf /home/msi/package/FastDFS_v5.05.tar.gz -C /usr/local/FastDFS/

#進入FastDFS目錄
[root@localhost lib64]# cd /usr/local/FastDFS/

#編譯
[root@localhost FastDFS]# ./make.sh 

#安裝
[root@localhost FastDFS]# ./make.sh install

#將安裝目錄下的conf文件夾中的所有文件轉移到/etc/fdfs
[root@localhost FastDFS]# cp -r /usr/local/FastDFS/conf/ /etc/fdfs

#進入/etc/fdfs 進行配置
[root@localhost FastDFS]# cd /etc/fdfs/

#拷貝配置文件
[root@localhost fdfs]# cp tracker.conf.sample tracker.conf

#修改tracker.conf
#先創建一個文件夾用於存儲tracker服務的數據和日誌
[root@localhost msi]# mkdir /home/FastDFS
[root@localhost fdfs]# vim tracker.conf

#修改base_path
# the base path to store data and log files
base_path=/home/FastDFS

#啓動tracker服務
[root@localhost fdfs]# /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf

#查看是否啓動成功
[root@localhost fdfs]# netstat -unltp | grep fdfs
tcp        0      0 0.0.0.0:22122           0.0.0.0:*               LISTEN      2784/fdfs_trackerd 

安裝Storage服務

#安裝完tracker服務 安裝Storage服務
#進入/etc/fdfs目錄
[root@localhost fdfs]# cd /etc/fdfs/

#複製Storage配置文件
[root@localhost fdfs]# cp storage.conf.sample storage.conf

#創建文件夾用於儲存數據
[root@localhost fdfs]# mkdir /home/FastDFS/fdfs_storage

#修改storage.conf
[root@localhost fdfs]# vim storage.conf

#修改以下幾處
base_path=/home/FastDFS
store_path0=/home/FastDFS/fdfs_storage
tracker_server=yourip:22122

#啓動 storage
[root@localhost fdfs]# /usr/bin/fdfs_storaged /etc/fdfs/storage.conf

#查看是否啓動成功
[root@localhost fdfs]# netstat -unltp | grep fdfs
tcp        0      0 0.0.0.0:22122           0.0.0.0:*               LISTEN      2784/fdfs_trackerd  
tcp        0      0 0.0.0.0:23000           0.0.0.0:*               LISTEN      2793/fdfs_storaged  

至此fastDFS服務器搭建完畢,但是並不可以用http上傳所有需要整合Nginx

#解壓Nginx
[root@localhost package]# tar -xvf nginx-1.10.3.tar.gz -C /usr/local/

#解壓fastdfs-nginx-module_v1.16.tar.gz 整合包
[root@localhost package]# tar -xvf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local

#修改fastdfs-nginx-module中的配置文件
[root@localhost package]# cd /usr/local/fastdfs-nginx-module/src

[root@localhost src]# vim config 
#將CORE_INCS,CORE_LIBS,中的/usr/local/路徑改爲/usr/
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
CORE_LIBS="$CORE_LIBS -L/usr/lib -lfastcommon -lfdfsclient"

#轉移mod_fastdfs.conf配置文件
[root@localhost src]# cp mod_fastdfs.conf /etc/fdfs/

#修改/etc/fdfs/mod_fastdfs.conf
[root@localhost fdfs]# vim mod_fastdfs.conf 
base_path=/home/FastDFS
tracker_server=yourid:22122
url_have_group_name = true
store_path0=/home/FastDFS/fdfs_storage

#將libfdfsclient.so拷貝至/usr/lib下
[root@localhost fdfs]# cp /usr/lib64/libfdfsclient.so /usr/lib/

#創建nginx/client目錄
[root@localhost fdfs]# mkdir -p /var/temp/nginx/client

#進入Nginx目錄
[root@localhost fdfs]# cd /usr/local/nginx-1.10.3
#安裝Nginx
[root@localhost nginx-1.10.3]# ./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=/usr/local/fastdfs-nginx-module/src

#編譯
[root@localhost nginx-1.10.3]# make

#安裝
[root@localhost nginx-1.10.3]# make install

#修改Nginx配置文件
#創建數據目錄
[root@localhost nginx]# mkdir /home/FastDFS/fdfs_storage/data
[root@localhost nginx]# cd conf/
[root@localhost conf]# vim nginx.conf
server {
        listen       80;
        server_name  192.168.134.133;
        location /group1/M00/{
                root /home/FastDFS/fdfs_storage/data;
                ngx_fastdfs_module;
                              }
      }

至此Nginx與FastDFS的整合完成
啓動Nginx
[root@localhost sbin]# ./nginx
ngx_http_fastdfs_set pid=6203

使用瀏覽器訪問Nginx若成功訪問了主頁面則成功

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章