1. 程式人生 > >fastdfs檔案伺服器的基本安裝和配置

fastdfs檔案伺服器的基本安裝和配置

感謝各位的分享:

說明:

    系統:阿里雲的centos 7

    nginx:nginx-1.13.9

    fastdfs:fastdfs-5.11

一、準備工作

安裝相關依賴

yum -y install make cmake gcc gcc-c++ bison-devel ncurses-devel autoconf automake lrzsz zip unzip netstat-nat libevent.x86_64 libevent-devel.x86_64
yum -y install zlib zlib-devel openssl openssl-devel pcre-devel

下載相關軟體

   

二、安裝libfastcommon-master

解壓:unzip libfastcommon-master.zip
如果沒有許可權給許可權:chmod -R 777 libfastcommon-master
開啟解壓檔案目錄:cd libfastcommon-master
編譯:./make.sh
安裝:./make.sh install

如下圖所示則安裝成功:


設定軟連線,即快捷方式

ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so 
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so 
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so 
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

三、安裝fastdfs-5.11

解壓:tar zxvf fastdfs-5.11.tar.gz
開啟資料夾:cd fastdfs-5.11
編譯:./make.sh
安裝:./make install

如下圖所示則安裝成功:


開啟配置資料夾:cd /etc/fdfs 發現不是我們需要的,cp一下就好了

cp client.conf.sample client.conf 
cp storage.conf.sample storage.conf 
cp tracker.conf.sample tracker.conf

建立相關目錄

mkdir -p /home/fastdft/fastdfs_tracker_log #tracker日誌目錄
mkdir –p /home/fastdft/fastdfs_storage_log #storage日誌目錄
mkdir –p /home/fastdft/fastdfs_storage_1_log #storage1日誌目錄
mkdir -p /home/fastdft/resource #檔案目錄
mkdir -p /home/fastdft/images #檔案目錄
chmod -R 777 /home/fastdft/
開啟目錄:cd /etc/fdfs/
編輯tracker.conf:vi tracker.conf
disabled=false  #當前配置是否可用 false:可用 true:不可用
bind_addr=  #是否繫結IP,不設定為不繫結
port=22122  #預設的埠 不衝突的話不要修改
connect_timeout=30  #針對socket套接字函式connect的連線超時時間設定  
network_timeout=60  #設定網路超時,單位秒,傳送或接收資料時,如果在超時時間之後依然不能進行,則本次網路通訊失敗  
base_path= /home/fastdft/fastdfs_tracker_log  #日誌檔案 可根據需要修改
max_connections=256  #伺服器支援的最大連線數
accept_threads=1  #工作執行緒數,通常設定為CPU數量
store_lookup=2  #上傳組(卷)的方式:0輪詢,1:指定,2:負載平衡(剩餘空間最大選擇)
store_group=group1#組名稱很重要 如果上一引數選擇1方式,即制定組名,當前引數用來設定指定的組,如果選擇其他方式,當前引數無效  
store_server=101.201.113.170:22122 #伺服器IP:埠 ,IP根據本機IP來填寫
store_path=0 
http.server_port=9090 #http埠,使用Nginx來訪問則不需要這個
注意複製的時候不要複製註釋

五、配置storage.conf

group_name=group1 #組名稱很重要,如果tracker.conf配置為指定組名的話要和tracker.conf配置的相同
base_path= /home/fastdft/fastdfs_storage_log  #storaged服務日誌目錄
store_path0= /home/fastdft/resource #檔案資料存放目錄
tracker_server=192.168.1.129:22122 #伺服器IP:埠 ,IP根據本機IP來填寫
http.server_port=9091 #http埠,使用Nginx來訪問則不需要這個

六、啟動

1、tracker跟蹤伺服器啟動

方式一

啟動:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start

方式二

建立軟連線:ln -s /usr/bin/ fdfs_trackerd /usr/local/bin
啟動:service fdfs_trackerd start

2、storage儲存節點服務啟動

方式一

啟動:/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start

方式二

建立軟連線:n -s /usr/bin/fdfs_storaged /usr/local/bin
啟動服務:service fdfs_storaged start

第一次啟動的時候最好先用方式一啟動這樣可以看到啟動是否出錯,也可以檢視日誌

新增開機自啟動

編輯vim /etc/rc.d/rc.local
新增一下命令
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
檢視是否啟動成功:netstat -unltp | grep fdfs
如上圖所示說明啟動成功

