FastDFS 安装

FastDFS(centerOs)

安装包:
FastDFS_v5.07.tar
libfastcommon-master.zip(是从 FastDFS 和 FastDHT 中提取出来的公共 C 函数库) // https://github.com/happyfish100/libfastcommon
fastdfs-nginx-module_v1.16.tar.gz // https://github.com/happyfish100/fastdfs-nginx-module
nginx-1.9.0.tar.gz
fastdfs_client_java._v1.25.tar.gz
源码地址:https://github.com/happyfish100/
下载地址:http://sourceforge.net/projects/fastdfs/files/
官方论坛:http://bbs.chinaunix.net/forum-240-1.html
一、所有跟踪服务器和存储服务器均执行如下操作
1、编译和安装所需的依赖包:
# yum install make cmake gcc gcc-c++ // 一般可以省略
2. 安装 libfastcommon:
(1)上传或下载
libfastcommon-master.zip 到/usr/local/src 目录
(2)解压
# cd /usr/local/src/
# unzip libfastcommon-master.zip
# cd libfastcommon-master
(3) 编译、安装
# ./make.sh
# ./make.sh install
libfastcommon 默认安装到了 /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so

3、安装 FastDFS
(1)上传或下载 FastDFS 源码包(FastDFS_v5.07.tar)到 /usr/local/src 目录
(2)解压
# cd /usr/local/src/
# tar -xvf FastDFS_v5.07.tar
# cd FastDFS
(3)编译、安装(编译前要确保已经成功安装了 libfastcommon)
# ./make.sh
# ./make.sh install

采用默认安装的方式安装,安装后的相应文件与目录:
A、服务脚本在:
/etc/init.d/fdfs_storaged
/etc/init.d/fdfs_tracker
B、配置文件在(样例配置文件):
/etc/fdfs/client.conf.sample
/etc/fdfs/storage.conf.sample
/etc/fdfs/tracker.conf.sample
C、命令工具在/usr/bin/目录下的:
fdfs_appender_test
fdfs_appender_test1
fdfs_append_file
fdfs_crc32
fdfs_delete_file
fdfs_download_file
fdfs_file_info
fdfs_monitor
fdfs_storaged
fdfs_test
fdfs_test1
fdfs_trackerd
fdfs_upload_appender
fdfs_upload_file
stop.sh
restart.sh

二、配置 FastDFS 跟踪器
1、 复制 FastDFS 跟踪器样例配置文件,并重命名:
# cd /etc/fdfs/
# cp tracker.conf.sample tracker.conf
2、 编辑跟踪器配置文件:
# vi /etc/fdfs/tracker.conf
修改的内容如下:
disabled=false
port=22122
base_path=/opt/fdfs/tracker

3、 创建基础数据目录(参考基础目录 base_path 配置):
# mkdir -p /opt/fdfs/tracker

4、 防火墙中打开跟踪器端口(默认为 22122):
# vi /etc/sysconfig/iptables
添加如下端口行:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT 重启防火墙:
# service iptables restart
5、 启动 Tracker:
# /etc/init.d/fdfs_trackerd start
(初次成功启动,会在/fastdfs/tracker 目录下创建 data、logs 两个目录)
查看 FastDFS Tracker 是否已成功启动:
# ps -ef | grep fdfs
6、 关闭 Tracker:
# /etc/init.d/fdfs_trackerd stop
7、 设置 FastDFS 跟踪器开机启动:
# vi /etc/rc.d/rc.local 添加以下内容:
## FastDFS Tracker
/etc/init.d/fdfs_trackerd start



