阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Ubuntu 14.04下部署FastDFS 5.08+Nginx 1.9.14

152次阅读
没有评论

共计 5973 个字符,预计需要花费 15 分钟才能阅读完成。

最新的版本可以在这里获取,本文下载的版本是 5.08,FastDFS 是为互联网应用量身定做的一套分布式文件存储系统,非常适合用来存储用户图片、视频、文档等文件。对于互联网应用,和其他分布式文件系统相比,优势非常明显。具体情况大家可以看相关的介绍文档,包括 FastDFS 介绍 PPT 等等。

出于简洁考虑,FastDFS 没有对文件做分块存储,因此不太适合分布式计算场景。

下载好后,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)

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

CentOS 6.2 下 fastDFS 的完整安装和配置步骤 http://www.linuxidc.com/Linux/2012-12/75989.htm

FastDFS 在 Ubuntu 下的安装,PHP 客户端 http://www.linuxidc.com/Linux/2012-09/71459.htm

FastDFS 分布式文件服务器安装,及配置,测试 http://www.linuxidc.com/Linux/2012-09/71458.htm

FastDFS 整合 Nginx 问题整理 http://www.linuxidc.com/Linux/2012-09/71232.htm

CentOS 下搭建 FastDFS http://www.linuxidc.com/Linux/2012-09/70995.htm

Ubuntu 安装 FastDFS 全程记录 http://www.linuxidc.com/Linux/2012-03/56377.htm

FastDFS 的详细介绍:请点这里
FastDFS 的下载地址:请点这里

更多 Ubuntu 相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-07/133485.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计5973字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中