然後開啟檔案資料的存放目錄,就是在storage.conf配置檔案中的配置的store_path0的路徑


檢視tracker上是否有相應的儲存節點,即 tracker和storage是否連線起來了

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
看到圖中的字樣便成功了,這個時候安裝任務可以說就算完成了

3、測試

編輯client.conf:vim /etc/fdfs/client.conf
base_path=/home/fastdft/fastdfs_client_log #tracker伺服器檔案路徑 
tracker_server=192.168.1.129:22122#tracker伺服器IP地址和埠號 
http.tracker_server_port=9090# tracker 伺服器的 http 埠號,必須和tracker的設定對應

使用以下命令,進行測試,其中login.dat檔案是在伺服器的另一個地方

/usr/bin/fdfs_upload_file  /etc/fdfs/client.conf  /home/fastdft/resource/login.dat 47.94.222.211:23000

如下圖所示,返回了檔案的路徑


上圖中畫黃線的是上傳之前的檔案,畫白線的為上傳之後的檔案

刪除命令:/usr/bin/fdfs_delete_file /etc/fdfs/client.conf  chni/M00/00/00/rBFzVVrtvwSAd80VAAAB66UF660581.dat

這個時候就可以使用java api進行上傳、同步和下載,但是想要通過http方式進行下載,還需要配置nginx

七、安裝fastdfs-nginx-module-master

解壓:unzip fastdfs-nginx-module-master
開啟:cd fastdfs-nginx-module-master/src
編輯:vim mod_fastdfs.conf
		tracker_server=192.168.1.129:22122
		group_name=group1
		url_have_group_name = true
		store_path0=/home/fastdft/resource

將相關配置拷貝到etc/fdfs下

cp mod_fastdfs.conf /etc/fdfs
cd fastdfs-5.11/conf/
cp anti-steal.jpg http.conf mime.types /etc/fdfs/

建立軟連線

ln -s /home/fastdft/resource /home/fastdft/resource/data/M00

八、配置nginx

注意:如果已經安裝過nginx需要重新編譯安裝,不然會報:unknown directive "ngx_fastdfs_module"的錯誤
檢查:./configure --prefix=/usr/local/nginx --add-module=/home/download/fastdfs/fastdfs-nginx-module-master/src
編譯和安裝:make&makeinstall

最後在nginx的配置檔案中新增一下配置即可

server {
        listen       80;
        server_name  域名;

        location / {
            root   html;
            index  index.html index.htm;
        }
        location /group1/M00 {
                alias /home/fastdft/resource/;
                ngx_fastdfs_module;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

這時候在瀏覽器中輸入

http://lc.ibeir.net/group1/M00/00/00/rBFzVVrt1b-AYdiAAAAB66UF660954.dat

就會下載

九、一個tracker和多個storage配置

將storage.conf拷貝一份並重命名,例如storage_1.conf

配置storage_1.conf

group_name=group1 #組名稱很重要,和tracker.conf相同
base_path= /home/fastdft/fastdfs_storage_1_log  #storaged服務日誌目錄
store_path0= /home/fastdft/images#檔案資料存放目錄
tracker_server=192.168.1.129:22122 #伺服器IP:埠 ,IP根據本機IP來填寫
http.server_port=9091 #http埠,使用Nginx來訪問則不需要這個

配置mod_fastdfs.conf

在配置檔案下新增或修改以下配置

group_count = 2
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/home/fastdft/resource

[group2]
group_name=group2
storage_server_port=23001
store_path_count=1
store_path0=/home/fastdft/images

找到之前配好的並且遮蔽掉

#storage_server_port=23000
#group_name=group1
#store_path_count=1
#store_path0=/home/fastdft/resource

配置nginx

在service新增以下配置
location /group2/M00 {
          alias /home/fastdft/images/;
          ngx_fastdfs_module;
    }

測試

分組上傳
/usr/bin/fdfs_upload_file  /etc/fdfs/client.conf  /home/fastdft/resource/login.dat 192.168.1.129:23000
/usr/bin/fdfs_upload_file  /etc/fdfs/client.conf  /home/fastdft/resource/login.dat 192.168.1.129:23001

上傳成功會返回一個地址,在瀏覽器分別輸入

http://lc.ibeir.net/group1/M00/00/00/rBFzVVrt1b-AYdiAAAAB66UF660954.dat
http://lc.ibeir.net/group2/M00/00/00/rBFzVVrt1b-AYdiAAAAB66UF660954.dat

就會下載