1、運行環境及相關軟件
CentOS 6.5
FastDFS_v5.08.tar.gz
nginx-1.8.1.tar.gz
fastdfs-nginx-module_v1.16.tar.gz
libfastcommon
安裝FastDFS
1)首先創建工具目錄(非必須)
[root@fastdfs-storage ~]# mkdir -p /home/oldcat/tools [root@fastdfs-storage ~]# cd /home/oldcat/tools/
2) 下載並安裝FastDFS依賴包libfastcommon
[root@fastdfs-storage tools]# wget https://codeload.github.com/happyfish100/libfastcommon/zip/master [root@fastdfs-storage tools]# unzip master [root@fastdfs-storage tools]# cd libfastcommon-master/ [root@fastdfs-storage libfastcommon-master]# ls HISTORY INSTALL libfastcommon.spec make.sh php-fastcommon README src [root@fastdfs-storage libfastcommon-master]# ./make.sh [root@fastdfs-storage libfastcommon-master]# ./make.sh install
3)下載並安裝FastDFS
[root@fastdfs-tracker tools]# wget http://jaist.dl.sourceforge.net/project/fastdfs/FastDFS%20Server%20Source%20Code/FastDFS%20Server%20with%20PHP%20Extension%20Source%20Code%20V5.08/FastDFS_v5.08.tar.gz [root@fastdfs-tracker tools]# tar xf FastDFS_v5.08.tar.gz [root@fastdfs-tracker tools]# cd FastDFS [root@fastdfs-tracker FastDFS]# ./make.sh && ./make.sh install
采用默認方式安裝后的文件及目錄:
1)服務腳本:
[root@fastdfs-tracker ~]# ll /etc/init.d/ |grep fdfs -rwxr-xr-x. 1 root root 918 4月 22 22:08 fdfs_storaged -rwxr-xr-x. 1 root root 920 4月 22 22:08 fdfs_trackerd
2)樣例配置文件
[root@fastdfs-tracker ~]# ll /etc/fdfs/
總用量 20
-rw-r--r--. 1 root root 1461 4月 22 22:08 client.conf.sample -rw-r--r--. 1 root root 7927 4月 22 22:08 storage.conf.sample -rw-r--r--. 1 root root 7200 4月 22 22:08 tracker.conf.sample
3)命令行工具
[root@fastdfs-tracker ~]# ll /usr/bin|grep fdfs
-rwxr-xr-x. 1 root root 252272 4月 22 22:08 fdfs_appender_test -rwxr-xr-x. 1 root root 252225 4月 22 22:08 fdfs_appender_test1 -rwxr-xr-x. 1 root root 242449 4月 22 22:08 fdfs_append_file -rwxr-xr-x. 1 root root 242013 4月 22 22:08 fdfs_crc32 -rwxr-xr-x. 1 root root 242508 4月 22 22:08 fdfs_delete_file -rwxr-xr-x. 1 root root 243627 4月 22 22:08 fdfs_download_file -rwxr-xr-x. 1 root root 243369 4月 22 22:08 fdfs_file_info -rwxr-xr-x. 1 root root 255657 4月 22 22:08 fdfs_monitor -rwxr-xr-x. 1 root root 863913 4月 22 22:08 fdfs_storaged -rwxr-xr-x. 1 root root 258712 4月 22 22:08 fdfs_test -rwxr-xr-x. 1 root root 257881 4月 22 22:08 fdfs_test1 -rwxr-xr-x. 1 root root 365232 4月 22 22:08 fdfs_trackerd -rwxr-xr-x. 1 root root 243547 4月 22 22:08 fdfs_upload_appender -rwxr-xr-x. 1 root root 244453 4月 22 22:08 fdfs_upload_file
注意:雖然FastDFS區分tracker和storage服務器,但是安裝的軟件及步驟均相同,只是不同的配置文件而已,因此以上安裝適用tracker server和storage server
4、配置跟蹤服務器(tracker server)
1)拷貝tracker server和client端樣例配置文件並重命名
[root@fastdfs-tracker ~]# cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf [root@fastdfs-storage ~]# cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
2)編輯tracker server配置文件tracker.conf,需要修改內容如下:
disabled=false(默認為false,表示是否無效) port=22122(默認為22122) base_path=/data/fastdfs/tracker
3)編輯client端的配置文件client.conf,需要修改內容如下
base_path=/data/fastdfs/tracker tracker_server=172.18.10.232:22122
4)創建tracker server數據目錄
[root@fastdfs-tracker ~]# mkdir -p /data/fastdfs/tracker
5)測試啟動tracker server,啟動成功會自動在/data/fastdfs/tracker目錄新建data和logs目錄
[root@fastdfs-tracker ~]# cd /data/fastdfs/tracker/ [root@fastdfs-tracker tracker]# ls [root@fastdfs-tracker tracker]# /etc/init.d/fdfs_trackerd start Starting FastDFS tracker server: [root@fastdfs-tracker tracker]# ss -lntup|grep 22122 tcp LISTEN 0 128 *:22122 *:* users:(("fdfs_trackerd",3785,5)) [root@fastdfs-tracker tracker]# ls data logs
6)關閉tracker server
[root@fastdfs-tracker tracker]# /etc/init.d/fdfs_trackerd stop waiting for pid [3785] exit ... pid [3785] exit.
5、配置存儲服務器(storage server)
1)拷貝storage server樣例配置文件並重命名
[root@fastdfs-storage ~]# cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
2)編輯storage server配置文件storage.conf,需要修改內容如下:
disabled=false(默認為false,表示是否無效) port=23000(默認為23000) base_path=/data/fastdfs/storage tracker_server=172.18.10.232:22122 store_path0=/data/fastdfs/storage http.server_port=8888(默認為8888,nginx中配置的監聽端口那之一致)
3)創建storage server數據目錄
[root@fastdfs-storage ~]# mkdir -p /data/fastdfs/storage
4)測試啟動storage server,啟動成功會自動在/data/fastdfs/tracker目錄新建data和logs目錄(啟動storage server的前提是tracker server必須事先已啟動)
[root@fastdfs-storage ~]# cd /data/fastdfs/storage/ [root@fastdfs-storage storage]# ls [root@fastdfs-storage storage]# /etc/init.d/fdfs_storaged start Starting FastDFS storage server: [root@fastdfs-storage storage]# ss -lntup|grep 23000 tcp LISTEN 0 128 *:23000 *:* users:(("fdfs_storaged",3786,5)) [root@fastdfs-storage storage]# ls data logs
6、文件上傳測試
執行如下上傳命令:
[root@fastdfs-tracker ~]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /home/oldcat/imgs/test.jpg group1/M00/00/00/rBIK6VcaP0aARXXvAAHrUgHEviQ394.jpg 返回文件ID即說明文件已經上傳成功
四、存儲服務器(storage server)安裝並配置nginx
1)安裝fastdfs-nginx-module模塊
注:FastDFS通過Tracker服務器,將文件放在Storage服務器存儲,但是同組存儲服務器之間需要進入文件復制,有同步延遲的問題。假設Tracker服務器將文件上傳到了192.168.4.125,上傳成功后文件ID已經返回給客戶端。此時FastDFS存儲集群機制會將這個文件同步到同組存儲192.168.4.126,在文件還沒有復制完成的情況下,客戶端如果用這個文件ID在192.168.4.126上取文件,就會出現文件無法訪問的錯誤。而fastdfs-nginx-module可以重定向文件連接到源服務器取文件,避免客戶端由於復制延遲導致的文件無法訪問錯誤。
[root@fastdfs-storage tools]# tar xf fastdfs-nginx-module_v1.16.tar.gz [root@fastdfs-storage tools]# cd fastdfs-nginx-module/src/ [root@fastdfs-storage src]# vim config 編輯config文件,執行如下命令進行批量替換並保存退出 :%s+/usr/local/+/usr/+g
2)拷貝fastdfs-nginx-module模塊中配置文件到/etc/fdfs目錄中並編輯
[root@fastdfs-storage ~]# cp /home/oldcat/tools/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/ [root@fastdfs-storage ~]# vim /etc/fdfs/mod_fastdfs.conf 修改內容如下: connect_timeout=10 base_path=/tmp(默認為/tmp) tracker_server=172.18.10.232:22122 storage_server_port=23000(默認配置為23000) url_have_group_name = true store_path0=/data/fastdfs/storage group_name=group1(默認配置為group1)
3)安裝nginx依賴庫
[root@fastdfs-storage nginx-1.8.1]# yum install -y pcre-devel zlib-devel
4)安裝nginx
[root@fastdfs-storage tools]# tar xf nginx-1.8.1.tar.gz [root@fastdfs-storage tools]# cd nginx-1.8.1 [root@fastdfs-storage nginx-1.8.1]# ./configure --prefix=/application/nginx/ --add-module=../fastdfs-nginx-module/src/ [root@fastdfs-storage nginx-1.8.1]# make && make install
5)拷貝FastDFS中的部分配置文件到/etc/fdfs目錄中
[root@fastdfs-storage ~]# cp /home/oldcat/tools/FastDFS/conf/http.conf /etc/fdfs/ [root@fastdfs-storage ~]# cp /home/oldcat/tools/FastDFS/conf/mime.types /etc/fdfs/
6)配置nginx,如下所示:
[root@fastdfs-storage ~]# vim /application/nginx/conf/nginx.conf user root; 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]/ { ngx_fastdfs_module; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
說明:
a、"user root"是解決下載操作時報404的問題
b、8888端口號與/etc/fdfs/storage.conf中的http.server_port=8888相對應
c、storage對應有多個group的情況下,訪問路徑帶group名稱,例如:/group1/M00/00/00/**,對應nginx配置:
location ~/group[0-9]/ {
ngx_fastdfs_module;
}
7)拷貝nginx服務到/etc/init.d/目錄下並啟動
[root@fastdfs-storage ~]# cp /application/nginx/sbin/nginx /etc/init.d/ [root@fastdfs-storage ~]# /etc/init.d/nginx [root@fastdfs-storage ~]# ss -lntup|grep 8888 tcp LISTEN 0 128 *:8888 *:* users:(("nginx",7308,6),("nginx",7309,6))
然后就可以訪問了
http://192.168.253.166:8888/group1/M00/00/00/wKj9plo8hJGAPiohAAA63MGvq1Q829.png
轉自:http://blog.csdn.net/u010098331/article/details/51646921