FastDFS 集群搭建

FastDFS 集群搭建

準(zhǔn)備環(huán)境

  • 文件準(zhǔn)備

nginx-1.14.0.tar.gz
FastDFS_v5.08.tar.gz
fastdfs-nginx-module_v1.16.tar.gz
libfastcommon-master.zip

  • 服務(wù)器

tracker服務(wù)器:192.168.1.85/86
storage服務(wù)器:192.168.1.72/73/74/75


安裝依賴包(全部服務(wù)器)

  • 在安裝FastDFS和Nginx之前,需確保gcc、gcc-c++、 libstdc++-devel、make等依賴庫和工具已經(jīng)安裝
yum -y install gcc gcc-c++ libstdc++-devel pcre-devel zlib-devel wget make
yum -y groupinstall 'Development Tools' 

安裝libfastcommon類庫(全部服務(wù)器)

unzip libfastcommon-master.zip -d /usr/local/
cd /usr/local/
cd libfastcommon-master/
./make.sh 
./make.sh install

安裝Fastdfs(全部服務(wù)器)

tar -xvzf FastDFS_v5.08.tar.gz -C /usr/local/
cd /usr/local/FastDFS/
./make.sh 
./make.sh install

FastDFS安裝完成之后,所有配置文件在/etc/fdfs目錄下,tracker需要tracker.conf配置文件,storage需要storage.conf配置文件。


安裝 tracker(服務(wù)器 85/86)

  • 將tracker.conf.sample文件重命名為tracker.conf,然后修改配置文件/etc/fdfs/tracker.conf
# 存儲日志和數(shù)據(jù)的根目錄
mkdir /root/fastdfs

cd /etc/fdfs
cp tracker.conf.sample tracker.conf
  • 修改配置文件
vi tracker.conf

#啟用配置文件
disabled=false
#設(shè)置tracker的端口號
port=22122
#設(shè)置tracker的數(shù)據(jù)文件和日志目錄(需手動創(chuàng)建)
base_path=/root/fastdfs
#設(shè)置http端口號
http.server_port=8080
  • 啟動 tracker
# 啟動
fdfs_trackerd /etc/fdfs/tracker.conf restart
  • 判斷是否啟動成功
[root@localhost ~]# netstat -unltp | grep fdfs
tcp        0      0 0.0.0.0:22122               0.0.0.0:*                   LISTEN      6078/fdfs_trackerd 

安裝 storage (服務(wù)器 72/73/74/75)

  • 創(chuàng)建存儲目錄和配置文件
mkdir /root/fastdfs

cd /etc/fdfs
cp storage.conf.sample storage.conf
  • 修改配置
vi /etc/fdfs/storage.conf
# 內(nèi)容
group_name=group1                   # 組名(第一組為group1,第二組為group2,依次類推...)
base_path=/root/fastdfs             # 數(shù)據(jù)和日志文件存儲根目錄
store_path0=/root/fastdfs           #第一個存儲目錄,第二個存儲目錄起名為:store_path1=xxx,其它存儲目錄名依次類推...
store_path_count=1                  # 存儲路徑個數(shù),需要和store_path個數(shù)匹配
tracker_server=192.168.1.85:22122          # tracker服務(wù)器IP和端口
tracker_server=192.168.1.86:22122          # tracker服務(wù)器IP和端口
  • 啟動Storage
[root@localhost fdfs]# fdfs_storaged /etc/fdfs/storage.conf restart
[root@localhost fdfs]# netstat -unltp | grep fdfs
tcp        0      0 0.0.0.0:23000               0.0.0.0:*                   LISTEN      5551/fdfs_storaged 
  • 驗證storage是否登記到tracker服務(wù)器
# 可以在任一存儲節(jié)點上使用如下命令查看集群的狀態(tài)信息
fdfs_monitor /etc/fdfs/storage.conf

在storage上安裝nginx

安裝

  • 解壓
tar -xvzf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local
tar -xvzf nginx-1.14.0.tar.gz -C /usr/local
  • 配置軟鏈接
ln -sv /usr/include/fastcommon /usr/local/include/fastcommon 
ln -sv /usr/include/fastdfs /usr/local/include/fastdfs 
ln -sv /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
  • 添加 fastdfs-nginx-module-master模塊
cd /usr/local/nginx-1.14.0/
./configure --prefix=/usr/local/nginx --add-module=/usr/local/fastdfs-nginx-module/src
  • 安裝
make
make install
  • 安裝成功,查看版本信息
/usr/local/nginx/sbin/nginx -V

配置

配置fastdfs-nginx-module

  • 進入fastdfs-nginx-module的src目錄,將md_fastdfs.conf配置文件拷貝到/etc/fdfs/目錄中
cd /usr/local/fastdfs-nginx-module/src
cp mod_fastdfs.conf /etc/fdfs/
  • 配置 mod_fastdfs.conf
