FastDFS安装教程

陌路散爱 提交于 2021-02-03 06:37:14

提供了三个虚拟机:

一、 下载安装包

FastDFS 5.0.1

nginx 1.7.0

fastdfs-nginx-module_v1.16

由于使用Nginx提供文件的浏览访问功能,同时也需要安装Nginx服务。

二、安装服务

1. 增加编译环境

# yum -y install gcc gcc+ gcc-c++ openssl openssl-devel pcre pcre-deve
# yum -y install pcre-devel openssl openssl-devel

2. 创建系统用户

# useradd fastdfs -M -s /sbin/nologin
# useradd nginx -M -s /sbin/nologin

3. 安装FastDFS

tar -xvf FastDFS_v5.01.tar.gz
cd FastDFS
./make.sh
./make.sh install

安装成功后,FastDFS会安装在/etc/fdfs目录下

4. 安装Nginx

# cd ../
# tar -xvf fastdfs-nginx-module_v1.16.tar.gz 
# tar -xvf nginx-1.14.0.tar.gz
# cd nginx-1.14.0

# ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --add-module=../fastdfs-nginx-module/src # make # make install

注意:在Tracker Server上安装Nginx,不需要 --add-module=../fastdfs-nginx-module/src 这个配置项,而两个Storage Server的安装必须加上这个配置项。

三、Tracker Server配置

1. 创建数据及日志存放目录

mkdir -p /data/fastdfs/tracker

2. 修改tracker.conf配置

# vim /etc/fdfs/tracker.conf

更改下列两行配置:

base_path=/data/fastdfs/tracker
group_name=group1

3. 修改nginx.conf配置

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

修改完后代码如下,这是Tracker Server的一个负载均衡配置。注意这里的Tracker Server开放访问端口为84(非必须,只因为80端口已经作为其他用途)

user  nginx nginx;
worker_processes  4;
pid /usr/local/nginx/nginx.pid;
worker_rlimit_nofile 51200;

events {
    use epoll;
    worker_connections  20480;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for" "$request_time"';

    access_log  /usr/local/nginx/logs/access.log  main;

    upstream server_group1{
        server 192.168.247.129;
        server 192.168.247.130;
    }

    server {
        listen       84;
        server_name  192.168.247.128;
        location /group1 {
           # include proxy.conf;
           proxy_pass http://server_group1;
        }
    }
}

4. 配置Tracker Server启动程序

配置Tracker Server启动程序 ,并将其设置为随系统启动自动启动

# cp /usr/fastdfs/FastDFS/init.d/fdfs_trackerd /etc/init.d/
# chkconfig --add fdfs_trackerd
# chkconfig fdfs_trackerd on

5. 配置Nginx的启动程序

使用下面指令创建一个文件

# vim /etc/init.d/nginx

然后编辑:

#!/bin/bash
# nginx Startup script for the Nginx HTTP Server
# it is v.0.0.2 version.
# chkconfig: - 85 15
# description: Nginx is a high-performance web and proxy server.
#              It has a lot of features, but it's not for everyone.
# processname: nginx
# pidfile: /var/run/nginx.pid
# config: /usr/local/nginx/conf/nginx.conf
nginxd=/usr/local/nginx/sbin/nginx
nginx_config=/usr/local/nginx/conf/nginx.conf
nginx_pid=/var/run/nginx.pid
RETVAL=0
prog="nginx"
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -x $nginxd ] || exit 0
# Start nginx daemons functions.
start() {
if [ -e $nginx_pid ];then
   echo "nginx already running...."
   exit 1
fi
   echo -n $"Starting $prog: "
   daemon $nginxd -c ${nginx_config}
   RETVAL=$?
   echo
   [ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
   return $RETVAL
}
# Stop nginx daemons functions.
stop() {
        echo -n $"Stopping $prog: "
        killproc $nginxd
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /var/run/nginx.pid
}
# reload nginx service functions.
reload() {
    echo -n $"Reloading $prog: "
    #kill -HUP `cat ${nginx_pid}`
    killproc $nginxd -HUP
    RETVAL=$?
    echo
}
# See how we were called.
case "$1" in
start)
        start
        ;;
