单机部署Fastfds+nginx

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单机部署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
:%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的主要内容,如果未能解决你的问题,请参考以下文章

docker下搭建fastfds集群版

FastDFS存储-单机配置

项目 - 云盘项目(整体流程)

nginx基于uwsgi部署Django (单机搭建)

nginx + uwsgi 部署 Django+Vue项目

tomcat单机多应用部署,Nginx负载均衡