fastdfs github地址: https://github.com/happyfish100/html
1.FastDFS上傳原理
- storage定時向tracker上傳狀態信息
- client上傳鏈接請求到tracker
- tracker查詢可用的storage,並返回storage的ip和端口
- 上傳文件fIlecontent和meta data
- 生成file_id,將上傳的內容寫入磁盤,並返回file_id路徑和文件名java
安裝以前先安裝所須要的插件nginx
libevent git
http://libevent.org/ 下載 libevent-2.0.22-stable.targithub
libfastcommon vim
https://github.com/happyfish100/libfastcommon.git 下載libfastcommon服務器
fastdfs app
一.安裝libeventurl
進入目錄;
./configure --prefix=/usr 配置目錄
make
make install
驗證 ls -al /usr/lib |grep libevent
二.安裝libfastcommon
unzip libfastcommon-master.zip
cd libfastcommon-master
./make.sh
./make.sh install
三.安裝fastdfs
解壓 tar -zxvf FastDFS.tar.gz
cd FastDFS
./make.sh
./make.sh install
四.配置 tracker.conf
cd /etc/fdfs/
cp tracker.conf.sample tracker.conf
vi tracker.conf
base_path=/data/fastdfs/tracker #設置 tracker 的數據文件和日誌目錄(需預先建立) mkdir -p /home/fastdfs/tracker
store_group=group1 #修改組名
五. 配置 storage.conf
cp storage.conf.sample storage.conf
vi storage.conf
group_name=group1 #組名,根據實際狀況修改
base_path=/home/fastdfs/storage #設置 storage 的日誌目錄(需預先建立)mkdir -p /home/fastdfs/storage
store_path_count=1 #存儲路徑個數,須要和 store_path 個數匹配
store_path0=/home/fastdfs/storage/datas #存儲路徑(需預先建立)mkdir -p /home/fastdfs/storage/datas
tracker_server=10.10.10.81:22122 #tracker 服務器的 IP 地址和端口號
六.配置 client.conf
cp client.conf.sample client.conf
vi client.conf
base_path=/data/fastdfs/fdfs_client # 日誌路徑
tracker_server=172.16.1.40:22122 # 追蹤服務器的IP,有多個服務器能夠另外一行
啓動
啓動 fdfs_trackerd /etc/fdfs/tracker.conf
啓動 fdfs_storaged /etc/fdfs/storage.conf
重啓
[root@fedora15 user]#/usr/local/bin/restart.sh /usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf
[root@fedora15 user]#/usr/local/bin/restart.sh/usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf
中止
直接kill便可讓server進程正常退出,能夠使用killall命令,例如:
killall fdfs_trackerd
killall fdfs_storaged
測試上傳
fdfs_upload_file /etc/fdfs/client.conf /etc/a.jpg
七:安裝fastdfs-nginx-module(安裝以前已經安裝好nginx。地址:nginx源碼安裝)
下載 fastdfs-nginx-module_v1.16.tar.gz
地址:https://sourceforge.net/projects/fastdfs/files/FastDFS%20Nginx%20Module%20Source%20Code/
解壓 tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
1. 修改文件 xx/fastdfs-nginx-module_v1.16/src/config, 去除CORE_INCS 中的local , 由於fastdfs 和 fastcommon 在/usr/include
2. 進入nginx 源碼目錄:cd /home/mirror/software/java/nginx/nginx-1.11.2
3. 執行命令:./configure --add-module=/home/mirror/software/java/nginx/fastdfs-nginx-module/src
4. 執行命令: make
5. 執行命令: make install
八. fastdfs裏nginx配置文件
cd /usr/local/src/fastdfs-nginx-module/src
cp mod_fastdfs.conf /etc/fdfs
cd /usr/local/src/FastDFS/conf/
cp anti-steal.jpg http.conf mime.types /etc/fdfs
九. 配置mod_fastdfs.conf,配置文件加入
cd /etc/fdfs/
vim mod_fastdfs.conf
base_path=/home/fastdfs/storage #保存日誌目錄
tracker_server=10.10.10.80:22122 #tracker 服務器的 IP 地址以及端口號
storage_server_port=23000 #storage服務器的端口號
group_name=group1 #當前服務器的group名
url_have_group_name = true #文件url中是否有group 名
store_path_count=1 #存儲路徑個數,須要和store_path 個數匹配
store_path0=/data/fastdfs/storage #存儲路徑
group_count = 1 #設置組的個數
#而後在末尾添加分組信息,目前只有一個分組,就只寫一個
[group1]
group_name=G1
storage_server_port=23000
store_path_count=1
store_path0=/data/fastdfs/storage
十.nginx配置文件加入
location ~ /group[1-3]/M00 {
root /data2/;
ngx_fastdfs_module;
}
啓動nginx /usr/local/nginx/sbin/nginx
參考資料 :
http://fredlong.iteye.com/blog/2288039
http://www.javashuo.com/article/p-ttozcanm-kd.html
http://www.cnblogs.com/sunmmi/articles/5799692.html