stop)
        stop
        ;;
reload)
        reload
        ;;
restart)
        stop
        start
        ;;
status)
        status $prog
        RETVAL=$?
        ;;

*)
        echo $"Usage: $prog {start|stop|restart|reload|status|help}"
        exit 1
esac
exit $RETVAL

保存后使用下列指令,修改为任何人可执行,并将其设定为随系统启动自动启动:

# chmod 755 /etc/init.d/nginx 
# chkconfig --add nginx
# chkconfig nginx on

四、Storage Server配置

两台Storage都要进行下列相关的配置

1. 创建数据及日志保存目录

mkdir -p /data/fastdfs/storage/data

2. 修改storage.conf配置

vim /etc/fdfs/storage.conf

修改下列配置项,其他保持默认设置:

group_name=group1
base_path=/data/fastdfs
store_path0=/data/fastdfs/storage
tracker_server=192.168.247.128:22122
run_by_group=fastdfs
run_by_user=fastdfs
file_distribute_path_mode=1
rotate_error_log = true

3. 修改mod_fastdfs.conf配置

# cp fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
# vim /etc/fdfs/mod_fastdfs.conf

修改下列各项配置:

connect_timeout=30
tracker_server=192.168.247.128:22122
group_name=group1
url_have_group_name = true
store_path_count=1
store_path0=/data/fastdfs/storage

4. 修改nginx.conf配置

Storage Server的Nginx配置如下,监听80端口,并使用fastdfs-nginx-module模块。

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

修改内容为下:

user  nginx nginx;
worker_processes  4;
pid /usr/local/nginx/logs/nginx.pid;
worker_rlimit_nofile 1024;

events {
    use epoll;
    worker_connections  1024;
}

http {
    include       mime.types;
    server_names_hash_bucket_size 128;
    client_header_buffer_size 32k;
    large_client_header_buffers 4 32k;
    client_max_body_size 20m;
    limit_rate 1024k;

    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
					  
    access_log  /usr/local/nginx/logs/access.log  main;

    server {
        listen       80;
        server_name  localhost;

        location /group1/M00{
            root /data/fastdfs/storage/data;
            ngx_fastdfs_module;
        }
    }
}

使用下列指令创建一个M00软连接,让配置中的M00同样指向data目录

ln -s /data/fastdfs/storage/data /data/fastdfs/storage/data/M00

5. 配置Storage Server的启动程序

# cp /usr/fastdfs/FastDFS/init.d/fdfs_storaged /etc/init.d/
# chkconfig --add fdfs_storaged
# chkconfig fdfs_storaged on

6. 配置Nginx的启动程序

参考Tracker Server的Nginx启动配置

五、启动服务

1. 启动Tracker Server

# service fdfs_trackerd start
# service nginx start

2. 启动Storage Server

# service fdfs_storaged start
# service nginx start

如果报错:nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use),则使用killall -9 nginx,结束当前占用线程。

启动后,可以使用下列指令来查看各个服务的进程

# ps -ef | grep fdfs
# ps -ef | grep nginx

如果可以查看到服务器进程,一般就说明已经启动成功了。

六、客户端测试

开放端口:20880、22122、23000、84、80

1. 在Tracker Server中配置一个客户端

# vim /etc/fdfs/client.conf

修改下列配置项:

# base_path=/data/fastdfs
# tracker_server=192.168.247.128:22122

2. 查看服务的运行的情况

在Tracker Server使用下列指令可以查看服务的运行情况:

# fdfs_monitor /etc/fdfs/client.conf

3. 测试文件上传

# fdfs_upload_file /etc/fdfs/client.conf 01.jpg

上传成功后将返回已经保存的文件标识,它包含组名、路径和文件名:

group1/M00/76/7D/wKj3gls08kOAE5LWAAFY1Aipxfo086.jpg

4. 使用浏览器访问文件

使用上面配置的Tracker Server的Web服务端口,就可以使用下面完整的URL访问上面上传的文件:

http://192.168.247.128:84/group1/M00/76/7D/wKj3gls08kOAE5LWAAFY1Aipxfo086.jpg

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!