天天看點

FastDFS+Nginx+fastdfs-nginx-module分布式存儲環境搭建

前提條件

libfastcommon-1.0.7.tar.gz

FastDFS_v5.05.tar.gz

fastdfs-nginx-module_v1.16.tar.gz

環境搭建過程

先安裝libfastcommon

①解壓libfastcommon-1.0.7.tar.gz壓縮包

tar -zxvf libfastcommon-1.0.7.tar.gz
           

②進入壓縮後目錄

cd libfastcommon-1.0.7
           

③編譯libfastcommon

./make.sh
           

④安裝libfastcommon

./make.sh install
           

我這裡出現一個錯誤

/make.anzhuang e 99: perl: command not found ./make.sh: line 100: perl: command not found cc  -c -fPIC -o sockopt.lo sockopt.c 

這裡是因為沒有安裝perl

yum install perl
           

⑤安裝完成會在/usr下出現一個lib64檔案夾,裡面有一個libfastcommon.so,把/usr/lib64/libfastcommon.so檔案向/usr/lib/下複制一份

cp /usr/lib64/libfastcommon.so /usr/lib
           

安裝FastDFS_v5.05.tar.gz

①解壓FastDFS_v5.05.tar.gz壓縮包

tar zxf FastDFS_v5.05.tar.gz
           

②進入壓縮後目錄

cd FastDFS
           

③編譯FastDFS

./make.sh
           

④安裝FastDFS

./make.sh install
           

安裝後在/usr/bin/目錄下有以fdfs開頭的檔案都是編譯出來的 使用ll fdfs_*檢視

FastDFS+Nginx+fastdfs-nginx-module分布式存儲環境搭建

并且會在/etc/fdfs目錄下生成幾個配置檔案

FastDFS+Nginx+fastdfs-nginx-module分布式存儲環境搭建

⑤把FastDFS/conf目錄下的所有的配置檔案都複制到/etc/fdfs下。(之前寫的是沒拷貝,然後下面會報錯,這裡修改一下,直接全部拷貝走)

配置tracker服務

①配置base_path: 

base_path為日志檔案儲存路徑

原來 base_path=/home/yuqing/fastdfs 這裡需要改為自己的檔案路徑

如:base_path=/home/fastdfs/tracker (這裡的檔案目錄必須存在,如果沒有,需要自己建立,不然會報錯)

②啟動tracker服務

啟動指令:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
重新開機指令:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
           

配置storage服務

注意:同一個組内的不同的storage的配置要相同(友善同步檔案)

①配置storage屬于哪個group:

group_name=group1 (因為現在先隻是配一個組,是以這裡就為group1)

②配置base_path:

base_path為日志檔案儲存路徑

原來 base_path=/home/yuqing/fastdfs 這裡需要改為自己的檔案路徑,

如:base_path=/home/fastdfs/storage (這裡的檔案目錄必須存在,如果沒有,需要自己建立,不然會報錯)

③配置store_path0:

store_path0為實際的圖檔存放路徑

這裡 store_path0=/home/yuqing/fastdfs 也要改為自己的檔案路徑

如: store_path0=/home/fastdfs/storage (建議與bast_path一樣)

④配置tracker_server:

還有:tracker_server要改為自己的trakcer_server的ip

如:tracker_server=192.168.1.104:22122

(多個tracker_server往下羅列就行了)

⑤啟動storage服務

啟動指令:/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
重新開機指令:/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
           

配置client服務

①配置base_path:

base_path:為日志檔案儲存路徑

原來 base_path=/home/yuqing/fastdfs 這裡需要改為自己的檔案路徑,

如:base_path=/home/fastdfs/client (這裡的檔案目錄必須存在,如果沒有,需要自己建立,不然會報錯)

②配置tracker_server:

還有:tracker_server要改為自己的trakcer_server的ip

如:tracker_server=192.168.1.104:22122

測試是否可以上傳圖檔

/usr/bin/fdfs_test /etc/fdfs/client.conf upload anti-steal.jpg 
(要在這張圖檔所在的路徑下執行這條指令,或者把圖檔寫成絕對路徑)
           
FastDFS+Nginx+fastdfs-nginx-module分布式存儲環境搭建

③将/usr/lib64/libfdfsclient.so拷貝至/usr/lib下

cp /usr/lib64/libfdfsclient.so /usr/lib
           

和Nginx內建

安裝Nginx 安裝教程: http://blog.csdn.net/qq_34021712/article/details/68927236

安裝fastdfs-nginx-module插件

①解壓fastdfs-nginx-module_v1.16.tar.gz

tar zxf fastdfs-nginx-module_v1.16.tar.gz
           

②修改解壓後fastdfs-nginx-module/src/config檔案,把其中的local去掉

FastDFS+Nginx+fastdfs-nginx-module分布式存儲環境搭建

③把/root/fastdfs-nginx-module/src/mod_fastdfs.conf檔案複制到/etc/fdfs目錄下,編輯

配置base_path=/tmp預設的,可以修改為自己想配置的位置

配置tracker_server=192.168.1.104:22122

配置url_have_group_name

    隻有一個group時配置url_have_group_name = false為預設即可

    多個group的配置,配置url_have_group_name= true 即通路位址使用分組名

配置store_path0=/home/fastdfs/storage 圖檔所在路徑

Nginx的配置

①對安裝好的nginx重新config

指令如下:注意:要先關閉所有的nginx程序,在進行下面這一步驟

./configure --add-module=/root/software/fastdfs-nginx-module/src
(/root/software/fastdfs-nginx-module/src路徑為自己解壓tar包後的路徑,根據自己壓縮路徑切換)
make
make install
           

如果在make install 的時候報異常如下,是因為沒有拷貝/usr/lib64/libfdfsclient.so到/usr/lib下 拷貝後再make install

 -lpthread -lcrypt -L/usr/lib -lfastcommon -lfdfsclient -lpcre -lcrypto -lcrypto -lz

/usr/bin/ld: cannot find -lfdfsclient

collect2: ld returned 1 exit status

make[1]: *** [objs/nginx] Error 1

②配置nginx.conf

server {
        listen       80;
        server_name  192.168.1.104;


        location /group([0-9])/M00/ {
                #root /home/FastDFS/fdfs_storage/data;
                ngx_fastdfs_module;
        }
}
           

③啟動nginx

/usr/local/nginx/sbin/nginx
           

使用ps -ef|grep nginx 看到隻有一個master程序, cat /usr/local/nginx/logs/error.log 報錯

ERROR - file: ini_file_reader.c, line: 315, include file "http.conf" not exists, line: "#include http.conf"

[2017-04-11 15:58:20] ERROR - file: /usr/local/software/fastdfs-nginx-module/src/common.c, line: 155, load conf file "/etc/fdfs/mod_fastdfs.conf" fail, ret code: 2

2017/04/11 15:58:20 [alert] 14910#0: worker process 14911 exited with fatal code 2 and cannot be respawned

FastDFS+Nginx+fastdfs-nginx-module分布式存儲環境搭建

原來是忘記把http.conf和mime.types 拷貝到/etc/fdfs下了,這兩個檔案在解壓的FastDFS_v5.05.tar.gz 的conf目錄下

然後再啟動nginx通路就可以了

FastDFS+Nginx+fastdfs-nginx-module分布式存儲環境搭建

繼續閱讀