最新的版本可以在这里获取,目前下载的最新版本是5.08,更新于2016-02-03。在这里可以找到更多的说明。

  下载好后,server端分为两个部分,一个是tracker,一个是storage。顾名思义,前者调度管理,负载均衡,后者则是实际的存储节点。两个都能做成集群,以防止单点故障。以前的4.x版本依赖libevent,现在不需要了,只需要libfastcommon。安装方法如下:

1. 下载安装libfastcommon

git clone https://github.com/happyfish100/libfastcommon.git
cd libfastcommon/
./make.sh
./make.sh install

确认make没有错误后,执行安装,64位系统默认会复制到/usr/lib64下。

这时候需要设置环境变量或者创建软链接

export LD_LIBRARY_PATH=/usr/lib64/
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so

2. 下载安装fastdfs

tar xzf FastDFS.tar.gz
cd FastDFS/
./make.sh
./make.sh install

确认make没有错误后,执行安装,默认会安装到/usr/bin中,并在/etc/fdfs中添加三个配置文件。

3. 修改配置文件
首先将三个文件的名字去掉sample,暂时只修改以下几点,先让fastdfs跑起来,其余参数调优的时候再考虑。
tracker.conf 中修改

base_path=/home/fastdfs #用于存放日志。
http.server_port=8090 

storage.conf 中修改

外网访问 出现net.ConnectException: Connection refused: connect
storage的tracker_server地址必须是外网地址,重启FastDFS就好了。

tracker_server=192.168.1.181:22122 #指定tracker服务器地址。
base_path=/home/fastdfs #用于存放日志。
store_path0=/home/fastdfs/storage #存放数据,若不设置默认为前面那个。

http.server_port=80 
group_name=group1 

client.conf 中同样要修改

base_path=/home/fastdfs #用于存放日志。
tracker_server=192.168.1.181:22122 #指定tracker服务器地址。

http.tracker_server_port=80

#include http.conf

其它保持默认,注意上面那个是1个#,默认是2个#,去掉1个就行

4. 启动tracker和storage

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf

netstat –lnp –tcp 参看端口是否起来,默认如果显示22122和8090,23000,80说明服务正常起来

5. 检查进程

root@ubuntu:~# ps -ef |grep fdfs
root       7819      1  0 15:24 ?        00:00:00 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
root       8046      1  0 15:36 ?        00:00:01 fdfs_storaged /etc/fdfs/storage.conf start

表示启动ok了,若有错误,可以在/home/fastdfs目录下检查日志。

6. 上传/删除测试
使用自带的fdfs_test来测试,使用格式如下:

root@ubuntu:~# fdfs_test /etc/fdfs/client.conf upload /home/steven/01.jpg
...
group_name=group1, ip_addr=192.168.1.181, port=23000
storage_upload_by_filename
group_name=group1, remote_filename=M00/00/00/wKgdhFTV0ZmAP3AZAPk-Io7D4w8580.jpg
...
example file url: http://192.168.1.181/group1/M00/00/00/wKgdhFTV0ZmAP3AZAPk-Io7D4w8580.jpg
storage_upload_slave_by_filename
group_name=group1, remote_filename=M00/00/00/wKgdhFTV0ZmAP3AZAPk-Io7D4w8580_big.jpg
...
example file url: http://192.168.1.181/group1/M00/00/00/wKgdhFTV0ZmAP3AZAPk-Io7D4w8580_big.jpg

使用fdfs_delete_file来删除文件,格式如下:

fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKgdhFTV11uAXgKWAPk-Io7D4w8667.jpg

可以看到,上传ok了,这里会生成两个文件,这是fastdfs的主/从文件特性,以后再介绍。example file url是不能在浏览器中直接打开的,除非配合nginx使用。删除文件需要完整的group_name和remote_filename。

因为FastDFS默认自带的http服务器性能不好, 所以一般建议用外置的apache或者nginx 来解决http下载,以应付大并发的情况 注意nginx扩展模块只支持GET和HEAD模式获取文件,需要开发那边配合修改程序
获取nginx和FastDFS的nginx扩展插件
wget https://sourceforge.net/projects/fastdfs/files/FastDFS%20Nginx%20Module%20Source%20Code/

wget http://nginx.org/

解压并编译安装

  备注:如果之前机器上安装了nginx,可以单独安装fastdfs-nginx-module模块,具体方法请参考:如何单独添加NGINX自定义模块