vim /etc/fdfs/mod_fastdfs.conf

# 改動參數(shù)
base_path=/root/fastdfs           #保存日志目錄
tracker_server=192.168.1.85:22122
tracker_server=192.168.1.86:22122 
storage_server_port=23000         #storage服務(wù)器的端口號
group_name=group1                 #當(dāng)前服務(wù)器的group名
url_have_group_name = true        #文件url中是否有g(shù)roup名
store_path_count=1                #存儲路徑個數(shù),需要和store_path個數(shù)匹配
store_path0=/root/fastdfs         #存儲路徑
group_count = 2                   #設(shè)置組的個數(shù)

# 在末尾增加組的具體信息
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/root/fastdfs

[group2]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/root/fastdfs
  • 建立M00至存儲目錄的符號連接
ln -s /root/fastdfs/data /root/fastdfs/data/M00
ll /root/fastdfs/data/M00

配置nginx

  • 編輯/usr/local/nginx/conf配置文件目錄下的nginx.conf,設(shè)置添加storage信息并保存。
vim /usr/local/nginx/conf/nginx.conf

# 修改
user root;
listen       8080;

# 在server段中添加
location ~/group[1-2]/M00 {
    root /root/fastdfs/data;
    ngx_fastdfs_module;
}
  • 復(fù)制fastdfs中的http.conf、mime.types文件到/etc/fdfs
cp /usr/local/FastDFS/conf/http.conf /usr/local/FastDFS/conf/mime.types  /etc/fdfs

運行

[root@localhost ~]# /usr/local/nginx/sbin/nginx
ngx_http_fastdfs_set pid=12768
[root@localhost ~]# netstat -unltp | grep nginx
tcp        0      0 0.0.0.0:8080                0.0.0.0:*                   LISTEN      12769/nginx  
# 重啟 nginx
/usr/local/nginx/sbin/nginx -s reload

在tracker上安裝nginx

  • 在tracker上安裝的nginx主要為了提供http訪問的反向代理、負(fù)載均衡以及緩存服務(wù)

安裝

  • 解壓
tar -xvzf nginx-1.14.0.tar.gz -C /usr/local
  • 運行./configure進行安裝前的設(shè)置,主要設(shè)置安裝路徑
cd /usr/local/nginx-1.14.0/
./configure --prefix=/usr/local/nginx
  • 安裝
make
make install

配置

  • 編輯/usr/local/nginx/conf配置文件目錄下的nginx.conf,設(shè)置負(fù)載均衡
vim /usr/local/nginx/conf/nginx.conf

# 配置信息
worker_processes  4;                  #根據(jù)CPU核心數(shù)而定
events {
    worker_connections  65535;        #最大鏈接數(shù)
    use epoll;                        #新版本的Linux可使用epoll加快處理性能
}
http {
    #設(shè)置group1的服務(wù)器
    upstream fdfs_group1 {
        server 192.168.1.72:8080 weight=1 max_fails=2 fail_timeout=30s;
        server 192.168.1.73:8080 weight=1 max_fails=2 fail_timeout=30s;
    }
    #設(shè)置group2的服務(wù)器
    upstream fdfs_group2 {
        server 192.168.1.74:8080 weight=1 max_fails=2 fail_timeout=30s;
        server 192.168.1.75:8080 weight=1 max_fails=2 fail_timeout=30s;
    }

   server {
       #設(shè)置服務(wù)器端口
        listen       8080;
       #設(shè)置group1的負(fù)載均衡參數(shù)
        location /group1/M00 {
            proxy_pass http://fdfs_group1;
        }
        #設(shè)置group2的負(fù)載均衡參數(shù)
        location /group2/M00 {
            proxy_pass http://fdfs_group2;
        }
    }

}

運行

  • 啟動nginx,確認(rèn)啟動是否成功
[root@localhost ~]# /usr/local/nginx/sbin/nginx
ngx_http_fastdfs_set pid=12768
[root@localhost ~]# netstat -unltp | grep nginx
tcp        0      0 0.0.0.0:8080                0.0.0.0:*                   LISTEN      12769/nginx  

上傳文件測試

配置client.conf文件

cp client.conf.sample  client.conf
vim /etc/fdfs/client.conf

# 修改以下參數(shù)
base_path=/root/fastdfs                   #日志存放路徑
tracker_server=192.168.1.85:22122         
tracker_server=192.168.1.86:22122 
http.tracker_server_port=8080

上傳文件測試

[root@localhost fdfs]# fdfs_upload_file /etc/fdfs/client.conf /root/test.jpg
group2/M00/00/00/wKg26VncfamAEqZ0AAu-4Kcs3QI677.jpg
  • 使用瀏覽器訪問
http://192.168.1.85:8080/group2/M00/00/00/wKg26VncfamAEqZ0AAu-4Kcs3QI677.jpg

單機版 Nginx 配置

同 Storage Nginx 安裝、配置

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容