在CentOS上搭建FastDFS+nginx

一、软件下载

  1. fastdfs
  2. libfastcommon
  3. fastdfs-nginx-module
  4. nginx

二、安装fastdfs的tracker部分

A.配置fastdfs环境

1. gcc
yum install gcc-c++
2. libevent:
yum -y install libevent
3. libfastcommon:

  1. 在linux中创建个人文件存放目录(个人习惯,后面配置中用到的/zhanping文件夹都必须与此保持一致)
    cd /
    mkdir /zhanping
    cd /zhanping
    mkdir soft
    mkdir install
  2. 通过SSH Secure File Transfer Client上传libfastcommonV1.0.7.tar.gz到/zhanping/soft目录下
  3. 解压libfastcommonV1.0.7.tar.gz到/zhanping/install目录下
    cd /zhanping/soft
    tar -zxvf libfastcommonV1.0.7.tar.gz -C /zhanping/install
  4. 安装libfastcommon-1.0.7
    cd /zhanping/soft/libfastcommon-1.0.7
    ./make.sh
    ./make.sh install
  5. libfastcommon-1.0.7安装好后会自动将库文件拷贝至/usr/lib64下,由于fastdfs引用usr/lib目录,所以需要将/usr/lib64下的库文件拷贝至/usr/lib下
    cp -r /usr/lib64/libfastcommon.so /usr/lib