apt卸载nginx方法
卸载方法
# 删除nginx,保留配置文件
sudo apt-get remove nginx

apt-get install libssl-dev zlib1g-dev libpcre3-dev

tar zvxf nginx-1.9.14.tar.gz

tar zvxf fastdfs-nginx-module_v1.16.tar.gz

cd nginx-1.9.14

./configure --prefix=/usr/local/nginx --with-http_gzip_static_module --add-module=/home/alpha/tools/fastdfs-nginx-module/src

            make 

sudo make install

如果出现 fastdfs-nginx-module/src/common.c:21:25: fatal error: fdfs_define.h: 没有那个文件或目录

            
            添加链接
            ln -sv /usr/include/fastcommon /usr/local/include/fastcommon 
            ln -sv /usr/include/fastdfs /usr/local/include/fastdfs 
            ln -sv /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so

可解决!

                   cd /home/alpha/tools/FastDFS/conf
                   cp http.conf /etc/fdfs/
                   cp mime.types /etc/fdfs/
                   cp storage_ids.conf /etc/fdfs

修改nginx扩展模块的配置文件
  cd ../fastdfs-nginx-module/src

cp mod_fastdfs.conf /etc/fdfs/

vi /etc/fdfs/mod_fastdfs.conf

base_path=/home/fastdfs/logs

#存放log的路径

tracker_server=127.0.0.1:22122

#指定tracker服务器及端口

url_have_group_name = true

#这个很重要,在URL中包含group名称

store_path0=/home/fastdfs/storage

#存储文件的路径

storage_server_port=23000

#与storage的配置端口保持一致

保存后退出

做M00的链接

ln -s /home/fastdfs/storage/data  /home/fastdfs/storage/data/M00

修改nginx的配置文件

备注:如果nginx有其他服务器在用,在nginx.conf原有的基础上追加一个下面server的配置即可

vi /usr/local/nginx/conf/nginx.conf

server {

  listen 80;
  location / {

    root /home/fastdfs/storage/data;

    index index.html index.htm;

   }

  location /group1/M00 {

     root /home/fastdfs/storage/data;

    ngx_fastdfs_module;

  }

}

重启相关服务,验证整合是否成功

先重启storage服务:

/etc/init.d/fdfs_storaged start

然后再启动nginx,

注意顺序,否则会报端口占用的错误

/usr/local/nginx/sbin/nginx

查看端口使用情况:
netstat -lnp --tcp

如何让server进程退出运行?
直接kill即可让server进程正常退出,可以使用killall命令,例如:
killall fdfs_trackerd
killall fdfs_storaged
也可以使用如下命令:
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf stop
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf stop
千万不要使用-9参数强杀,否则可能会导致binlog数据丢失的问题。

如何重启server进程?
直接使用:
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

可以在任何storage机器上执行如下命令,查看fastdfs集群状态,如果各个storage状态都为ACTIVE,则搭建成功。

/usr/local/bin/fdfs_monitor /etc/fdfs/storage.conf

关闭tracker(storage)

  /usr/local/bin/stop.sh /usr/local/bin/fdfs_trackered(fdfs_storaged) /etc/fdfs/tracker.conf(storage.conf)

  或者 killall fdfs_trackered(storaged)  -------注意,千万不要使用-9强行杀死进程。否则可能会导致binlog数据丢失的问题。

 
重启tracker(storage)

/usr/local/bin/restart.sh /usr/local/bin/fdfs_trackered(fdfs_storaged) /etc/fdfs/tracker.conf(storage.conf)


删除storage

 /usr/local/bin/fdfs_monitor /etc/fdfs/storage.conf delete group2 20.12.1.73(删除group2中ip为20.12.1.73的storage)

注意:在配置过程,要注意防火墙的设置。关闭防火墙,或者设置对相关端口例外。

http://wenku.baidu.com/view/78ca45c608a1284ac850431b.html?re=view
 

