1. 程式人生 > >FastDFS單節點安裝 & FastDFS+Nginx整合

FastDFS單節點安裝 & FastDFS+Nginx整合

sysconfig amp key err 查看 location 生產環境 erro info


安裝環境
FastDFS_v5.05.tar.gz(http://sourceforge.net/projects/fastdfs/files/)
fastdfs-nginx-module_v1.16.tar.gz
libfastcommon-master.zip
ngx_cache_purge-2.3.tar.gz
nginx-1.6.2(https://www.cnblogs.com/cac2020/p/9524197.html)

VM虛擬機redhat6.5-x64:192.168.1.202、192.168.1.203
  Xshell4
部署方案
202:Tracker
203:Storage、nginx
fastDFS主程序目錄:/usr/local/lib

安裝步驟
步驟一:安裝依賴gcc gcc-c++(202、203都要安裝,使用ISO作為yum本地源:https://www.cnblogs.com/icerain0/p/9009660.html)

yum install make cmake gcc gcc-c++

步驟二:安裝libfastcommon(202、203都要安裝)

#解壓
unzip libfastcommon-master.zip -d /usr/local/fast/
#編譯 安裝 註意安裝的路徑,libfastcommon默認安裝到了/usr/lib64/這個位置
cd /usr/local/fast/libfastcommon-master && ./make.sh && ./make.sh install

#我們設定主程序目錄為/usr/local/lib/ 需要在目錄創建軟連接
mkdir /usr/local/lib/
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(202、203都要安裝)

#解壓
tar -zxvf FastDFS_v5.05.tar.gz -C /usr/local/fast/
#編譯 安裝
cd /usr/local/fast/FastDFS/ && ./make.sh && ./make.sh install
#說明:
1.服務腳本在:
/etc/init.d/fdfs_storaged
/etc/init.d/fdfs_trackerd
2.配置文件在:
/etc/fdfs/client.conf.sample
/etc/fdfs/storage.conf.sample
/etc/fdfs/tracker.conf.sample
3.命令行工具在/usr/bin/目錄下Fdfs_*的一些列執行腳本
cd /usr/bin/ && ls | grep fdfs

FastDFS服務腳本設置的bin目錄為/usr/local/bin/下,但是實際我們安裝在了/usr/bin/下面。
所以我們需要修改FastDFS配置文件中的路徑,也就是需要修改倆個配置文件:
命令:vim /etc/init.d/fdfs_storaged
進行全局替換命令:%s+/usr/local/bin+/usr/bin
命令:vim /etc/init.d/fdfs_trackerd
進行全局替換命令:%s+/usr/local/bin+/usr/bin

步驟四:配置跟蹤器 202節點

#修改tracker配置文件(http://bbs.chinaunix.net/thread-1941456-1-1.html)
cd /etc/fdfs/ && cp tracker.conf.sample tracker.conf
mkdir -p /fastdfs/tracker && vim /etc/fdfs/tracker.conf
#修改base_path目錄
base_path=/fastdfs/tracker

步驟五:關閉防火墻-202 (生產環境)
vim /etc/sysconfig/iptables
添加:-A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT
重啟:service iptables restart

步驟六:啟動跟蹤器
目錄命令:cd /fastdfs/tracker/ && ll
啟動tracker命令:/etc/init.d/fdfs_trackerd start
查看進程命令:ps -el | grep fdfs
停止tracker命令:/etc/init.d/fdfs_trackerd stop

設置開機啟動跟蹤器:
命令:vim /etc/rc.d/rc.local
加入配置:/etc/init.d/fdfs_trackerd start


步驟七:配置FastDFS存儲storage(203)

#修改storage.conf文件
cd /etc/fdfs/ && cp storage.conf.sample storage.conf
#創建存儲目錄

mkdir -p /fastdfs/storage && vim /etc/fdfs/storage.conf

#修改內容:
base_path=/fastdfs/storage
store_path0=/fastdfs/storage
tracker_server=192.168.1.202:22122
http.server_port=8888

步驟八:打開防火墻-203(生產環境)
命令:vim /etc/sysconfig/iptables
添加:-A INPUT -m state --state NEW -m tcp -p tcp --dport 23000 -j ACCEPT
重啟:service iptables restart

步驟九:啟動存儲(storage)
啟動:/etc/init.d/fdfs_storaged start (初次啟動成功後會在/fastdbf/storage/ 目錄下創建 data、logs倆個目錄)
關閉:/etc/init.d/fdfs_storaged stop
設置開機啟動:vim /etc/rc.d/rc.local
加入配置:/etc/init.d/fdfs_storaged start

查看FastDFS storage 是否啟動成功
命令:ps -ef | grep fdfs
/fastdfs/storage/data/文件夾下會生成一些目錄文件(256*256個)
cd /fastdfs/storage/data/ && ls

啟動存儲器報錯示例:

[2018-08-27 22:42:34] ERROR - file: storage_ip_changed_dealer.c, line: 180, connect to tracker server 192.168.1.202:22122 fail, errno: 113, error info: No route to host

原因:防火墻未關閉 ,執行命令:/etc/init.d/iptables stop


測試----使用客戶端上傳文件,在tracker(跟蹤器-202)中上傳
1.編輯client.conf文件
命令:cd /etc/fdfs/ && cp client.conf.sample client.conf
命令:vim /etc/fdfs/client.conf
修改內容:
base_path=/fastdfs/tracker
tracker_server=192.168.1.202:22122

2.找到命令的腳本位置,並且使用命令fdfs_upload_file,進行文件的上傳
cd /usr/bin/ && ls | grep fdfs
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/FastDFS_v5.05.tar.gz

[root@202 bin]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/FastDFS_v5.05.tar.gz
group1/M00/00/00/wKgBy1uEExGAcJp0AAVFOL7FJU4.tar.gz

一般首次上傳第一個文件會保存在storage(203)下/fastdfs/storage/data/00/00,目錄裏
cd /fastdfs/storage/data/00/00 && ls

[root@203 00]#  cd /fastdfs/storage/data/00/00 && ls
wKgBy1uEExGAcJp0AAVFOL7FJU4.tar.gz

至此 fastdfs安裝完畢!!!


----------------------------------------FastDFS與Nginx整合-----------------------------------------------------
整合操作
一、首先兩臺機器裏必須先安裝nginx (202、203)
參考:https://www.cnblogs.com/cac2020/p/9524197.html

二、存儲節點-storage(203) 安裝fastdfs-nginx-module_v1.16.tar.gz
#解壓
cd /usr/local/software/ && tar -zxvf /usr/local/software/fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/fast/
#編輯配置文件config
cd /usr/local/fast/fastdfs-nginx-module/src/ && vim /usr/local/fast/fastdfs-nginx-module/src/config
修改內容:去掉下圖中的local文件層次
技術分享圖片

  第四行修改為: CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

 三、FastDFS與nginx進行集成
首先把之前的nginx進行刪除
cd /usr/local/ && rm -rf nginx
加載fastdfs模塊 重新配置
cd /usr/local/nginx-1.6.2/ && ./configure --add-module=/usr/local/fast/fastdfs-nginx-module/src/
重新編譯 安裝
make && make install

復制 修改fastdfs-ngin-module中的配置文件,到/etc/fdfs目錄中
cp /usr/local/fast/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
vim /etc/fdfs/mod_fastdfs.conf
修改內容:比如連接超時時間、跟蹤器路徑配置、url的group配置、
connect_timeout=10
tracker_server=192.168.1.202:22122
url_have_group_name = true
store_path0=/fastdfs/storage

cd /usr/local/fast/FastDFS/conf/ && cp http.conf mime.types /etc/fdfs/
創建一個軟連接,在/fastdfs/storage文件存儲目錄下創建軟連接,將其鏈接到實際存放數據的目錄。
命令:ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00

#修改Nginx配置文件
vim /usr/local/nginx/conf/nginx.conf
修改內容為:
listen 8888;
server_name localhost;
location ~/group([0-9])/M00 {
#alias /fastdfs/storage/data;
ngx_fastdfs_module;
}
註意:nginx裏的端口要和第五步配置FastDFS存儲中的storage.conf文件配置一致,也就是(http.server_port=8888)

最後檢查防火墻,並啟動nginx服務
/usr/local/nginx/sbin/nginx

使用上傳文件ID用瀏覽器訪問地址:http://192.168.1.203:8888/group1/M00/00/00/wKgBy1uEExGAcJp0AAVFOL7FJU4.tar.gz

技術分享圖片


註意
使用FastDFS的時候,需要正常關機,不要使用kill -9強殺FastDFS進程,不然會在文件上傳時出現丟數據的情況。
匯總啟停命令:
啟動命令:
啟動tracker命令:/etc/init.d/fdfs_trackerd start
查看進程命令:ps -el | grep fdfs
啟動storage命令:/etc/init.d/fdfs_storaged start
查看進程命令:ps -el | grep fdfs
啟動nginx命令:/usr/local/nginx/sbin/nginx
停止命令:
停止tracker命令:/etc/init.d/fdfs_trackerd stop
關閉storage命令:/etc/init.d/fdfs_storaged stop
關閉nginx命令:/usr/local/nginx/sbin/nginx -s stop

FastDFS單節點安裝 & FastDFS+Nginx整合