單機部署Fastfds+nginx
一、環境
centos6.5 x64 IP:192.168.66.129
所需軟件包:
libfastcommon-1.0.7.zip,FastDFS_v5.05.tar.gz,nginx-1.7.8.tar.gz,fastdfs-nginx-module_v1.16.tar.gz,pcre-8.12.tar
網上都能找到,這裏就不提供原網址了!!!
先安裝好需要的依賴環境
yum install make cmake gcc gcc-c++
二、創建目錄
1 2 3 4 5 6 7 |
mkdir -p /data/ {fastdfs_storage_info,fastdfs_storage_data,fastdfs}
fastdfs tracker 目錄
fastdfs_storage_info storage 日誌目錄
fastdfs_storage_data storage 數據目錄
|
三、安裝libfastcommon
1 2 3 4 5 6 7 8 9 10 11 |
unzip libfastcommon-master.zip
若提示報錯則執行 Yum install unzip zip -y
cd libfastcommon-master.zip
. /make .sh
. /make .sh install
|
建立軟連接
1 2 3 4 |
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
|
4、安裝fastdfs
1 2 3 4 5 6 7 |
tar zxf FastDFS_v5.05. tar .gz
cd FastDFS
. /make .sh
. /make .sh install
修改:
vi fdfs_trackerd vi fdfs_storaged 報錯,用上面的方法:修改啟動配置文件
sed -i ‘s#/usr/local/bin/#/usr/bin/#g‘ /etc/init .d /fdfs_stornged
sed -i ‘s#/usr/local/bin/#/usr/bin/#g‘ /etc/init .d /fdfs_trackerd
)
|
五、配置tracker.conf
編譯完成後在/etc/fdfs/目錄下會生成3個模板配置文件
分別是
Client.conf.sample 客戶端配置模板
Storage.conf.sample 存儲節點配置模板
Tarckerd.conf.sample 跟蹤節點配置模板
將3個模板分別復制一次
1 2 3 4 |
cd /etc/fdfs
cp cleant.conf.sample cleant.conf
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf
|
1)配置tracker
vi /tracker.conf 主要修改:
1 |
base_path= /data/fastdfs // 設置tracker的數據文件和日誌目錄
|
啟動tracker
/etc/init.d/fdfs_trackerd start
初次成功後會在/data/fastdfs目錄下創建data、logs兩個目錄。
查看是否啟動成功:
ps -ef | grep fdfs
啟動成功。
關閉tracker:
/etc/init.d/fdfs_trackerd stop
設置跟蹤器開機啟動
vi /etc/rc.d/rc.local
添加
以下內容:
##
FastDFS Tracker
/etc/init.d/fdfs_trackerd start
六、配置storage.conf
1 2 3 4 5 6 7 8 9 |
vi /etc/fdfs/storage.conf
disable= false
group_name=group1 // 組名,根據實際情況修改
port=23000 //storage 端口號,同一個組的storage端口號必須一致
端口號相同,同組成員類數據同步,數據一致
base_path= /data/fastdfs_storage_info //storage 日誌目錄
store_path_count=1 // 存儲路徑個數,需要和store_path個數匹配
store_path0= /data/fastdfs_storage_data // 存儲路徑
tracker_server=192.168.66.129:22122
|
啟動storage:
/etc/init.d/fdfs_storaged start
netstat -anpt | grep fdf
關閉store:
/etc/init.d/fdfs_storaged stop
設置跟蹤器開機啟動
vi /etc/rc.d/rc.local
添加
以下內容:
##
FastDFS Tracker
/etc/init.d/fdfs_storaged start
測試文件上傳:
vi /etc/fdfs/client.conf
base_path=/data/fastdfs_storage_data
tracker_server=192.168.66.129:22122
測試上傳:
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /home/FastDFS_v5.05.tar.gz
能返回
說明上傳成功!
至此 fastfds 已搭建完成,可以通過內置命令進行上傳,下載,刪除
下面將結合nginx實現http訪問以及下載
七.安裝nginx模塊
cd /usr/local/src/
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
cd fastdfs-nginx-module/src
1 2 |
vim /usr/local/fastdfs-nginx-module/src/config
|
去掉這一型代碼中的local
上傳當前的穩定版本 Nginx(nginx-1.6.2.tar.gz)到/usr/local/src 目錄
6、安裝編譯Nginx 所需的依賴包
# yum install gcc gcc-c++ make automake autoconf libtool pcre* zlib openssl openssl-devel
7、編譯安裝Nginx (添加fastdfs-nginx-module 模塊)
# cd /usr/local/src/
# tar -zxvf nginx-1.6.2.tar.gz
# cd nginx-1.6.2
# ./configure --add-module=/usr/local/src/fastdfs-nginx-module/src
# make && make install
8、復制fastdfs-nginx-module 源碼中的配置文件到/etc/fdfs 目錄,並修改
# cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
# vi /etc/fdfs/mod_fastdfs.conf
修改以下配置:
connect_timeout=10
base_path=/data/fastdfs_storage_info //保存日誌目錄
tracker_server=192.168.66.129:22122
storage_server_port=23000
group_name=group1
url_have_group_name = true
store_path0=/data/fastdfs_storage_data
9、復制FastDFS 的部分配置文件到/etc/fdfs 目錄
# cd /usr/local/src/FastDFS/conf
# cp http.conf mime.types /etc/fdfs/
10、在/fastdfs/storage 文件存儲目錄下創建軟連接,將其鏈接到實際存放數據的目錄
# ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00
11、配置Nginx
簡潔版nginx 配置樣例:
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])/M00 {
#alias /fastdfs/storage/data;
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
註意、說明:
A、8888 端口值是要與/etc/fdfs/storage.conf 中的http.server_port=8888 相對應,
因為http.server_port 默認為8888,如果想改成80,則要對應修改過來。
B、Storage 對應有多個group 的情況下,訪問路徑帶group 名,如/group1/M00/00/00/xxx,
對應的Nginx 配置為:
location ~/group([0-9])/M00 {
ngx_fastdfs_module;
}
C、如查下載時如發現老報404,將nginx.conf 第一行user nobody 修改為user root 後重新啟動。
12、防火墻中打開Nginx 的8888 端口
# vi /etc/sysconfig/iptables
添加:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT
# service iptables restart
13、啟動Nginx
# /usr/local/nginx/sbin/nginx
ngx_http_fastdfs_set pid=xxx
(重啟Nginx 的命令為:/usr/local/nginx/sbin/nginx -s reload)
14、通過瀏覽器訪問測試時上傳的文件
http://192.168.66.129:8888/group1/M00/00/00/wKgEfVUYNYeAb7XFAAVFOL7FJU4.tar.gz
七、FastDFS 的使用的Demo 樣例講解與演示:
具體內容請參考樣例代碼和視頻教程
註意:千萬不要使用kill -9 命令強殺FastDFS 進程,否則可能會導致binlog 數據丟失。
==========================以上完成======================
編譯nginx
1 2 3 4 5 |
. /configure
--prefix= /usr/local/nginx
--add-module= /usr/local/fastdfs-nginx-module/src --with-http_ssl_module
--with-pcre= /usr/local/src/pcre-8 .12
make && make install
|
vim /usr/local/nginx/conf/nginx.conf
在server段中添加如下內容:
1 2 3 4 |
location ~ /M00 {
root /data/fastdfs_storage_data/data ;
ngx_fastdfs_module;
}
|
Nginx配置完畢!!
將http.conf、mod_fastdfs.conf mime.types復制一份到/etc/fdfs/
1 2 3 |
cp 存放路徑 /fastdfs-5 .05 /conf/http .conf /etc/fdfs/
cp 存放路徑 /fastdfs-5 .05 /conf/mime .types /etc/fdfs/
cp /usr/local/fastdfs-nginx-module/src/mod_fastdfs .conf /etc/fdfs/
|
編輯 mod_fastdfs.conf
1 |
vim /etc/fdfs/mod_fastdfs .conf
|
base_path=/data/fastdfs_storage_info //保存日誌目錄
tracker_server=192.168.134.128:22122 #若有多個可以寫多個
storage_server_port=23000 需要和節點配置文件參數一致
group_name=group1 需要和節點配置文件參數一致
url_have_group_name=true 啟動組內成員http功能
store_path_count=1 和store_path數量一致,否則會報錯
store_path0=/data/fastdfs_storage_data //存儲節點路徑
建立軟連接
1 |
ln -s /data/fastdfs_storage_data/data /data/fastdfs_storage_data/data/M00
|
9、測試上傳
fdfs_upload_file /etc/fdfs/client.conf client.conf.sample
如果我們想要通過http下載或者訪問
http://192.168.134.128/group1/M00/00/00/wKiGgFd1A02Aeei1AAAFtTzeg5c.sample
謝謝~
單機部署Fastfds+nginx