搭建fastdfs文件服务器(Linux系统ubuntu下)

如下都是在非root用户下操作的,所以很多命令前都加上 sudo 

1 Nginx搭建

1.1 环境依赖

1、nginx是c编写的,对于解压的源码进行编译,所以首先设置编译环境: gcc

(一定要记得先update,不然找不到gcc:这个本人没试过)

sudo apt-get update

sudo apt-get install gcc

实际我是用的是如下命令安装的(不建议):

sudo apt-get  install  build-essential

安装完了可以执行如下命令查看版本(如为gcc(GCC)4.2.3(Ubuntu4.2.3-2ubuntu7)):
gcc--version    

然后安装的gcc-c++:

sudo apt-get install gcc-c++

2、Perl库,包括 perl 兼容的正则表达式库,解决依赖包pcre安装,命令:

sudo apt-get install libpcre3 libpcre3-dev

3、zlib库提供了很多种压缩和解压缩的方式,执行tar命令的,当时服务器可用tar命令,就没装:

sudo apt-get install zlib1g-dev

4、OpenSSL 是一个强大的安全套接字层密码库:

sudo apt-get install openssl libssl-dev

1.2 编译安装

1、下载nginx-1.8.0.tar.gz(可官网查询其他版本)(注意:下载以及解压会到当前目录下):

wget http://nginx.org/download/nginx-1.8.0.tar.gz

2、解压

tar -zxvf nginx-1.8.0.tar.gz

3、进入加压的文件下,创建临时目录

cd nginx-1.8.0

mkdir -p /var/temp/nginx

4、参数配置

sudo ./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

5、编译安装

make

make install

6、此时可以看到 在 /usr/local/nginx/目录下有3个文件夹(sbin ,conf ,logs ),

cd /usr/local/nginx/

cd sbin

7、启动nginx

sudo ./nginx -c /usr/local/nginx/conf/nginx.conf

8、如果启动成功了访问页面:根据自己的IP地址(eg.我的10.10.5.221) 

2 安装FastDFS(具体忘了当时怎么乱七八糟弄的了,以下是参考其他博文)

2.1 安装FastDFS的基础库

1. 安装libevent库
yum install -y libevent
2. 安装 libfastcommon基础库
   cp  -rf /home/xzb/libfastcommonV1.0.7.tar.gz  /usr/local
   #解压
  tar -xzvf  libfastcommonV1.0.7.tar.gz
  cd libfastcommon-1.0.7
  #执行
  ./make.sh
  ./make.sh install  
  3. 注意:
  上述安装完之后,安装完的路径在/usr/lib64,但是fastDFS访问的lib路径在 /usr/local/lib 中 所以此时需要建立软连接
  ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
  ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so

2.2 安装FastDFS中 tracker服务

解压 
cp -rf /home/xzb/FastDFS_v5.05.tar.gz /usr/local/ 
tar -xzvf FastDFS_v5.05.tar.gz 
#执行 
cd FastDFS 
./make 
./make install 
如果发现在 /etc/fdfs/ 这个目录有配置文件说明安装成功了!!

配置tracker服务
1. 创建tracker的数据文件/日志目录(我存放在了/opt/fastdfs_tracker)
      mkdir -p /opt/fastdfs_tracker
2. 进入 /etc/fdfs/ 执行
       cd /etc/fdfs
       cp  tracker.conf.sample tracker.conf
3. 编辑 tracker.conf
      disabled=false        #启用配置文件
        port=22122          #设置tracker的端口号
        base_path=/opt/fastdfs_tracker   #设置tracker的数据文件和日志目录(需预先创建)
    http.server_port=80     #设置http端口号
4. 启动
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
5. 设置开机启动
   echo '/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart' >> /etc/rc.d/rc.local
6. 通过如下命令查看trackerd服务是否启动:
        netstat -tupln | grep trackerd   
7. 如果有错可以在 /opt/fastdfs_tracker/logs 中查看

2.3 配置FastDFS中的storage服务

1. 创建存放storage 数据/日志文件目录
   mkdir -p /opt/fastdfs_storage
2. 进入/etc/fdfs
  cd  /etc/fdfs/
  cp storage.conf.sample storage.conf
3. 编辑 storage.conf
 disabled=false            #启用配置文件 
group_name=group1         #组名,根据实际情况修改
port=23000                #设置storage的端口号
base_path=/opt/fastdfs_storage   #设置storage的日志目录(需预先创建) 
store_path_count=1        #存储路径个数,需要和store_path个数匹配 
store_path0=/opt/fastdfs_storage  #存储路径
tracker_server=192.168.25.130:22122 #tracker服务器的IP地址和端口号 (我这是同一台)
http.server_port=80     #设置http端口号

4. 启动
 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
5. 开机启动
 echo '/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart' >> /etc/rc.d/rc.local
6. 是否启动
netstat -tupln | grep storaged

2.4 上传文件测试

FastDFS安装成功可通过/usr/bin/fdfs_test测试上传、下载等操作。
    cp client.conf.sample client.conf     -------------------------------这个文件的参数有点疑问
    修改/etc/fdfs/client.conf
    base_path=/opt/fastdfs_storage
    tracker_server=192.168.25.130:22122

    使用格式:
    /usr/bin/fdfs_test 客户端配置文件地址  upload  上传文件
    比如将/home下的文件上传到FastDFS中:
    /usr/bin/fdfs_test /etc/fdfs/client.conf upload /home/我是好人.pdf

    http://192.168.25.130/group1/M00/00/00/M00/00/00/wKgZgluJDpiAWpqAAev7k46AZD8093.pdf就是文件的下载路径。
    对应storage服务器上的
    /opt/fdfs_storage/data/00/00/wKhlBVVY2M-AM_9DAAAT7-0xdqM485_big.png文件。
    由于现在还没有和nginx整合无法使用http下载。

3 FastDFS与nginx进行集成(主要参考https://www.cnblogs.com/tc520/p/6822412.html

1. 使用nginx(可反向代理,代理服务)可以提供http服务,更好的解决分布同步的问题等
2. 由于之前已经安装过ngnix ,所以此时我们需要添加fastdfs-nginx-module 
     (这是下载好的,复制到指定目录)cp /home/xzb/fastdfs-nginx-module_v1.16.tar.gz  /usr/local

我们直接下载解压安装包:

wget https://github.com/happyfish100/fastdfs-nginx-module/archive/master.zip
unzip master.zip
(unzip命令如没有安装执行:sudo apt-get install unzip zip
3. 在nginx中添加该模块配置
    cd nginx-1.8.0/
    执行:
   ./configure --add-module=/home/windaka/fastdfs-nginx-module-master/src
    make

make会报错:

解决方案:修改fastdfs-nginx-module-1.20/src/config文件,然后从(3. 在nginx中添加该模块配置)开始:

vim /home/windaka/fastdfs-nginx-module-master/src/config

ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"

CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

下述非上述本人出现的错误,若是碰到就这样做: 

  root/fastdfs-nginx-module/src//common.c:21:25: fatal error: fdfs_define.h: No such file or directory

 #include "fdfs_define.h"

                        ^

compilation terminated.

make[1]: *** [objs/addon/src/ngx_http_fastdfs_module.o] Error 1
解决办法:

vim /home/windaka/fastdfs-nginx-module-master/src/config

     CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

     CORE_LIBS="$CORE_LIBS -L/usr/lib -lfastcommon -lfdfsclient"

重新编译,安装即可(返回到3. 在nginx中添加该模块配置)

sudo make  install

--4. cd fastdfs-nginx-module/src/ 
    vi  config (这一步很重要,很重要,很重要(重要的事情说三遍)==就是上述出现的问题~~!

         CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"
         CORE_LIBS="$CORE_LIBS -L/usr/local/lib -lfastcommon -lfdfsclient"

         把local都去掉 
--5. 然后执行 ==就是上述出现的问题~~!
make 
make install 
如果没有错误则安装成功

(1) 将插件添加到nginx中 
cd /usr/local/ngnix/conf/ 
vi nginx.conf
 

修改如下:
server { 
listen 80; #端口 
server_name 192.168.25.130;

        location /group1/M00 { # 多个组 ~/group[1-3]

                root /home/windaka/fastdfs/data; #存储数据

               ngx_fastdfs_module;

        }

        ...# 多个组 ~/group[1-3]

}

此配置文件中的50x.html,index.html等在nginx安装的缓存文件中,鄙人在: /usr/local/nginx/html/

(2) 执行命令cd /usr/local/FastDFS/conf (在fastdfs的安装目录下,鄙人在):

cd /home/windaka/fastdfs-5.11/conf
sudo cp http.conf /etc/fdfs 
sudo cp mime.types /etc/fdfs
 
不复制这2个文件启动nginx会报错

(3) 执行命令 cd /usr/local/fastdfs-nginx-module/src ,fastdfs-nginx-module安装目录中,而鄙人在:

cd /home/windaka/fastdfs-nginx-module-master/src
sudo cp mod_fastdfs.conf /etc/fdfs 
vi mod_fastdfs.conf -------------------------------------------------------------------------------(修改的是复制过去的文档)先按照博客试试  待定
修改如下几项: 
tracker_server=192.168.25.130:22122 
store_path0=/home/windaka/fastdfs
base_path=/home/windaka/fastdfs 
url_have_group_name = true(需要设置,为true时group1这个虚拟路径才能用)

 

 

 

建立软连接(配置文件中storage存放数据的路径)
ln -s /home/windaka/fastdfs/data /home/windaka/fastdfs/data/M00

关闭防火墙或者设置对外端口 
关闭防火墙: 
service firewalld stop //停止防火墙 
service firewalld disable//永久停止 
10 测试 
上传的文件或者图片,可以在浏览器直接访问啦! 
eg. http://192.168.25.130/group1/M00/00/00/wKgZgluJAE2Adan1Aev7k46AZD8377.pdf 
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值