【Linux】fastDFS安装(Ubuntu)

 安装FastDFS,有三个子模块,如下所示。

fastdfs v6.06

libfastcommon v1.0.43

fastdfs-nginx-module v 1.22

安装C/C++编译环境

sudo apt install g++
sudo apt install make

一、FastDFS的安装

1、下载安装libfastcommon 

下载,命令:

wget https://github.com/happyfish100/libfastcommon/archive/V1.0.43.tar.gz

解压libfastcommon,命令:

tar -zxvf V1.0.43.tar.gz

编译,进入libfastcommon-1.0.43目录,命令:

cd libfastcommon-1.0.43
  ./make.sh

安装,命令:

 ./make.sh install

设置软连接,命令:

ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

2、下载安装FastDFS 

下载,命令:

wget https://github.com/happyfish100/fastdfs/archive/V6.06.tar.gz

解压FastDFS,命令: 

tar -zxvf V6.06.tar.gz

编译,进入fastfds-6.06目录,命令:

cd fastdfs-6.06
./make.sh

安装,命令:

./make.sh install

显示如上图,FastDFS安装成功。 

FastDFS 服务脚本设置的 bin 目录是 /usr/local/bin, 但实际命令安装在 /usr/bin/ 下。

建立 /usr/bin 到 /usr/local/bin 的软链接。

ln -s /usr/bin/fdfs_trackerd   /usr/local/bin
ln -s /usr/bin/fdfs_storaged   /usr/local/bin
ln -s /usr/bin/stop.sh         /usr/local/bin
ln -s /usr/bin/restart.sh      /usr/local/bin

二、配置Tracker与Storage

FastDFS安装成功后,会在/etc目录下会有个fdfs目录,进入fdfs,会发现三个.sample后缀的示例文件。

1、配置FastDFS跟踪器(Tracker)

① 进入 /etc/fdfs,复制 FastDFS 跟踪器样例配置文件 tracker.conf.sample,并重命名为 tracker.conf。

cd /etc/fdfs
cp tracker.conf.sample tracker.conf
vim tracker.conf

② 在/etc/fdfs目录下,修改tracker.conf,命令:

cp tracker.conf.sample tracker.conf

vim tracker.conf

打开tracker.conf,修改如下处: 

 # the base path to store data and log files
base_path=/data/fastdfs/tracker

③ 创建/data/fastdfs/tracker目录,命令: 

mkdir -p /data/fastdfs/tracker

④ 防火墙中打开跟踪端口(默认的22122)

#查看防火墙状态
sudo ufw status

#添加开放SSH端口(22122)
sudo ufw allow 22122        //开放22122端口

#开启完成,需要重启防火墙生效
sudo ufw reload      //重启ufw防火墙

⑤ 启动tracker服务,

初次成功启动,会在 /data/fastdfs/tracker/ (配置的base_path)下创建 data、logs 两个目录。

命令:

fdfs_trackerd /etc/fdfs/tracker.conf start

# 可以用这种方式启动
/etc/init.d/fdfs_trackerd start

# 也可以用这种方式启动,前提是上面创建了软链接,后面都用这种方式
service fdfs_trackerd start

类似的命令,关闭tracker服务:

fdfs_trackerd /etc/fdfs/tracker.conf stop

 启动tracker服务后,查看监听,

查看 FastDFS Tracker 是否已成功启动 ,22122端口正在被监听,则算是Tracker服务安装成功。

命令:

netstat -unltp|grep fdfs

至此tracker跟踪器安装成功。

2、配置 FastDFS 存储 (Storage)

① 进入 /etc/fdfs 目录,复制 FastDFS 存储器样例配置文件 storage.conf.sample,并重命名为 storage.conf。

命令:

cd /etc/fdfs
cp storage.conf.sample storage.conf
vim storage.conf

② 编辑storage.conf,修改如下处:

# the base path to store data and log files
base_path=/data/fastdfs/storage

# store_path#, based 0, if store_path0 not exists, it's value is base_path
# the paths must be exist
store_path0=/data/fastdfs/storage

# tracker_server can ocur more than once, and tracker_server format is
#  "host:port", host can be hostname or ip address
#配置tracker跟踪器ip端口
tracker_server=192.168.7.73:22122

