1. 程式人生 > >單機部署Fastfds+nginx

單機部署Fastfds+nginx

make -m isa entos x64 生成 iptables 創建 可能

一、環境

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
:%s+/usr/local/bin+/usr/bin

vi fdfs_storaged
:%s+/usr/local/bin+/usr/bin

報錯,用上面的方法:修改啟動配置文件 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