fastdfs

138 阅读4分钟

安装

1.首先创建目录,这里在/Document/develop/fastdfs下进行操作,以后建议这种系统级的服务可以创建在/usr/local/src下面 image.png 2.下载包:

//第一个是libfastcommon安装包(fdfs工具包)
https://github.com/happyfish100/libfastcommon/archive/V1.0.38.tar.gz
//第二个是fdfs安装包
https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz

2.1安装libfastcommon

tar -zxvf libfastcommon-1.0.38.tar.gz
rm -rf libfastcommon-1.0.38.tar.gz
cd libfastcommon-1.0.38
./make.sh (执行编译)
sudo ./make.sh install (执行安装,这里会创建文件,所以用sudo)

可能遇到的问题: -bash: make: command not found-bash: gcc: command not found 解决方案: debian通过apt-get install gcc make安装 centos通过yum -y install gcc make安装 2.2安装FastDFS

tar -zxvf fastdfs-5.11.tar
rm -rf fastdfs-5.11.tar
cd fastdfs-5.11
./make.sh (执行编译)
sudo ./make.sh install (执行安装,这里会创建文件,所以用sudo)

3.配置Tracker服务

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

拷贝一个模板进行配置 image.png 新建一个路径:

//用于tracker存放data和log需要提前创建好
mkdir /home/jkkj/Documents/develop/fastdfs/tracker 
sudo vi /etc/fdfs/tracker.conf
#并修改下列参数:
base_path=/home/jkkj/Documents/develop/fastdfs/tracker  
#tracker存储data和log的跟路径,必须提前创建好
port=22122 #tracker默认22122
http.server_port=9999 #http端口,需要和nginx相同

启动tracker:(支持start|stop|restart)

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start

可以去查看/usr/bin路径下确实有fdfs_trackerd,直接用这个命令就可以了。 image.png 查看端口: netstat -apn|grep fdfs image.png 4.配置Storage服务

cd /etc/fdfs

copy一个配置文件:

sudo cp storage.conf.sample storage.conf

image.png

#新建一个路径,用于storage存放data和log需要提前创建好。
mkdir /home/jkkj/Documents/develop/fastdfs/storage
sudo vi /etc/fdfs/storage.conf
// 修改关键配置文件参数:
#storage存储data和log的跟路径,必须提前创建好
base_path=/home/mm/fastdfs/storage
#storge默认23000,同一个组的storage端口号必须一致
port=23000  
#默认组名,根据实际情况修改
group_name=group1  
#存储路径个数,需要和store_path个数匹配
store_path_count=1  
#如果为空,则使用base_path
store_path0=/home/mm/fastdfs/storage  
#配置该storage监听的tracker的ip和port
tracker_server=10.122.149.211:22122 

启动storage(支持start|stop|restart):

/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
//成功启动,通过下面命令查看
netstat -apn|grep fdfs

image.png 也可以通过monitor来查看storage是否成功绑定:

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

image.png 5.部署nginx和nginx-fdfs模块 下载:

http://nginx.org/download/nginx-1.15.2.tar.gz
https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.20.tar.gz

解压缩nginx:

tar -zxvf nginx-1.15.2.tar.gz 

image.png

# 解压缩:fastdfs-nginx-module:
tar -zxvf fastdfs-nginx-module-1.20.tar.gz 
# 解压路径在:
/home/jkkj/Documents/develop/fastdfs/fastdfs-nginx-module-1.20
sudo apt-get update
sudo apt-get install libpcre3 libpcre3-dev openssl libssl-dev libperl-dev

修改配置:

cd /home/jkkj/Documents/develop/fastdfs/fastdfs-nginx-module-1.20/src
vi config
ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

image.png 配置,并加载fastdfs-nginx-module模块:

mkdir /usr/local/nginx

新建一个nginx是存放nginx安装路径,切记不可使用nginx安装包的解压缩路径,会报错的,当然也可以换一个名字,这个路径就是nginx的服务安装路径 进入nginx解压目录:

cd /home/jkkj/Documents/develop/nginx-1.15.2
./configure --prefix=/usr/local/nginx --add-module=/home/jkkj/Documents/develop/fastdfs/fastdfs-nginx-module-1.20/src
(最后还可以加上--with-http_ssl_module)

可能会遇到报错: image.png centos:

yum install -y zlib-devel
yum -y install pcre-devel
yum -y install openssl openssl-devel

ubuntu:

sudo apt-get install zlib1g-dev

然后再执行一次配置即可。 然后编译安装:

make
sudo make install

nginx已经被安装到/usr/local/nginx image.png image.png

cd /usr/local/nginx/sbin/
./nginx 
./nginx -s stop #此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程
./nginx -s quit #此方式停止步骤是待nginx进程处理任务完毕进行停止
./nginx -s reload
# 查看fastdfs是否被成功安装:
/usr/local/nginx/sbin/nginx -V

image.png 6.配置nginx和fastdfs-nginx-module 配置mod-fastdfs.conf,并拷贝到/etc/fdfs文件目录下:

cd fastdfs-nginx-module-1.20/src/
cp mod_fastdfs.conf /etc/fdfs
cd /etc/fdfs
sudo vi mod_fastdfs.conf

修改如下:

base_path=/home/jkkj/Documents/develop/fastdfs/tracker
tracker_server=192.168.1.101:22122 #tracker的地址
url_have_group_name=false#url是否包含group名称
storage_server_port=23000 #需要和storage配置的相同
store_path_count=1  #存储路径个数,需要和store_path个数匹配
store_path0=/home/jkkj/Documents/develop/fastdfs/storage #文件存储的位置

再配置Nginx

cd /usr/local/nginx/conf/
sudo vi nginx.conf

在监听的端口配置:

      location /group1/M00 {
            root /home/jkkj/Documents/develop/fastdfs/storage/data;
            ngx_fastdfs_module;
        }

image.png location /group1/M00/:group1为nginx 服务FastDFS的分组名称,M00是FastDFS自动生成编号,对应store_path0=/home/fdfs_storage,如果FastDFS定义store_path1,这里就是M01 注意一定要删除注释掉的user,让它以root的权限运行:user root 最后拷贝配置文件:

cd /home/jkkj/Documents/develop/fastdfs/fastdfs-5.11/conf
sudo cp mime.types http.conf /etc/fdfs/

启动nginx:

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

客户端配置测试

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

image.png

# tracker服务器文件路径
base_path=/home/jkkj/Documents/develop/fastdfs/tracker 
# tracker服务器IP地址和端口号
tracker_server=192.168.1.101:22122 
# tracker服务器的http端口号,必须和tracker的设置对应起来
http.tracker_server_port=9999 
sudo touch 1.txt
# /usr/bin/fdfs_upload_file  <config_file> <local_filename>
# 上传文件:
/usr/bin/fdfs_upload_file client.conf 1.txt

image.png

http://192.168.1.101:9999/group1/M00/00/00/wKgBZV3BLnmAN9vDAAAAGSAVjvk898.txt