③ 创建/data/fastdfs/storage目录,命令:

mkdir -p /data/fastdfs/storage

④ 防火墙中打开存储器端口(默认的 23000)

# 查看防火墙状态
sudo ufw status

# 添加开放SSH端口(23000)
sudo ufw allow 23000        //开放23000端口

# 开启完成,需要重启防火墙生效
sudo ufw reload      //重启ufw防火墙

⑤ 启动 Storage

启动Storage前确保Tracker是启动的。初次启动成功,会在 /data/fastdfs/storage 目录下创建 data、 logs 两个目录。

fdfs_storaged /etc/fdfs/storage.conf start

# 可以用这种方式启动
/etc/init.d/fdfs_storaged start

# 也可以用这种方式,后面都用这种
service fdfs_storaged start

启动有错误,可以通过/data/fastdfs/storage/logs查看

查看/data/fastdfs/storage下文件内容,生成logs、data两个目录

查看下端口监听,命令:

netstat -unltp|grep fdfs

storage默认端口23000

至此Storage存储节点安装成功。

所有存储节点都启动之后,可以在任一存储节点上使用如下命令查看集群的状态信息:

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

通过上两图可以看到,storage为Active,配置成功。 

 三、测试上传文件

① 同样进入/etc/fdfs目录,编译client.conf,命令如下:

cd /etc/fdfs
cp client.conf.sample client.conf
vim client.conf

修改如下:

# the base path to store log files
base_path=/data/fastdfs/client

# tracker_server can ocur more than once, and tracker_server format is
#  "host:port", host can be hostname or ip address
#配置tracker跟踪器ip端口
tracker_server=192.168.7.73:22122

② 创建/data/fastdfs/client目录,命令:

mkdir -p /data/fastdfs/client

 ③ 上传测试

在linux内部执行如下命令上传 V6.06.tar.gz 文件

fdfs_test /etc/fdfs/client.conf upload /opt/14.jpg

四、安装nginx

上面将文件上传成功了,但我们无法下载。因此安装Nginx作为服务器以支持Http方式访问文件。同时,后面安装FastDFS的Nginx模块也需要Nginx环境。

Nginx只需要安装到StorageServer所在的服务器即可,用于访问文件。我这里由于是单机,TrackerServer和StorageServer在一台服务器上。

1、安装nginx所需环境 

① Nginx安装依赖如下(gcc/pcre/zlib/openssl)插件,先要安装如下插件,命令:

apt-get install openssl libssl-dev
apt-get install libpcre3 libpcre3-dev
apt-get install zlib1g-dev
apt-get install build-essential

2、安装配置Nginx模块 

① 下载、安装;

命令:

# 下载
wget http://nginx.org/download/nginx-1.16.1.tar.gz

# 解压
tar -zxvf nginx-1.16.1.tar.gz
cd nginx-1.12.1

② 编译配置,命令:

 注意最后一行,配置fastdfs-nginx模块的路径(这个路径根据自己实际情况而定)

# 注意最后一行,配置fastdfs-nginx模块的路径(这个路径根据自己实际情况而定)
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/local/nginx/nginx.pid \
--lock-path=/var/lock/nginx/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/home/fastdfs/fastdfs-nginx-module-1.22/src

③ 编译安装,命令:

# 编译、安装
make
make install

 ④ 启动nginx

cd /usr/local/nginx/sbin/
./nginx 

# 其它命令
./nginx -s stop
./nginx -s quit
./nginx -s reload

我这里启动报错,找不到那个目录,于是手动创建,再启动

mkdir -p /var/temp/nginx/client

 nginx默认端口80,查看命令:

netstat -anp|grep 80

3、访问文件 

① 修改nginx.conf

vim /usr/local/nginx/conf/nginx.conf

# 添加如下行,将 /group1/M00 映射到 /ljzsg/fastdfs/file/data
location /group1/M00 {
    alias /usr/local/fastdfs/storage/data;
    add_header Access-Control-Allow-Origin *;                                   
    add_header Access-Control-Allow-Methods GET,POST,OPTIONS;                                               
    add_header Access-Control-Allow-Headers DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type;                                                     
}   


