分布式文件系統(FastDFS)集群配置

[TOC]

我們在使用FastDFS部署一個分布式文件系統的時候,通過FastDFS的客戶端API來進行文件的上傳、下載、刪除等操作。同時通過FastDFS的HTTP服務器來提供HTTP服務。但是FastDFS的HTTP服務較為簡單,無法提供負載均衡等高性能的服務,所以FastDFS的開發者——淘寶的架構師余慶,為我們提供了Nginx上使用的FastDFS模塊(也可以叫FastDFS的Nginx模塊);使用非常簡單。
FastDFS通過Tracker服務器,將文件放在Storage服務器存儲,但是同組之間的服務器需要復制文件,有延遲的問題。假設Tracker服務器將文件上傳到了192.168.1.80,文件ID已經返回客戶端,這時,后臺會將這個文件復制到192.168.1.30,如果復制沒有完成,客戶端就用這個ID在192.168.1.30取文件,肯定會出現錯誤。這個fastdfs-nginx-module可以重定向連接到源服務器取文件,避免客戶端由于復制延遲的問題,出現錯誤。

編譯、安裝Nginx

添加fastdfs-nginx-module

./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --add-module=/usr/local/src/fastdfs-nginx-module/src
make && make install

復制 fastdfs-nginx-module 源碼中的配置文件到/etc/fdfs 目錄

cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

修改mod_fastdfs.conf配置文件

connect_timeout=10                  # 客戶端訪問文件連接超時時長(單位:秒)
base_path=/tmp                      # 保存日志目錄
tracker_server=192.168.0.200:22122  # tracker服務IP和端口
storage_server_port=23000           # storage服務端口
group_name=group1                   # 組名
url_have_group_name=true            # 訪問鏈接前綴加上組名
store_path0=/mnt/fastdfs/storage        # 文件存儲路徑

復制 FastDFS 的部分配置文件到/etc/fdfs 目錄

[root@hmhbt storage]# cd /usr/local/src/FastDFS/conf
[root@hmhbt conf]# cp http.conf mime.types /etc/fdfs/

配置nginx訪問storage文件

user nobody;
worker_processes 1;
events {
    worker_connections 1024;
}
http {
    include mime.types;
    default_type application/octet-stream;
    sendfile on;
    keepalive_timeout 65;
    server {
        listen 8888;
        server_name localhost;
        location ~/group([0-9])/M00 {
            root /mnt/fastdfs/storage;
            ngx_fastdfs_module;
        }
        error_page 500 502 503 504 /50x.html;

        location = /50x.html {
            root html;
        }
    }
}

如果下載時發現報 404, 將 nginx.conf 第一行 user nobody 修改為 user root 后重新啟動。

以上屬于原創文章,轉載請注明作者@怪咖
QQ:208275451

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容