单机部署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 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的主要内容,如果未能解决你的问题,请参考以下文章