安装

下载需要的程序包

1
2
3
4
5
6
7
8
9
10
11
12

## 下载libfastcommon
$ wget https://github.com/happyfish100/libfastcommon/archive/V1.0.39.tar.gz -O libfastcommon.tar.gz

## 下载FastDFS
$ wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz -O fastdfs.tar.gz

## 下载Nginx包
$ wget http://nginx.org/download/nginx-1.12.0.tar.gz -O nginx.tar.gz

## 下载fastdfs-nginx模块包
$ wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.20.tar.gz -O fastdfs-nginx-module.tar.gz

环境安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
## 安装gcc环境 
$ yum -y install gcc-c++
## 安装pcre-devel与openssl-devel
$ yum -y install pcre-devel openssl openssl-devel
```

### 安装libfastcommon

``` shell
## 解压libfastcommon包
$ tar -zxvf libfastcommon.tar.gz
## 进入解压目录
$ cd libfastcommon-1.0.39
## 安装
$ ./make.sh
$ ./make.sh install

安装FastDFS

1
2
3
4
5
6
7
## 解压fastDFS包
$ tar -zxvf fastdfs.tar.gz
## 进入解压目录
$ cd fastdfs-5.11
## 安装:
$ ./make.sh
$ ./make.sh install
1
2
## 检查是否成功
$ ll /etc/fdfs

显示内容:

1
2
3
4
5
6
[root@macOS fdfs]# ll /etc/fdfs
total 24
-rw-r--r-- 1 root root 1461 Nov 26 11:47 client.conf.sample
-rw-r--r-- 1 root root 7927 Nov 26 11:47 storage.conf.sample
-rw-r--r-- 1 root root 105 Nov 26 11:47 storage_ids.conf.sample
-rw-r--r-- 1 root root 7389 Nov 26 11:47 tracker.conf.sample
1
2
3
4
5
## 进入目录 cd /etc/fdfs,然后将这三个文件复制并去掉.sample
$ cd /etc/fdfs
$ cp client.conf.sample client.conf
$ cp storage.conf.sample storage.conf
$ cp tracker.conf.sample tracker.conf

配置tracker

1
2
3
4
5
6
## 创建保存tracker的data和log的目录 
$ mkdir -p /usr/local/fast-dfs/fastdfs_tracker
## 进入目录
$ cd /etc/fdfs
## 修改tracker.conf文件
$ vim tracker.conf

修改如下:

1
2
3
4
disabled=false #默认开启
port=22122 #默认端口号
base_path=/usr/local/fast-dfs/fastdfs_tracker #刚刚创建的目录
http.server_port=6666 #默认端口是8080

使用

1
2
3
4
5
6
7
8
9
10
11
12
## 启动tracker
$ /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
## 查看tracker是否有端口(如果没有出现端口,说明tracker启动失败)
$ netstat -ntpul |grep fdfs

## 重启tracker
$ /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
## 停止tracker
$ /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf stop
## 添加开机启动:
$ chmod +x /etc/rc.d/rc.local
$ echo '/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart' >> /etc/rc.d/rc.local

配置storage

1
2
3
4
5
6
7
8
## 创建保存storage的data和log的目录 
$ mkdir /usr/local/fast-dfs/fastdfs_storage
## 再创建一个文件存储目录
$ mkdir /usr/local/fast-dfs/fastdfs_storage_data
## 进入目录
$ cd /etc/fdfs
## 修改storage.conf文件
$ vim storage.conf

修改如下:

1
2
3
4
5
6
7
8
disabled=false #默认false
group_name=group1 #组名,根据实际情况修改
port=23000 #设置storage的端口号,默认是23000,同一个组的storage端口号必须一致
base_path=/usr/local/fast-dfs/fastdfs_storage #设置storage数据文件和日志目录
store_path_count=1 #存储路径个数,需要和store_path个数匹配
store_path0=/usr/local/fast-dfs/fastdfs_storage_data #实际文件存储路径
tracker_server=服务器公网ip地址:22122
http.server_port=8888 #设置 http 端口号

修改保存后创建软引用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ ln -s /usr/bin/fdfs_storaged /usr/local/bin
## 启动storage
$ /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
## 查看storage是否有端口 (如果没有出现端口,说明storage启动失败)
$ netstat -ntpul | grep fdfs
## 重启storage
$ /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
## 停止storage
$ /usr/bin/fdfs_storaged /etc/fdfs/storage.conf stop
## 添加开机启动
$ echo '/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart' >> /etc/rc.d/rc.local
```

校验整合,确定storage是否注册到了tracker中去

``` code
$ /usr/bin/fdfs_monitor /etc/fdfs/storage.conf

配置客户端client

1
2
3
4
## 进入目录
$ cd /etc/fdfs
## 修改client.conf
$ vim client.conf

修改如下:

1
2
3
base_path=/usr/local/fast-dfs/fastdfs_tracker #tracker服务器文件路径
tracker_server=服务器公网ip地址:22122 #tracker服务器IP地址和端口号
http.tracker_server_port=6666 # tracker 服务器的 http端口号,必须和tracker的设置对应起来!

FastDFS的nginx模块安装

1
2
3
4
5
6
7
8
## 进入根目录(下载包存放的目录)
$ cd ~
## 解压fastdfs的Nginx模块包
$ tar -zvxf fastdfs-nginx-module.tar.gz
## 重命名模块目录
$ mv fastdfs-nginx-module-1.20 fastdfs-nginx-module
## 修改模块配置文件
$ vim /root/fastdfs-nginx-module/src/config
1
2
3
4
修改如下:
ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
CORE_LIBS="$CORE_LIBS -L/usr/lib -lfastcommon -lfdfsclient"

保存后,建立软链接:

1
$ ln -s /usr/include/fast* /usr/local/include/

Nginx安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
## 解压nginx包:
$ tar -zxvf nginx.tar.gz
## 进入nginx解压目录并添加fastdfs的nginx模块:
$ cd nginx-1.12.0
## 预编译
./configure --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --add-module=../nginx-sticky-module-1.1 --add-module=../fastdfs-nginx-module/src

## 安装
make
make install
```

## 配置Nginx


``` code
server{
listen 80;
server_name localhost;

location / {
root html;
index index.html index.htm;
}

location /group1/M00 {
root /data/fastdfs/storage/;
ngx_fastdfs_module;
}
}

参考资料