Ubuntu14.04下部署FastDFS 5.08+Nginx 1.9.14的更多相关文章

  1. ubuntu14.04下部署Tsung

    我是在Windows 7下装的虚拟机里部署的Tsung,所以,以下均是在虚拟机下的操作: 1.网络问题必须搞定,见我的另外一篇博文 2.erlang的安装包.Tsung的安装包一一备齐.我用的是tsu ...

  2. Ubuntu14.04下Ambari安装搭建部署大数据集群(图文分五大步详解)(博主强烈推荐)

    不多说,直接上干货! 写在前面的话 (1) 最近一段时间,因担任我团队实验室的大数据环境集群真实物理机器工作,至此,本人秉持负责.认真和细心的态度,先分别在虚拟机上模拟搭建ambari(基于CentO ...

  3. ubuntu14.04下nodejs + npm + bower的安装、调试和部署

      1. 简介 本文介绍ubuntu14.04下nodejs+npm+bower的安装.调试和部署 参考文档 https://docs.npmjs.com/getting-started https: ...

  4. Ubuntu14.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 说在前面的话  首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu LTS \n \l r ...

  5. Ubuntu14.04下Neo4j图数据库官网安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 说在前面的话  首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu 14.04.4 LTS ...

  6. Ubuntu14.04下Mongodb数据库可视化工具安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 前期博客 Ubuntu14.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)(博主推荐) Ubuntu14.04下Mongodb官网安装部署步骤(图 ...

  7. Ubuntu14.04下Mongodb官网卸载部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 前期博客 Ubuntu14.04下Mongodb官网安装部署步骤(图文详解)(博主推荐) https://docs.mongodb.com/manual/tutorial/ins ...

  8. Ubuntu14.04下Mongodb官网安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 在这篇博客里,我采用了非官网的安装步骤,来进行安装.走了弯路,同时,也是不建议.因为在大数据领域和实际生产里,还是要走正规的为好. Ubuntu14.04下Mongodb(离线安 ...

  9. Ubuntu14.04下Mongodb(在线安装方式|apt-get)安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 本博文介绍了MongoDB,并详细指引读者在Ubuntu下MongoDB的安装和使用.本教程在Ubuntu14.04下测试通过. 一.MongoDB介绍 MongoDB 是一个是 ...

随机推荐

  1. python函数调用时传参方式

    位置参数 位置参数需与形参一一对应 def test(a,b) #a,b就是位置参数 print(a) print(b) test(1,2)   关键字参数 与形参顺序无关 def test(x,y) ...

  2. ACM 2000~2002

    ACM  2000  输入三个字符后,按各个字符的ASCⅡ码从小打到的顺序输出这三个字符. import java.util.Scanner; public class Lengxc {public ...

  3. 微信小程序数据分析之自定义分析

    在小程序后台,微信已经提供了强大的数据分析功能,包括实时统计.访问分析.来源分析和用户画像功能,可以说对一般的数据分析已经完全足够了,但有时应用需要做一些更加精准的数据分析,比如具体到某一个页面的分享 ...

  4. CentOS7 搭建GIT环境

    一. 安装 libiconv 这个是非常规项 如果服务器原来已经装过 可以不装 但是如果git安装时候提示找不到libiconv 需要在git的安装参数中指定安装路径 最新版是 1.15 wget h ...

  5. Python学习1——关于变量

    在python中,使用变量之前不需要声明变量的数据类型, 但是,使用变量前,必须要先对变量进行赋值: 例: num01 += 100 print('num01') 上述例子中,表示的意思是 num01 ...

  6. 微信小程序登录以及注册用户信息得到token

    先来一张登录时序图 总的大概就是 通过调用wx.login得到code 请求small_session获得sessionid 微信wx.getUserInfo获得encryptedData和iv 通过 ...

  7. java语言描述 用抽象类模拟咖啡机的工作

    import java.util.Scanner; class Test { public static void main(String[] args) { coffee per = new cof ...

  8. C语言判断字符串是否旋转过

    //方法一 //每次左旋一次,判断旋转之后字符串是否与目标字符串是否一致 //旋转一圈 没有找到返回0 #define _CRT_SECURE_NO_WARNINGS #include<stdi ...

  9. tensorflow 教程 文本分类 IMDB电影评论

    昨天配置了tensorflow的gpu版本,今天开始简单的使用一下 主要是看了一下tensorflow的tutorial 里面的 IMDB 电影评论二分类这个教程 教程里面主要包括了一下几个内容:下载 ...

  10. 北京Uber优步司机奖励政策(9月21日~9月27日)

    用户组:优步北京人民优步A组(适用于9月21日-9月27日) 滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不 ...