FastDFS单节点安装--单机版本 (转)

FastDFS单节点安装

(转)

安装步骤详见网站: FastDFS+Nginx 单点部署
目录
服务器规划: 2
安装包: 2

一、所有tracker和storage节点都执行如下操作 2

1、安装所需的依赖包 2
2、安装libfatscommon 2
3、安装FastDFS 3

二、配置tracker服务器 4

1、复制tracker样例配置文件,并重命名 4
2、修改tracker配置文件 4
3、创建base_path指定的目录 4
4、防火墙中打开tracker服务器端口( 默认为 22122) 4
5、启动tracker服务器 4

三、配置storage服务器 5

1、复制storage样例配置文件,并重命名 5
2、编辑配置文件 5
3、创建基础数据目录 5
4、防火墙中打开storage服务器端口( 默认为 23000) 5
5、启动storage服务器 6

四、文件上传测试(ip01) 6

1、修改Tracker服务器客户端配置文件 6
2、执行文件上传命令 6

五、在所有storage节点安装fastdfs-nginx-module 6

1、fastdfs-nginx-module 作用说明 6
2、解压 fastdfs-nginx-module_v1.16.tar.gz 7
3、修改 fastdfs-nginx-module 的 config 配置文件 7
4、安装Nginx上传当前的稳定版本 Nginx(nginx-1.10.0.tar.gz)到/usr/local/src 目录 7
5、安装编译 Nginx 所需的依赖包 7
6、编译安装 Nginx (添加 fastdfs-nginx-module 模块) 7
7、复制 fastdfs-nginx-module 源码中的配置文件到/etc/fdfs 目录,并修改 8
8、修改以下配置: 8
9、复制 FastDFS 的部分配置文件到/etc/fdfs 目录 8
10、在/fastdfs/storage 文件存储目录下创建软连接,将其链接到实际存放数据的目录 9
11、配置 Nginx 9
12、防火墙中打开 Nginx 的 8888 端口 10

六、验证:通过浏览器访问测试时上传的文件 10


服务器规划:

跟踪服务器(Tracker Server):ip01
存储服务器(Storage Server):ip02
操作系统:CentOS7
用户:root
数据存储目录:
/fastdfs/tracker
/fastdfs/storage
安装包:
1.FastDFS_v5.08.tar.gz:FastDFS源码
2.libfastcommon-master.zip:(从 FastDFS 和 FastDHT 中提取出来的公共 C 函数库)
3.fastdfs-nginx-module-master.zip:storage节点http服务nginx模块
4.nginx-1.10.0.tar.gz:Nginx安装包
5.ngx_cache_purge-2.3.tar.gz:图片缓存清除Nginx模块(集群环境会用到)
点击这里下载所有安装包 https://pan.baidu.com/s/1i5dpEJV,
你也可以从作者github官网去下载 https://github.com/happyfish100。
下载完成后,将压缩包解压到/usr/local/src目录下

一、所有tracker和storage节点都执行如下操作
1、安装所需的依赖包
 yum install make cmake gcc gcc-c++
2、安装libfatscommon
cd /usr/local/src
#安装unzip 命令:
yum install -y unzip zip


unzip libfastcommon-master.zip    


cd libfastcommon-master
编译、安装
./make.sh


./make.sh install
3、安装FastDFS
cd /usr/local/src

tar -xzvf FastDFS_v5.08.tar.gz

cd FastDFS

./make.sh

./make.sh install
采用默认安装方式,相应的文件与目录检查如下:
1> 服务脚本:
/etc/init.d/fdfs_storaged

/etc/init.d/fdfs_trackerd
2> 配置文件(示例配置文件):
 ll /etc/fdfs/

-rw-r–r-- 1 root root 1461 1月 4 14:34 client.conf.sample
-rw-r–r-- 1 root root 7927 1月 4 14:34 storage.conf.sample
-rw-r–r-- 1 root root 7200 1月 4 14:34 tracker.conf.sample

3> 命令行工具(/usr/bin目录下)

-rwxr-xr-x 1 root root 260584 1月 4 14:34 fdfs_appender_test
-rwxr-xr-x 1 root root 260281 1月 4 14:34 fdfs_appender_test1
-rwxr-xr-x 1 root root 250625 1月 4 14:34 fdfs_append_file
-rwxr-xr-x 1 root root 250045 1月 4 14:34 fdfs_crc32
-rwxr-xr-x 1 root root 250708 1月 4 14:34 fdfs_delete_file
-rwxr-xr-x 1 root root 251515 1月 4 14:34 fdfs_download_file
-rwxr-xr-x 1 root root 251273 1月 4 14:34 fdfs_file_info
-rwxr-xr-x 1 root root 266401 1月 4 14:34 fdfs_monitor
-rwxr-xr-x 1 root root 873233 1月 4 14:34 fdfs_storaged
-rwxr-xr-x 1 root root 266952 1月 4 14:34 fdfs_test
-rwxr-xr-x 1 root root 266153 1月 4 14:34 fdfs_test1
-rwxr-xr-x 1 root root 371336 1月 4 14:34 fdfs_trackerd
-rwxr-xr-x 1 root root 251651 1月 4 14:34 fdfs_upload_appender
-rwxr-xr-x 1 root root 252781 1月 4 14:34 fdfs_upload_file

二、配置tracker服务器
1、复制tracker样例配置文件,并重命名
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
2、修改tracker配置文件
vim /etc/fdfs/tracker.conf 

修改的内容如下:

disabled=false              # 启用配置文件
port=22122                  # tracker服务器端口(默认22122)
base_path=/fastdfs/tracker  # 存储日志和数据的根目录
其它参数保留默认配置, 具体配置解释可参考官方文档说明:http://bbs.chinaunix.net/thread-1941456-1-1.html
3、创建base_path指定的目录
mkdir -p /fastdfs/tracker
4、防火墙中打开tracker服务器端口( 默认为 22122)(如果你是阿里云的服务器之间去安全组开放端口就行了,之后的与防火墙相关的就不用看了
vi /etc/sysconfig/iptables 

附加:若/etc/sysconfig 目录下没有iptables文件可随便写一条iptables命令配置个防火墙规则:如:

iptables -P OUTPUT ACCEPT

然后用命令:service iptables save进行保存,默认就保存到/etc/sysconfig/iptables文件里。这时既有了这个文件。防火墙也可以启动了。接下来要写策略,也可以直接写在/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

注意启动方式,上面不行就用下面的
tracker server节点 启动

/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf

(/usr/local/bin/fdfs_trackerd这个是fdfs_trackerd服务的路径)
tracker server节点重启

/usr/local/bin/restart.sh /usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf

初次启动,会在/fastdfs/tracker目录下生成logs、data两个目录。
drwxr-xr-x 2 root root 4096 1月 4 15:00 data
drwxr-xr-x 2 root root 4096 1月 4 14:38 logs

检查FastDFS Tracker Server是否启动成功:

ps -ef | grep fdfs_trackerd
三、配置storage服务器
1、复制storage样例配置文件,并重命名
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
2、编辑配置文件
vi /etc/fdfs/storage.conf

修改的内容如下:

disabled=false                      # 启用配置文件
port=23000                          # storage服务端口
base_path=/fastdfs/storage          # 数据和日志文件存储根目录
store_path0=/fastdfs/storage        # 第一个存储目录
tracker_server=ip01:22122  # tracker服务器IP和端口
http.server_port=8888               # http访问文件的端口

其它参数保留默认配置, 具体配置解释可参考官方文档说明:http://bbs.chinaunix.net/thread-1941456-1-1.html

3、创建基础数据目录
mkdir -p /fastdfs/storage
4、防火墙中打开storage服务器端口( 默认为 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

注意启动方式,上面如果无法正常启动用这个
storaged server 启动

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

storaged server重启

/usr/local/bin/restart.sh/usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf

停止

killall fdfs_trackerd 
killall fdfs_storaged

初次启动,会在/fastdfs/storage目录下生成logs、data两个目录。

drwxr-xr-x 259 root root 4096 Mar 31 06:22 data
drwxr-xr-x   2 root root 4096 Mar 31 06:22 logs

检查FastDFS Tracker Server是否启动成功:
[root@gyl-test-t9 ~]# ps -ef | grep fdfs_storaged(2个才是正常启动)
root 1336 1 3 06:22 ? 00:00:01 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf
root 1347 369 0 06:23 pts/0 00:00:00 grep fdfs_storaged

四、文件上传测试(ip01)
1、修改Tracker服务器客户端配置文件
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
vim /etc/fdfs/client.conf

修改以下配置,其它保持默认

base_path=/fastdfs/tracker
tracker_server=ip01:22122
2、执行文件上传命令

#/usr/local/src/test.png 是需要上传文件路径

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/test.png

返回文件ID号:group1/M00/00/00/tlxkwlhttsGAU2ZXAAC07quU0oE095.png
(能返回以上文件ID,说明文件已经上传成功)

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

tar -xzvf fastdfs-nginx-module_v1.16.tar.gz
3、修改 fastdfs-nginx-module 的 config 配置文件

 cd fastdfs-nginx-module/src
 vi config

CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/" 
修改为:
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
4、安装Nginx上传当前的稳定版本 Nginx(nginx-1.10.0.tar.gz)到/usr/local/src 目录
5、安装编译 Nginx 所需的依赖包
yum install gcc gcc-c++ make automake autoconf libtool pcre* zlib openssl openssl-devel
6、编译安装 Nginx (添加 fastdfs-nginx-module 模块)
cd /usr/local/src/
tar -zxvf nginx-1.10.0.tar.gz
cd nginx-1.10.0

./configure --add-module=/usr/local/src/fastdfs-nginx-module/src 

make && make install

比对 nginx(安装目录下)下Makefile

default:        build

clean:
        rm -rf Makefile objs

build:
        $(MAKE) -f objs/Makefile

install:
        $(MAKE) -f objs/Makefile install

modules:
        $(MAKE) -f objs/Makefile modules

upgrade:
        /usr/local/nginx/sbin/nginx -t

        kill -USR2 'cat /usr/local/nginx/logs/nginx.pid'
        sleep 1
        test -f /usr/local/nginx/logs/nginx.pid.oldbin

        kill -QUIT 'cat /usr/local/nginx/logs/nginx.pid.oldbin'
7、复制 fastdfs-nginx-module 源码中的配置文件到/etc/fdfs 目录,并修改
cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/ 
vi /etc/fdfs/mod_fastdfs.conf
8、修改以下配置:
connect_timeout=10
     base_path=/tmp
     tracker_server=ip01:22122
     storage_server_port=23000
     group_name=group1
     url_have_group_name = true
     store_path0=/fastdfs/storage
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

(如果报错重启之前2个服务)

11、配置 Nginx
这个要注意是安装目录下的配置文件是个坑,我就不小心看错了
user nobody;
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 {
            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

启动 Nginx

 /usr/local/nginx/sbin/nginx

(重启 Nginx 的命令为:/usr/local/nginx/sbin/nginx -s reload)

六、验证:通过浏览器访问测试时上传的文件
 http://ip:port/group1/M00/00/00/tlxkwlhttsGAU2ZXAAC07quU0oE095.png 

or

http://ip/group1/M00/00/00/tlxkwlhttsGAU2ZXAAC07quU0oE095.png

七、客户端配置

1、项目pom.xml引入

<dependency>
			<groupId>fastdfs_client</groupId>
			<artifactId>fastdfs_client</artifactId>
			<version>0.0.2-SNAPSHOT</version>
</dependency>

2、resources下加入文件fastdfs_client.conf
注意修改ip0为tracker服务器Ip地址

connect_timeout = 2
network_timeout = 30
charset = ISO8859-1
http.tracker_http_port = 8888
http.anti_steal_token = no
tracker_server =ip0:22122
default_group_name=group1

八、部署遇到的问题

1、本地电脑无法访问fastDFS服务器
解决:
(1)需要开通fastDfs服务器外网访问的端口,上传文件端口22122,浏览器访问端口8888。
(2)在nginx配置fastdfs的server端口时尽量不要使用80端口,以免与其他服务端口造成冲突。

九、强调一点阿里云的服务器端口是在安全组里面配置的,去开放就行了就不用管文章中的防火墙问题,还有没事别用80端口,额外一点是阿里云是要备案才能用的,到此结束,欢迎指出错误,我会修改的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值