# 重启nginx
/usr/local/nginx/sbin/nginx -s reload

注意事项:
8888 端口值是要与/etc/fdfs/storage.conf 中的http.server_port=8888 相对应,因为 http.server_port 默认为 8888,如果想改成 80,则要对应修改过来。 

 ② 在浏览器访问之前上传的图片、成功。

 五、FastDFS 配置 Nginx 模块

 1、 安装配置fastdfs-nginx-module模块

① fastdfs-nginx-module介绍

FastDFS 通过 Tracker 服务器,将文件放在 Storage服务器存储,但是同组存储服务器之间需要进入文件复制,有同步延迟的问题。假如Tracker 服务器将文件上传到192.168.7.149,上传成功后文件ID已经返回给客户端。此时 FastDFS 存储集群机制会将这个文件同步到同组存储 192.168.7.44,在文件还没有复制完成的情况下,客户端如果用这个文件 ID192.168.7.44
上取文件,就会出现文件无法访问的错误。而 fastdfs-nginx-module 可以重定向文件连接到源服务器取文件,避免客户端由于复制延迟导致的文件无法访问错误。

② 下载fastdfs-nginx-module,本文下载在/home/fastdfs文件夹中,命令:

wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.22.tar.gz

③ 解压,命令:

tar -zxvf V1.22.tar.gz

④ 配置nginx

在nginx中添加模块

# 先停掉nginx服务
/usr/local/nginx/sbin/nginx -s stop
# 进入解压包目录
cd /softpackages/nginx-1.12.1/

# 添加模块
./configure --add-module=../fastdfs-nginx-module-master/src

# 重新编译、安装
make && make install

查看Nginx的模块

/usr/local/nginx/sbin/nginx -V

有下面这个就说明添加模块成功 

 ⑤ 复制 fastdfs-nginx-module 源码中的配置文件到/etc/fdfs 目录, 并修改,命令:

进入fastdfs-nginx-module/src目录下,复制mod_fastdfs.conf文件到 /etc/fdfs目录,进入/etc/fdfs目录,修改mod_fastdfs.conf配置文件

cd /home/fastdfs/fastdfs-nginx-module-1.22/src
cp mod_fastdfs.conf /etc/fdfs
cd /etc/fdfs
vim mod_fastdfs.conf

修改如下配置,其它默认 

# 连接超时时间
connect_timeout=10

# Tracker Server
tracker_server=file.ljzsg.com:22122

# StorageServer 默认端口
storage_server_port=23000

# 如果文件ID的uri中包含/group**,则要设置为true
url_have_group_name = true

# Storage 配置的store_path0路径,必须和storage.conf中的一致
store_path0=/ljzsg/fastdfs/file

⑥  复制 FastDFS 的部分配置文件到/etc/fdfs 目录

cd /softpackages/fastdfs-6.06/conf/

cp anti-steal.jpg http.conf mime.types /etc/fdfs/

⑦ 配置nginx,修改nginx.conf

vim /usr/local/nginx/conf/nginx.conf

修改配置,其它的默认

在80端口下添加fastdfs-nginx模块

location ~/group([0-9])/M00 {
    ngx_fastdfs_module;
}

 

注意:

  listen 80 端口值是要与 /etc/fdfs/storage.conf 中的 http.server_port=80 (前面改成80了)相对应。如果改成其它端口,则需要统一,同时在防火墙中打开该端口。

  location 的配置,如果有多个group则配置location ~/group([0-9])/M00 ,没有则不用配group。

⑧ 在/ljzsg/fastdfs/file 文件存储目录下创建软连接,将其链接到实际存放数据的目录,这一步可以省略。

# ln -s /ljzsg/fastdfs/file/data/ /ljzsg/fastdfs/file/data/M00 

⑨ 启动nginx

# /usr/local/nginx/sbin/nginx

 打印处如下就算配置成功

 ⑩ 在地址栏访问。

能下载文件就算安装成功。注意和第三点中直接使用nginx路由访问不同的是,这里配置 fastdfs-nginx-module 模块,可以重定向文件链接到源服务器取文件。

http://172.16.111.152:8888/group1/M00/00/00/rBBvmGYMr66AKhNWAALjzIJjzck53.jpeg

  • 30
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值