首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

FastDFS 分布式文件系統部署指南:Tracker/Storage 搭建、Nginx 整合負載均衡與測試

     編輯:Java 綜合教學

FastDFS 高可用集群部署全流程

FastDFS 專為互聯網場景設計,支持冗余備份、負載均衡、線性擴容。本文記錄 Tracker/Storage 雙節點部署、Nginx 反向代理整合與 Java 客戶端測試。

一、架構規劃

角色IP說明
Tracker192.168.241.137調度中心,管理 Storage 組
Storage (Group1)192.168.241.138存儲節點,組名 group1
Storage (Group2)192.168.241.139存儲節點,組名 group2(演示負載均衡)

所有節點關閉防火牆:service iptables stop; setenforce 0。

二、Tracker 安裝

yum -y install gcc-c++ libevent
tar -zxvf libfastcommonV1.0.7.tar.gz -C /usr/local
cd /usr/local/libfastcommon-1.0.7 && ./make.sh && ./make.sh install
cp /usr/lib64/libfastcommon.so /usr/lib/

tar -zxvf FastDFS_v5.05.tar.gz -C /usr/local
cd /usr/local/FastDFS && ./make.sh && ./make.sh install
cp /usr/local/FastDFS/conf/http.conf /etc/fdfs/
cp /usr/local/FastDFS/conf/mime.types /etc/fdfs/
cd /etc/fdfs
cp tracker.conf.sample tracker.conf
mkdir -p /home/FastDFS
vim tracker.conf
# 關鍵配置
base_path=/home/FastDFS
http.server_port=8080
# port=22122 (默認)
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

三、Storage 安裝(兩節點同步操作)

# 依賴安裝同 Tracker
# 修改 storage.conf
vim storage.conf
group_name=group1          # 節點2改為 group2
base_path=/home/FastDFS
store_path0=/home/FastDFS/fdfs_storage
tracker_server=192.168.241.137:22122
http.server_port=8888
mkdir -p /home/FastDFS/fdfs_storage
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

四、上傳測試(Tracker 節點)

cd /etc/fdfs
cp client.conf.sample client.conf
vim client.conf
base_path=/home/FastDFS
tracker_server=192.168.241.137:22122
# 上傳
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /home/567.png

成功返回文件 ID,如 group1/M00/00/00/wKgBg1xxxx.jpg。

五、Nginx 整合:Tracker 側負載均衡 + Storage 側下載

1. Tracker 安裝 Nginx(反向代理到 Storage)

yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel
tar -zxvf nginx-1.8.0.tar.gz -C /usr/local
cd /usr/local/nginx-1.8.0
./configure --prefix=/usr/local/nginx \
  --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
make && make install

# nginx.conf
upstream storage_server_group1 { server 192.168.241.138:8888 weight=10; }
upstream storage_server_group2 { server 192.168.241.139:8888 weight=10; }
server {
  listen 8080; server_name ccc.test.com;
  location /group1 { proxy_pass https://storage_server_group1; proxy_set_header Host $host; ... }
  location /group2 { proxy_pass https://storage_server_group2; proxy_set_header Host $host; ... }
}

2. Storage 安裝 Nginx + fastdfs-nginx-module(直接讀取本地文件)

tar -zxvf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local
cd /usr/local/fastdfs-nginx-module/src
vim config  # 將 /usr/local/ 改為 /usr/
cp /usr/local/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
vim /etc/fdfs/mod_fastdfs.conf
base_path=/home/FastDFS
tracker_server=192.168.241.137:22122
url_have_group_name=true
store_path0=/home/FastDFS/fdfs_storage
cp /usr/lib64/libfdfsclient.so /usr/lib/

# 編譯 Nginx 並加載模塊
cd /usr/local/nginx-1.8.0
./configure --prefix=/usr/local/nginx --add-module=/usr/local/fastdfs-nginx-module/src ...
make && make install

# nginx.conf
server {
  listen 8888; server_name 192.168.241.138;
  location /group1/M00/ {
    root /home/FastDFS/fdfs_storage/data;
    ngx_fastdfs_module;
  }
}

六、驗證

  • 瀏覽器訪問 https://192.168.241.137:8080/group1/M00/.../xxx.jpg → Tracker Nginx 代理到 Storage 組 → 返回圖片。
  • Java 客戶端使用 TrackerClient 上傳下載,依賴 fastdfs-client-java。

至此,FastDFS 高可用集群部署完成。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved