本文是FastDFS的单机部署。
本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。
注意:
Linux下区分大小写;
Linux多用户多线程;
Linux下每个文件和目录都有访问权限;
本文是FastDFS的单机部署。
安装环境:CentOS7 64位、FasDFS-5.12、libfastcommon-1.0.38、fastdfs-nginx-module-1.20、nginx-1.20.1
#FastDFS#、#FastDFS安装#、#FastDFS单机部署#
1)FastDFS及其组件下载地址
https://gitee.com/fastdfs100
或
https://github.com/happyfish100
2)创建fastdfs目录
# mkdir -p /home/fastdfs/tracker #tracker服务的base_path目录,存储数据和日志的根目录,含存储storage分组信息、存储storage服务器列表、tracker server日志
# mkdir -p /home/fastdfs/storage #storage服务的base_path目录,存储数据和日志的根目录,含存当前storage server初始化信息、当前storage server统计信息
、数据同步sync信息(更新日志binlog、同步完成情况)、storage server日志
# mkdir -p /home/fastdfs/client #client目录,存储数据和日志的根目录
# mkdir -p /home/fastdfs/storage0 #storage_path目录,即文件存储目录
或者,一次性创建多个多级目录
# mkdir -p /home/fastdfs/{tracker,storage,client,storage0}
3)解压缩tar.gz安装包
# cd /home/soft
# tar -zxvf libfastcommon-1.0.38.tar.gz
# tar -zxvf fastdfs-5.12.tar.gz
# tar -zxvf fastdfs-nginx-module-1.20.tar.gz
# tar -zxvf nginx-1.20.1.tar.gz
或者,一次性解压当前目录下多个tar.gz安装包,使用的时候注意目录下非fastdfs的tar.gz包
# for f in ./*.tar.gz; do tar zxvf $f; done
1)安装依赖包
# yum install -y gcc-c++ zlib-devel pcre-devel openssl-devel
2)编译安装libfastcommon
# cd /home/soft/libfastcommon
# ./make.sh
# ./make.sh install
3)编译安装FastDFS
# cd /home/soft/fastdfs
# ./make.sh
# ./make.sh install
4)编译安装nginx与fastdfs-nginx-module模块
# cd /home/soft/nginx
# ./configure --add-module=/home/soft/fastdfs-nginx-module/src
# make
# make install
1)配置文件准备
服务器ip为172.16.2.100
# cd /etc/fdfs
# cp tracker.conf.sample tracker.conf #tracker配置文件
# cp storage.conf.sample storage.conf #storage配置文件
# cp client.conf.sample client.conf #客户端配置文件,测试上传文件用
# cp /home/soft/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs #mod_fastdfs配置文件,供nginx访问使用
# cp /home/soft/fastdfs/conf/http.conf /etc/fdfs #供nginx访问使用
# cp /home/soft/fastdfs/conf/mime.types /etc/fdfs #供nginx访问使用
2)配置tracker.conf文件
# vim /etc/fdfs/tracker.conf
需要修改的内容如下:
port=22122 #tracker服务器端口(默认22122,一般不修改)
base_path=/home/fastdfs/tracker #存储数据和日志的根目录
3)配置storage.conf文件
# vim /etc/fdfs/storage.conf
需要修改的内容如下:
port=23000 #storage服务端口(默认23000,一般不修改)
base_path=/home/fastdfs/storage #存储数据和日志的根目录
store_path0=/home/fastdfs/storage0 #第一个文件存储目录
tracker_server=172.16.2.100:22122 #tracker服务器
http.server_port=80 #使用http访问文件时的端口(和nginx中保持一致)
4)配置client.conf文件(用于测试上传文件)
vim /etc/fdfs/client.conf
需要修改的内容如下:
base_path=/home/fastdfs/client #存储数据和日志的根目录
tracker_server=172.16.2.100:22122 # tracker服务器
5)启动tracker服务和storage服务
# systemctl start fdfs_trackerd
# systemctl start fdfs_storaged
6)配置fastdfs开机自启动
# systemctl enable fdfs_trackerd
# systemctl enable fdfs_storaged
7)测试上传文件
# fdfs_upload_file /etc/fdfs/client.conf /tmp/a.txt
返回FID表示成功 如:group1/M00/00/00/xx.txt
8)参数说明
base_path #存储数据和日志的根目录
tracker的base_path #tracker服务的base_path目录,存储数据和日志的根目录,含存储storage分组信息、存储storage服务器列表、tracker server日志
storage的base_path #storage服务的base_path目录,存储数据和日志的根目录,含存当前storage server初始化信息、当前storage server统计信息
、数据同步sync信息(更新日志binlog、同步完成情况)、storage server日志
tracker_server #可以配置多个tracker_server,格式为:ip:port
group_name #group组名称,对应FID中的group1
bind_addr #服务器ip绑定
store_path_count #store_path(数字)的个数,默认为1,根据store_path数量更改个数
store_path(数字) #可以设置多个文件储存目录,数字从0开始,对应FID中的M00
关于FID详述可以参考上篇文章。
1)配置mod_fastdfs.conf
# vim /etc/fdfs/mod_fastdfs.conf
需要修改的内容如下:
tracker_server=172.16.2.100:22122 #tracker服务器IP和端口
storage_server_port=23000 #storage服务端口(与storage.conf中port保持一致)
url_have_group_name=true #url中是否包含group名称
store_path0=/home/fastdfs/storage0 #第一个文件存储目录
2)配置nginx.config
vim /usr/local/nginx/conf/nginx.conf
nginx.config添加如下配置:
server {
listen 80; # 该端口为storage.conf中的http.server_port相同
server_name localhost;
location ~/group[0-9]/ {
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
3)启动nginx服务
# /usr/local/nginx/sbin/nginx
4)配置nginx开机自启动
将/usr/local/nginx/sbin/nginx,添加到rc.local文件
# vim /etc/rc.d/rc.local
添加以下内容:
# nginx start
/usr/local/nginx/sbin/nginx
5)nginx文件访问测试
在浏览器中输入刚刚测试上传过的文件地址(storage的ip+nginx端口+FID),这里nginx端口是80。
http://172.16.2.100/group1/M00/00/00/xx.txt
IT小胖豆:初学者踩坑之路及过程分享,希望能够帮到一些初学者,欢迎各位IT打工人,入坑讨论-_-