前面已经讲 一张图秒懂微服务的网络架构,通过此文章可以了解FastDFS组件中单机安装流程。

单机版架构图

以下为单机FastDFS安装步骤

一、环境准备

CentOS 7.X

 libfastcommon 请采用最新版本, 本次使用最新版本: libfastcommon-1.0.42.tar.gz

 FastDFS 请采用最新版本, 本次使用最新版本: fastdfs-6.04.tar.gz

 fastdfs-nginx-module 请采用最新版本, 本次使用最新版本:fastdfs-nginx-module-1.22.tar.gz

 nginx 请采用最新版本, 本次使用最新版本: nginx-1.16.1.tar.gz

二、安装过程

1、安装 libfastcommon-1.0.42.tar.gz
tar -zxvf libfastcommon-1.0.42.tar.gz
cd libfastcommon-1.0.42/
./make.sh
./make.sh install
  • 1.
  • 2.
  • 3.
  • 4.
2、安装 FastDFS
tar -zxvf  fastdfs-6.04.tar.gz
cd fastdfs-6.04/
./make.sh
./make.sh install
  • 1.
  • 2.
  • 3.
  • 4.
准备配置文件
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
cd /opt/apps/fastdfs-6.04/conf
cp http.conf mime.types /etc/fdfs/
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
Tracker Server 配置
vim /etc/fdfs/tracker.conf
  • 1.
修改配置如下:
#tracker server端口号
port=22122
#存储日志和数据的根目录
base_path=/opt/fastdfs/tracker
#HTTP服务端口
http.server_port=80
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
开放防火墙端口

1、打开跟踪端口

vim /etc/sysconfig/iptables
  • 1.

2、添加以下端口行:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT
  • 1.

3、重启防火墙

service iptables restart
  • 1.
启动Tracker
/etc/init.d/fdfs_trackerd start
  • 1.
Storage Server 配置
vim /etc/fdfs/storage.conf
  • 1.
修改配置如下:
#storage server端口号
port=23000
#数据和日志文件存储根目录
base_path=/opt/fastdfs/storage
#第一个存储目录
store_path0=/opt/fastdfs/storepath0
#tracker服务器IP和端口
tracker_server=192.168.0.1:22122
#http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)
http.server_port=8888
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
开放防火墙端口

1、打开跟踪端口

vim /etc/sysconfig/iptables
  • 1.

2、添加以下端口行:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 23000 -j ACCEPT
  • 1.

3、重启防火墙

service iptables restart
  • 1.
启动Storage
/etc/init.d/fdfs_storaged start
  • 1.
查看集群状态
fdfs_monitor /etc/fdfs/storage.conf list
  • 1.

查看状态是否正常

Storage 1:
id = 6.0.36.243
ip_addr = 6.0.36.243 (anantes-651-1-49-net.w2-0.abo.wanadoo.fr) ACTIVE

Client配置
vim /etc/fdfs/client.conf
  • 1.
修改配置如下:
#
base_path=/opt/apps/fastdfs/client
#tracker服务器IP和端口
tracker_server=192.168.0.1:22122
  • 1.
  • 2.
  • 3.
  • 4.
上传一个图片测试是否能上传成功
fdfs_upload_file /etc/fdfs/client.conf test.jpg
  • 1.

test.jpg 是测试本地上传的图片,路径请填写正确

3、安装 Nginx和 fastdfs-nginx-module
#解压fastdfs-nginx-module
tar -zxvf fastdfs-nginx-module-1.22.tar.gz
cd fastdfs-nginx-module-1.22/
cp ./src/mod_fastdfs.conf /etc/fdfs
#解压nginx
tar -zxvf nginx-1.16.1.tar.gz
cd nginx-1.16.1/
#安装nginx_http_image_filter_module
yum -y install gd-devel
yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel
#添加模块
./configure --add-module=../fastdfs-nginx-module-1.22/src --prefix=/usr/local/nginx --with-http_image_filter_module 
#编译nginx
make
#安装nginx
make install
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
查看是否安装成功
/usr/local/nginx/sbin/nginx -V
  • 1.

查看插件是否安装成功

[root@FastDFS nginx-1.16.1]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.16.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) 
configure arguments: --add-module=../fastdfs-nginx-module-1.21/src --prefix=/usr/local/nginx --with-http_image_filter_module
[root@FastDFS nginx-1.16.1]#
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
修改Nginx访问
vim /etc/fdfs/mod_fastdfs.conf
  • 1.

修改配置如下:

#
connect_timeout=10
#tracker服务器IP和端口
tracker_server=192.168.0.1:22122
#是否启用group组名
url_have_group_name=true
#
store_path0=/opt/fastdfs/storepath0
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
修改Nginx配置:
vim /usr/local/nginx/conf/nginx.conf
  • 1.

修改配置如下:

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        root   html;
        index  index.html index.htm;
    }
    #图片带压缩访问
    location ~ /group1/M00/(.*)\.(jpg|gif|png)!format=([0-9]+)_([0-9]+) {
        alias  /home/fastdfs/storage/data/;
        ngx_fastdfs_module;
        set $w $3;
        set $h $4;

        rewrite group1/M00(.+)\.(jpg|gif|png)!format=([0-9]+)_([0-9]+)$ group1/M00$1.$2 break;

        image_filter resize $w $h;
        image_filter_buffer 5M;
    }
    #主图访问
    location ~ /group([0-9])/M00/(.+)\.?(.+) {
        alias /home/fastdfs/storage/data/;
        ngx_fastdfs_module;
    }
...
}
  • 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.
启动Nginx
#启动
/usr/local/nginx/sbin/nginx
#停止
/usr/local/nginx/sbin/nginx -s stop
#重启
/usr/local/nginx/sbin/nginx -s reload
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

通过以上配置完成FastDFS的搭建。

测试图片访问

图片访问示例:

主图访问

 http://192.168.0.1/group1/M00/00/03/BgAk813IvTCAIxxxAAD44NFKFPc908.png

压缩图片 (主图后加 !format=宽度_高度)访问

 http://192.168.0.1/group1/M00/00/03/BgAk813IvTCAIxxxAAD44NFKFPc908.png!format=400_10

未解决的问题

压缩图片使用主图后?format=宽度_高度