ubuntu16搭建文件服务器

这篇记录,如何在ubuntu16 安装 FastDFS 文件服务器,详细步骤

环境依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

apt-get install make

apt-get install unzip

apt-get install gcc

apt-get install libevent-dev

nginx 依赖

安装gcc g++的依赖库
sudo apt-get install build-essential
sudo apt-get install libtool

安装pcre依赖库(http://www.pcre.org/)
sudo apt-get update
sudo apt-get install libpcre3 libpcre3-dev

安装zlib依赖库(http://www.zlib.net)
sudo apt-get install zlib1g-dev

安装SSL依赖库(16.04默认已经安装了)
sudo apt-get install openssl

安装libevent 2.0.2

1
2
3
4
5
6
7
8
9
10
11
12
13
tar -zxvf libevent-2.0.22-stable.tzr.gz
cd libevent-2.0.22-stable

配置安装库的目标路径:
./configure --prefix=/usr

编译安装libevent库:
make
sudo make install

检测安装是否成功

ls -al /usr/lib | grep libevent

安装libfastcommon-master

1
2
3
4
5
解压
unzip libfastcommon-master.zip

进入该文件,安装
./make.sh && ./make.sh install

至此,所有环境依赖ok

安装FDFS

1
2
3
4
5
6
7
8
9
10
11
12
13
解压
tar -xvf FastDFS_v5.08.tar.gz

进入
cd FastDFS

编译安装
sudo ./make.sh
sudo ./make.sh install

查看是否安装成功
ll /etc/init.d/ | grep fdfs
结果如下图所示,同时出现 tracker 和 storage

上面那两个文件是脚本,分别用来启动FDFS的tracker和storage , 还要记住他们所在的路径 /etc/init.d/ 下面
以后要是做开机启动也是在这里做

安装完了fdfs之后,重启一下, 不然下面配置完了 tracker之后,启动不起来

FDFS配置文件

fdfs启动回去 /etc/fdfs/下面读取配置文件, 安装完后默认会有三个模板配置文件,后续还会添加和http等相关的三个配置文件

我们先启动 tracker–> 去/etc/fdfs/ 修改tracker的配置文件

1
cd /etc/fdfs

在FDFS安装包所在的目录 创建出两个新目录,分别存放 tracker/storage 里面的 数据和日志文件

1
mkdir XXX

我们先修改tracker , 修改第三个配置文件

1
2
重命名配置文件
mv tracker.conf.sample tracker.conf

修改了配置文件,去启动tracker

1
sudo service fdfs_trackerd start # 启动fdfs_trackerd服务,停止用stop

通过下面命令查看是否成功启动

1
ps -ef |grep fdfs

启动storage –编辑storage配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#  修改文件名
sudo cp storage.conf.sample storage.conf
sudo vim storage.conf

修改配置文件 -- 传输过来的文件保存的目录
base_path=/home/fdfschangwu/fdfs/storage # storage的数据和日志存放目录
store_path0=/home/fdfschangwu/fdfs/storage # storage的上传文件存放路径
tracker_server=192.168.56.101:22122 # tracker的地址

创建不存在的目录
XXX

启动storage
sudo service fdfs_storaged start

查看是否启动
ps -ef | grep fdfs

修改客户端配置文件

1
2
bash_path:换成一个存在的文件夹
tracker_server: 真正存在的那个地址

测试上传:

1
2
3
4
5
6
7
8
9
命令:
/usr/bin/fdfs_upload_file client.conf /tmp/1.jpg

响应如下:
group1/M00/00/00/rBUAAlzbpG-ADLFNAAN_1nDfKJs466.jpg

group1: 是我们在storage里面配置的组名
M00: 对应的是我们在storage.conf里面配置的store_path0
00/00 : 是文件目录的打散处理

配置 Nginx – FastDFS模块 ( 加上这一步操作的原因是 80端口被nginx控制了,我们需要在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
31
解压 
tar -xvf fastdfs-nginx-module_v1.16.tar.gz

进入配置目录
cd /fastdfs-nginx-module/src

修改配置
vim config

执行下面命令(将配置中的/usr/local改为/usr):
:%s+/usr/local/+/usr/+g

将src目录下的mod_fastdfs.conf复制到 /etc/fdfs目录:当前全部的配置文件都在这里面,
fdfs运行也会读取这里面的配置文件

sudo cp mod_fastdfs.conf /etc/fdfs/

编辑该文件
sudo vim /etc/fdfs/mod_fastdfs.conf

修改配置
connect_timeout=10 # 客户端访问文件连接超时时长(单位:秒)
tracker_server=192.168.56.101:22122 # tracker服务IP和端口
url_have_group_name=true # 访问链接前缀加上组名
store_path0=/home/fdfschangwu/fdfs/storage # 文件存储路径


复制 FastDFS的和http请求相关的配置文件到/etc/fdfs

cd /home/fdfschangwu/fdfs/FastDFS/config/ # http相关的请求在这里面
cp http.conf mime.types /etc/fdfs/

—- 至此 Nginx模块安装完毕


nginx原来已经安装过了,现在去做些修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
进入 nginx目录
cd /home/ubuntu/nginx-1.10.0/

执行下面的命令 -- 添加一个新的模块(fdfs的源码包))
./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx
--add-module=/home/fdfschangwu/fdfs/fastdfs-nginx-module/src

重新编译-- 不要安装!!!
make

备份之前的nginx
mv /usr/bin/nginx /usr/bin/nginx-back

停止nginx
nginx -s stop

用刚刚编译的nginx 替换原来的nginx
cp /home/ubuntu/nginx-1.10.0/objs/nginx /usr/bin/

修改nginx 的配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
在 nginx安装目录中  /opt/nginx/conf/nginx.conf

{
listen 80;
server_name 211.159.146.192;

# fdfs配置
location ~/group([0-9])/{
ngx_fastdfs_module; # 代理到fdfs的nginx模块
}

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

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

启动nginx

1
2
3
4
nginx 

看到下面的响应证明,一切ok
ngx_http_fastdfs_set pid=1628