B. tracker编译安装
  1. 通过SSH Secure File Transfer Client上传FastDFS_v5.05.tar.gz到/zhanping/soft目录下
  2. 解压FastDFS_v5.05.tar.gz到/zhanping/install目录下
    cd /zhanping/soft
    tar -zxvf FastDFS_v5.05.tar.gz -C /zhanping/install
  3. 编译安装fastdfs
    cd /zhanping/install/FastDFS
    ./make.sh
    ./make.sh install
  4. 安装成功后,将安装目录下的conf下的以下文件拷贝到/etc/fdfs/下
    cp -r /zhanping/install/FastDFS/conf/*.conf /etc/fdfs
    cp -r /zhanping/install/FastDFS/conf/mime.types /etc/fdfs
    conf.png
C、配置fastdfs的tracker部分
  1. 安装成功后进入/etc/fdfs目录
    cd /etc/fdfs
  2. 拷贝一份新的tracker配置文件
    cp tracker.conf.sample tracker.conf
  3. 修改tracker.conf(也可以不配置,使用默认即可)
    vim tracker.conf


base_path=/home/yuqing/fastdfs
改为:
base_path=/home/fastdfs

D、启动fastdfs的tracker部分
  1. 启动tracker
    /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
  2. 设置开机自动启动(选做,不配置的话每次linux启动时则需要手动启动tracker)
    vim /etc/rc.d/rd.local

将运行命令行添加进文件:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

三、安装fastdfs的storage部分

!!!注意:如果fastdfs的storage和fastdfs的tracker安装在同一个linux系统上,则以下A、B部分则可以不用做

A.配置fastdfs环境

同fastdfs的tracker部分

B. storage编译安装

同fastdfs的tracker部分

C、配置fastdfs的storage部分
  1. 安装成功后进入/etc/fdfs目录
    cd /etc/fdfs
  2. 拷贝一份新的storage配置文件
    cp storage.conf.sample storage.conf
  3. 修改storage.conf
    vim storage.conf

#【1】.修改storage的base_path路径(选做)
#base_path需要和tracker部分的base_path保持一致,如果有修改过tracker的tracker.conf文件,则做以下修改:
base_path=/home/yuqing/fastdfs 改为:base_path=/home/fastdfs
#【2】.修改storage的资源存放路径(选做)
store_path0=/home/yuqing/fastdfs 改为:store_path0=/home/fastdfs/fdfs_storage
#如果有多个挂载磁盘则定义多个store_path,如下
#store_path1=......
#store_path2=......
#......
#【3】.修改storage的对应的tracker_server的ip地址和端口(必做)
tracker_server=192.168.248.128:22122 #配置tracker服务器:IP (本地ip地址:22122)
#如果有多个则配置多个tracker_server
#tracker_server=......
#tracker_server=......
#......

D、启动fastdfs的storage部分
  1. 启动storage
    /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
  2. 设置开机自动启动(选做,不配置的话每次linux启动时则需要手动启动tracker)
    vim /etc/rc.d/rd.local

将运行命令行添加进文件:/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

四、上传文件测试

fastdfs安装成功可通过/usr/bin/fdfs_test测试上传、下载等操作

  1. 修改/etc/fdfs/client.conf
    vim /etc/fdfs/client.conf

#【1】.修改client.conf的base_path路径(选做)
#base_path需要和tracker部分的base_path保持一致,如果有修改过tracker的tracker.conf文件,则做以下修改:
base_path=/home/yuqing/fastdfs 改为:base_path=/home/fastdfs
#【2】.修改client.conf的tracker_server的ip地址和端口(必做)
tracker_server=192.168.248.128:22122

  1. 上传文件

使用格式:
/usr/bin/fdfs_test 客户端配置文件地址 upload 上传文件
比如将/zhanping/resource下的图片上传到fastdfs中:
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /zhanping/resource/download.jpg
上传成功后,终端将会输出类似以下的http文件访问路径:http://192.168.248.128/group1/M00/00/00/wKj4gFlogsuAOFWLAAAh6e61gnc931_big.jpg
对应storage服务器资源存放路径store_path下的:
data/00/00/wKj4gFlogsuAOFWLAAAh6e61gnc931_big.jpg
由于现在还没有和nginx整合无法使用http下载

五、fastdfs整合nginx

A.安装fastdfs-nginx-module
  1. 将从github上面下载的源文件fastdfs-nginx-module-master压缩成.tar.gz格式
  2. 通过SSH Secure File Transfer Client上传fastdfs-nginx-module.tar.gz到/zhanping/soft目录下
  3. 解压fastdfs-nginx-module.tar.gz到/zhanping/install目录下
    cd /zhanping/soft
    tar -zxvf fastdfs-nginx-module.tar.gz -C /zhanping/install
  4. 修改fastdfs-nginx-module/src/下的config文件
    cd /zhanping/install/fastdfs-nginx-module/src
    vim config

usr/local/路径都改为/usr/


module-config.png
  1. 将FastDFS-nginx-module/src下的mod_FastDFS.conf拷贝至/etc/fdfs/下
    cp mod_FastDFS.conf /etc/fdfs/
  2. 修改mod_FastDFS.conf的内容
    vi /etc/fdfs/mod_FastDFS.conf

#【1】.修改storage的base_path路径(选做)
#base_path需要和tracker部分的base_path保持一致,如果有修改过tracker的tracker.conf文件,则做以下修改:
base_path=/home/yuqing/fastdfs 改为:base_path=/home/fastdfs
#【2】.修改mod_FastDFS.conf的tracker_server的ip地址和端口(必做)
tracker_server=192.168.248.128:22122 #配置tracker服务器:IP (本地ip地址:22122)
#如果有多个则配置多个tracker_server
#tracker_server=......
#tracker_server=......
#......
#【3】.修改url_have_group_name=true(必做)
url_have_group_name=true #url中包含group名称
#【4】.指定storage的文件存储路径(选做)
store_path0=/home/yuqing/fastdfs 改为:store_path0=/home/fastdfs/fdfs_storage
#如果有多个挂载磁盘则定义多个store_path,如下
#store_path1=......
#store_path2=......
#......

  1. 将libfdfsclient.so拷贝至/usr/lib下
    cp /usr/lib64/libfdfsclient.so /usr/lib/
B.安装nginx

注意:需要先配置nginx的安装环境
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel

  1. 通过SSH Secure File Transfer Client上传nginx-1.8.0.tar.gz到/zhanping/soft目录下
  2. 解压nginx-1.8.0.tar.gz到/zhanping/install目录下
    cd /zhanping/soft
    tar -zxvfnginx-1.8.0.tar.gz -C /zhanping/install
  3. 创建nginx所需安装目录
    mkdir -p /var/temp/nginx/client
  4. 设置nginx编译参数设置如下:
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/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=/zhanping/install/fastdfs-nginx-module/src #注意这里配置的必须是是fastdfs-nginx-module的src目录绝对路径
  1. 编译安装
    make
    make install
  2. 配置/usr/local/nginx/conf/nginx.conf
    vim /usr/local/nginx/conf/nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location /group1/M00 {
            ngx_fastdfs_module;
        }
    }
}
  1. 重新加载nginx配置文件
    cd /usr/local/nginx/sbin
    ./nginx -s reload
  2. 启动nginx
    cd /usr/local/nginx/sbin
    ./nginx

六、开放Linux的对外访问的端口

  1. 查看端口占用情况
    netstat -apn
    port.png
  2. 开放上图标注端口,例如22122端口:
    /sbin/iptables -I INPUT -p tcp --dport 22122 -j ACCEPT
    /etc/rc.d/init.d/iptables save #将修改永久保存到防火墙中

七、测试fastdfs整合nginx

  1. 再次上传文件
    /usr/bin/fdfs_test /etc/fdfs/client.conf upload /zhanping/resource/downloadimg.jpg

返回http://192.168.248.128/group1/M00/00/00/wKj4gFlogsuAOFWLAAAh6e61gnc931_big.jpg

  1. 通过浏览器访问以上地址,显示:


    uploadimg.png

八、此次紧紧搭建了最简单的fastdfs+nginx,至于集群,嗯……

推荐阅读更多精彩内容