三、配置 FastDFS 存储(192.168.4.125)
1、 复制 FastDFS 存储器样例配置文件,并重命名:
# cd /etc/fdfs/
# cp storage.conf.sample storage.conf
2、 编辑存储器样例配置文件:
# vi /etc/fdfs/storage.conf
修改的内容如下:
disabled=false
port=23000
base_path=/opt/fdfs/storage
store_path0=/opt/fdfs/storage
tracker_server=192.168.4.121:22122
http.server_port=8888
(其它参数保留默认配置,具体配置解释请参考官方文档说明: http://bbs.chinaunix.net/thread-1941456-1-1.html )
3、 创建基础数据目录(参考基础目录 base_path 配置):
# mkdir -p /fastdfs/storage

4、 防火墙中打开存储器端口(默认为 23000):
# vi /etc/sysconfig/iptables
添加如下端口行:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 23000 -j ACCEPT 重启防火墙:
# service iptables restart

5、 启动 Storage:
# /etc/init.d/fdfs_storaged start (初次成功启动,会在/fastdfs/storage 目录下创建 data、logs 两个目录)
查看 FastDFS Storage 是否已成功启动
# ps -ef | grep fdfs

6、 关闭 Storage:
# /etc/init.d/fdfs_storaged stop
7、 设置 FastDFS 存储器开机启动:
# vi /etc/rc.d/rc.local
添加:
## FastDFS Storage
/etc/init.d/fdfs_storaged start

四、文件上传测试(192.168.4.121)
1、修改 Tracker 服务器中的客户端配置文件:
# cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
# vi /etc/fdfs/client.conf
base_path=/opt/fdfs/tracker
tracker_server=172.18.20.170:22122

2、执行如下文件上传命令:
# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/FastDFS_v5.05.tar.gz
返回 ID 号:group1/M00/00/00/wKgEfVUYNYeAb7XFAAVFOL7FJU4.tar.gz
(能返回以上文件 ID,说明文件上传成功)

六、在每个存储节点上安装 nginx
1、fastdfs-nginx-module 作用说明
FastDFS 通过 Tracker 服务器,将文件放在 Storage 服务器存储,但是同组存储服务器之间需要进入
文件复制,有同步延迟的问题。假设 Tracker 服务器将文件上传到了 192.168.4.125,上传成功后文件
ID 已经返回给客户端。此时 FastDFS 存储集群机制会将这个文件同步到同组存储 192.168.4.126,在文件还
没有复制完成的情况下,客户端如果用这个文件 ID 在 192.168.4.126 上取文件,就会出现文件无法访问的 错误。
而 fastdfs-nginx-module 可以重定向文件连接到源服务器取文件,避免客户端由于复制延迟导致的 文件无法访问错误。
(解压后的 fastdfs-nginx-module 在 nginx 安装时使用)
2、上传 fastdfs-nginx-module_v1.16.tar.gz 到/usr/local/src
3、解压
# cd /usr/local/src/
# tar -zxvf fastdfs-nginx-module-master.tar.gz
4、修改 fastdfs-nginx-module 的 config 配置文件
# cd fastdfs-nginx-module/src
# vi config
确保
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

(注意:这个路径很重要的,不然在 nginx 编译的时候会报错的)

5、上传当前的稳定版本 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 --prefix=/usr/local/nginx --add-module=/usr/local/src/f/fastdfs-nginx-module/src
apt-get install yum
apt-get install pcre
#./configure --prefix=/usr/local/nginx --add-module=/usr/local/src/f/fastdfs-nginx-module-master/src --with-pcre=/usr/local/src/f/pcre-8.38

// ./configure --prefix=/usr/local/nginx --add-module=/usr/local/src/f/fastdfs-nginx-module-master/src --with-pcre=/usr/local/src/f/pcre-8.38 --with-http_ssl_module --with-openssl=/usr/local/src/f/openssl-1.1.0-pre1

# 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=/tmp
tracker_server=192.168.4.121:22122
storage_server_port=23000
group_name=group1
url_have_group_name = true
store_path0=/opt/fdfs/storage
9、复制 FastDFS 的部分配置文件到/etc/fdfs 目录
# cd /usr/local/src/FastDFS/conf
# cp http.conf mime.types /etc/fdfs/
10、在/fastdfs/storage 文件存储目录下创建软连接,将其链接到实际存放数据的目录
# ln -s /opt/fdfs/storage/data/ /opt/fdfs/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 /opt/fdfs/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 后重新启动
D、由于Fdfs安装时,libfdfsclient.so 位于/usr/lib64目录下,需做软连接处理。
#ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

 

参考 文档

 

转载于:https://www.cnblogs.com/hujihon/p/5151634.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/289344.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android之android.system.ErrnoException: open failed: ENOENT (No such file or directory)

1 问题 在sdcard目录下面创建了一个文件提示下面的错误 android.system.ErrnoException: open failed: ENOENT (No such file or directory) 2 分析 错误代码是如下 String path = Environment.getExternalStorageDirectory().getAbsolutePath();try {File dir = new File(p…

ideaspringboot项目上传服务器_nuxt+pm2 自动化部署及打包后文件自动上传阿里云 oss

在读这篇文档时&#xff0c;希望你对 nuxt 及 pm2&#xff0c;有简单的了解nuxtpm2前期准备安装 pm2 及构建 nuxt$ npm i pm2 -g $ npx create-nuxt-app <项目名>ssh 密钥配置pm2 代码自动发布依赖于 git 工具&#xff0c;先将 ssh 密钥配置再你的代码仓库&#xff08;gi…

计算机一级b和小高考,2021年小高考B是几分相关内容

《2021年小高考B是几分相关内容》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《2021年小高考B是几分相关内容(3页珍藏版)》请在人人文库网上搜索。1、小高考B是几分相关内容 小高考专指普通高中学业水平考试&#xff0c;因为与大学录取直接挂钩&#xff0c;所以被称…

Nginx配置文件详细说明(转)

在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络. #运行用户user www-data; #启动进程,通常设置成和cpu的数量相等worker_processes 1; #全局错误日志及PID文件error_log /var/log/nginx/error.log;pid /var/run/nginx.pid; #工作模式及连接数…

运营推广的一些方法

1、技术操作维度&#xff1a;ASO&#xff0c;SEO&#xff0c;ASO简单介绍&#xff1a;http://baike.baidu.com/subview/1368976/9766740.htmSEO学习&#xff1a;《SEO实战密码》https://book.douban.com/subject/5348144/ 《SEO艺术》https://book.douban.com/subject/1054613…

wait放弃对象锁_Java线程中wait、await、sleep、yield、join用法总结

一、wait()、notify()、notifyAll()用法obj.wait()/obj.wait(long timeout)是Object中的方法&#xff0c;当线程调用wait()方法&#xff0c;当前线程释放对象锁&#xff0c;进入等待队列。obj.notify()/obj.nogifyAll()是Object中的方法&#xff0c;唤醒在此对象上wait()的单个…

10个C#编程和Visual Studio使用技巧

摘要:C#是一门伟大的编程语言,与C++和Java相比,它的语法更简单,相对来说更好入门。Visual Studio作为.Net平台上最重量级的IDE,也通过不断的更新为开发者带来更出色的开发体验。本文将介绍10个C#编程和Visual Studio IDE使用技巧。

AspNet Core 6.0 Json写默认首字母小写(camelCase)问题

最近在把旧项目迁移到.net core6.0时遇到了之前一样的问题&#xff1a;框架返回的json序列化时将原来的首字母大写的字段统统转成了首字母小写的小驼峰命名&#xff0c;导致原来写好的前端数据无法正确渲染。于是上网找了下取消该默认行为的方法&#xff0c;在Startup.cs中添加…

学习总结——Selenium元素定位

读一本好书&#xff0c;不能读读就算了&#xff0c;做一下总结&#xff0c;变成自己的&#xff0c;以备查阅。 1. driver.findElement(By.id(<element ID>)) ID是独一无二的&#xff0c;使用ID定位是最为推荐的方法。 但是&#xff1a;1.不是所有元素都会指定ID&…

open ssl里面的自定义get***函数失效

1 问题 在open ssl加载引起里面部分我自己写了一个get和set方法,然后我在其它地方调用使用了Info类型的声明 extern Info info; 先初始化info,然后 info->setA(&info, value); char value[100]; 但是我立马 info->getA(&info, value, sizeof(value)); LOGI(…

计算机在现代商业中的作用,现代商业中计算机web数据挖掘技术的应用

[摘 要] 随着科技水平的不断提高&#xff0c;各种高科技设备辅助互联网将数字化、信息化的方法和手段运用到了各行各业之中&#xff0c;尤其在现代商业中&#xff0c;国际化、全球化的市场规模使得信息的处理工作极为庞大&#xff0c;需要更多的依赖计算机技术来完成。Web数据挖…

八种状态增加测试用例状态的精确度

一般在工作中记录测试用例状态用到三种状态&#xff1a;通过&#xff08;Pass&#xff09;&#xff0c;失败&#xff08;Fail&#xff09;和排队等待中&#xff08;In Queue&#xff09;。但是我倾向与更准确地表示一个一般测试用例的生命周期&#xff0c;尽管你的测试的周期会…

怎么找到项目中所有同名的类_26岁转行程序员的成长历程--Day03从内存层面理解类和对象...

今天学习了类、对象及相关知识&#xff0c;试着从内存角度分析三者关系&#xff0c;如果有不对的地方请指正首先得先介绍java中的三个内存区域&#xff1a;栈区用于存放该线程执行方法的信息&#xff08;实际参数、局部变量等&#xff09;。栈属于线程私有&#xff0c;不能实现…

pycharm提示your evalluation license has expired解决方法

安装pycharm&#xff0c;一段时间后提示your evalluation license has expired&#xff1a;打开pycharm--点击help--register--选中license server,输入license server address如图示即可 转载于:https://www.cnblogs.com/youtiaoge/p/7125070.html

【SPSS统计分析】SPSS聚类分析:一个案例演示聚类分析全过程(附SPSS 19.0中文版下载)

摘要:案例数据源: 有20种12盎司啤酒成分和价格的数据,变量包括啤酒名称、热量、钠含量、酒精含量、价格。数据来自《SPSS for Windows 统计分析》。 目 录 问题一:选择那些变量进行聚类?——采用“R型聚类

python利用特征进行可视化样本显示_利用Python进行机器学习之特征选择

毫无疑问&#xff0c;解决一个问题最重要的是恰当选取特征、甚至创造特征的能力&#xff0c;这叫做特征选取和特征工程。对于特征选取工作&#xff0c;我个人认为分为两个方面&#xff1a;1)利用python中已有的算法进行特征选取。2)人为分析各个变量特征与目标值之间的关系&…

poj 2886 Who Gets the Most Candies?(线段树)

题目链接&#xff1a;poj 2886 Who Gets the Most Candies?题目大意&#xff1a;N个人围成一圈玩约瑟夫环游戏&#xff0c;不同的是。步长不固定&#xff0c;由前一个出局的人决定。给定K表示起始的人。第i个淘汰的人将获得g(i)个糖果&#xff0c;问说谁获得的糖果最多。g(x)为…

linux c之动态打开链接库(dlopen dlsym dlclose)

1 linux提供了加载和处理动态链接库的系统调用 2 主要函数 1) dlopen、 dlopen以指定模式打开指定的动态连接库文件,并返回一个句柄给调用进程,打开模式如下: RTLD_LAZY 暂缓决定,等有需要时再解出符号 RTLD_NOW 立即决定,返回前解除所有未决定的符号。 2) dlsym、 …

甘肃2019年9月计算机二级报名入口,2019年9月甘肃计算机二级考试成绩查询入口...

【摘要】2019年9月份计算机二级考试已经圆满结束&#xff0c;参加考试的小伙伴们已经迫不及待的想要知道成绩了吧&#xff0c;小编对2019年9月甘肃计算机二级考试成绩查询入口进行了整理&#xff0c;参加9月份考试的朋友们到时候记得按时查询成绩哦&#xff01;想要了解更多计算…

FluentEmail - 适用于 .NET 和 .NET Core 的邮件发送库

简介FluentEmail - 适用于 .NET 和 .NET Core 的邮件发送库从 .NET 和 .NET Core 发送电子邮件的最简单方法。将 Razor 用于电子邮件模板并使用 SendGrid、MailGun、SMTP 等进行发送Nuget包•FluentEmail.Core - 域模型•FluentEmail.Smtp - 通过 SMTP 服务器发送电子邮件•Flu…