最近做项目需要文件服务器,之前搭建用的是FastDFS5.xx版本,比较老,这次用最新版本进行搭建,好久没搭建了好多都忘记了,在写这篇博客之前先感谢博主路西法_Lucifer的分享,写的很详细也通过该博客成功搭建好了FastDFS服务器,非常感谢!这里以FastDFS v6.04版本搭建写该博客也是方便学习和参考,部分内容复制博主:路西法_Lucifer。
1. 环境准备
环境包下载地址:
nginx-1.17.6
fastdfs-6.04
libfastcommon-1.0.42
fastdfs-nginx-module-1.22
下载下来包上传到自己服务器上,目录位置安装自己需求来即可。
1. 解压文件
# 进入安装包目录
cd /usr/mygod/fastdfs/
# 解压
tar -zxvf fastdfs-6.04.tar.gz
tar -zxvf fastdfs-nginx-module-1.22.tar.gz
tar -zxvf libfastcommon-1.0.42.tar.gz
tar -zxvf nginx-1.17.6.tar.gz
解压完目录如下:
2. 移动解压的安装文件至/usr/local
# 移动安装文件
mv fastdfs-6.04 fastdfs-nginx-module-1.22 libfastcommon-1.0.42 nginx-1.17.6 /usr/local
# 进入目标目录,可以查看到刚刚移动过来的安装文件目录
cd /usr/local/
3.安装编译工具及库文件,不用多说必须的
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
4.编译并安装:libfastcommon-1.0.42
# 进入libfastcommon-1.0.42 目录
cd libfastcommon-1.0.42/
# 编译并安装,第3步没有问题,此处便没有问题
./make.sh && ./make.sh install
注:若报如下图错误,请执行(第3步:安装编译工具及库文件),安装gcc环境 。
编译完毕后,查看(5.05版本/usr/lib目录中使用版本查看不到libfastcommon.so,5.08版本可以,6.0.4版本也可以)
# 进入/usr/lib 目录
cd /usr/lib
# 进入/usr/lib64 目录
cd /usr/lib64
#查看命令
ls | grep libfastcommon.so
5.编译并安装fastdfs-6.04
# 进入安装文件目录
cd /usr/local/fastdfs-6.04/
# 编译并安装
./make.sh && ./make.sh install
# 进入/usr/bin目录下,并列出fdfs的所有脚本
cd /usr/bin && ls |grep fdfs
ps:(在5.05版本和5.08版本这部分是需要改的,可以看我另一篇关于5.05和5.08版本的安装,在6.0.4最新版本发现此处不需要改了,可能作者尽量减少我们安装的工作量,改了下吧)FastDFS服务脚本设置的bin目录为/usr/local/bin/下,但是实际我们安装在了/usr/bin/下面(看上一张图)。所以我们需要修改FastDFS配置文件中的路径,也就是需要修改两个配置文件(1./etc/init.d/fdfs_storaged;2./etc/init.d/fdfs_trackerd)。
# 查看命令
vim /etc/init.d/fdfs_storaged
vim /etc/init.d/fdfs_trackerd
6.修改fastdfs的配置文件
# 进入 /etc/fdfs/
cd /etc/fdfs/
# 拷贝,并重命名
cp storage.conf.sample storage.conf
cp client.conf.sample client.conf
cp tracker.conf.sample tracker.conf
7.新建tracker、storage、storagedir三个目录,名字和位置根据自居需求来即可,用于后面修改配置文件使用
# 进入目标位置
cd /usr/mygod/fastdfs/
# 创建目录
mkdir -p tracker
mkdir -p storage
mkdir -p storagedir
8.编辑tracker.conf,重点看4个参数配置
# 编辑tracker.conf
vim /etc/fdfs/tracker.conf
# 默认开启
disabled=false
# tracker服务默认端口号,客户端上传文件需要用到此端口,默认即可,无需修改,服务器端需要开放此端口,否则文件上传不成功
port=22122
# 设置tracker服务的数据和日志的目录
base_path=/usr/mygod/fastdfs/tracker
# 设置 tracker服务 http 端口号,根据需要修改,默认也可以,服务器可根据需要是否开放
http.server_port=9610
注意:如果是购买的阿里云、百度云、腾讯云等服务器需要到安全组去开放端口,如果是本地或者虚拟机安装,可通过关闭防火墙/开放端口号,下面列出防火墙及端口相关命令,供参考学习
# 查看本机路由表
netstat -r
# 查看端口
netstat -lntp
# 查看端口是否正常监听
netstat -an | grep 80
# 查看端口被哪个进程占用
netstat -lnp|grep 8080
# 查看所有建立的TCP连接
netstat -antp
# 查看所有运行中的服务的详细信息
netstat -tulpn
# 查看所有开放端口
firewall-cmd --zone=public --list-ports
# 查看防火墙状态
service firewalld status
# 启动防火墙
service firewalld start
# 关闭防火墙
service firewalld stop
# 打开端口(永久)
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 关闭端口
firewall-cmd --remove-port=3306/udp --permanent
# 重新载入,使刚修改的防火墙配置生效
firewall-cmd --reload
9.启动tracker 服务
# 启动tracker命令
/etc/init.d/fdfs_trackerd start
# 停止tracker命令
/etc/init.d/fdfs_trackerd stop
启动成功,如图
可使用命令 ps -ef | grep fdfs 查看
进入之前创建的tracker目录,即可看到多了data、logs目录
# 进入tracker目录
cd /usr/mygod/fastdfs/tracker
# 文件列表
ll
10.修改storage.conf文件
# 修改storage.conf文件
vim /etc/fdfs/storage.conf
# 文件组名,根据需要设置
group_name=gogoo
# storage的端口号,默认是23000,同一个组的storage端口号必须一致
port=23000
# 设置storage服务的数据和日志的目录
base_path=/usr/mygod/fastdfs/storage
# 存储路径个数,需要和store_path个数匹配
store_path_count=1
# 文件存储目录
store_path0=/usr/mygod/fastdfs/storagedir
# 改成自己的虚拟机IP地址(在6.0.4版本有两个tracker_server,注掉一个,多的可能是集群搭建需要),注意服务器开放端口
tracker_server=192.168.209.121:22122
# 修改storage服务http端口,根据需要修改,默认也可以,服务器可根据需要是否开放
http.server_port=9620
#启动storage
/etc/init.d/fdfs_storaged start
#停止storage
/etc/init.d/fdfs_storaged stop
查看启动成功后storagedir、storage目录变化及服务是否启动
# 查看storagedir
cd /usr/mygod/fastdfs/storagedir/data/ && ls
# 查看storage
cd /usr/mygod/fastdfs/storage/ && ls
# 查看服务是否启动
netstat -unltp | grep fdfs
11.编辑client.conf文件
# 编辑client.conf文件
vim /etc/fdfs/client.conf
# tracker服务器文件路径
base_path=/usr/mygod/fastdfs/tracker
# tracker服务器IP地址和端口号,修改成自己的服务器的
tracker_server=192.168.0.196:22122
# tracker 服务器的 http端口号,必须和tracker的设置对应起来
http.tracker_server_port=9610
11.测试上传文件
# 上传命令,注意后面图片路径改为自己的
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/mygod/fastdfs/package/banner.png
# 记录下成功图片路径,方便后面访问
gogoo/M00/00/00/ag3ZlV3o8oiAZ5EvAAun95Djerg265.png
12.安装nginx及fastdfs-nginx-module
# 安装nginx之前要安装nginx所需的依赖lib
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel
# 进入/usr/local/fastdfs-nginx-module-1.22/src
cd /usr/local/fastdfs-nginx-module-1.22/src
# 编辑配置文件config
vim config
# 打开文件后复制下边命令回车即可,将config文件中的/usr/local替换成/usr
:%s+/usr/local+/usr
# 进入nginx-1.17.6
cd /usr/local/nginx-1.17.6
# 添加 http_stub_status_module 和 fastdfs-nginx-module 模块
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --add-module=/usr/local/fastdfs-nginx-module-1.22/src/
# 编译nginx-1.17.6
make
# 安装nginx-1.17.6
make install
# 成功后即可看见 /usr/local/nginx 目录
13.复制并修改fastdfs-ngin-module中的配置文件
# 复制fastdfs-ngin-module中的配置文件,到/etc/fdfs目录中
cp /usr/local/fastdfs-nginx-module-1.22/src/mod_fastdfs.conf /etc/fdfs/
# 进行修改 /etc/fdfs/ 目录下,我们刚刚copy过来的mod_fastdfs.conf 文件
vim /etc/fdfs/mod_fastdfs.conf
# 超时时长,默认即可
connect_timeout=2
# 保存storage服务日志目录
base_path=/usr/mygod/fastdfs/storage
# tracker服务器的IP地址以及端口号,修改成自己对应的
tracker_server=tracker:22122
# storage服务器的端口号,前边默认这里默认即可
storage_server_port=23000
# 组名称,改成跟storage.conf中一致
group_name=gogoo
# url中是否包含组名称
url_have_group_name = true
# 文件存储路径,跟storage.conf中一致
store_path0=/usr/mygod/fastdfs/storagedir
13.创建软连接
# 进入/usr/local/fastdfs-6.04/conf
cd /usr/local/fastdfs-6.04/conf
# 将http.conf,mime.types两个文件拷贝到/etc/fdfs/目录下
cp http.conf mime.types /etc/fdfs/
# 创建一个软连接,在/usr/mygod/fastdfs/storagedir文件存储目录下创建软连接,将其链接到实际存放数据 的目录
# 进入 /usr/mygod/fastdfs/storagedir
cd /usr/mygod/fastdfs/storagedir
# 不配置软连接,无妨访问图片,注意目录已自己的为准
ln -s /usr/mygod/fastdfs/storagedir/data/ /usr/mygod/fastdfs/storagedir/data/M00
# 进入/usr/local/nginx/conf
14.配置nginx/conf
# 进入/usr/local/nginx/conf
cd /usr/local/nginx/conf
# 配置nginx,打开文件后添加如下信息,别弄错节点了
vim nginx.conf
# Fastdfs
server {
listen 9610; # 这里端口可以根据自己需要配置即可,服务器一定要开放该端口
server_name xxx.xxx.xxx.xxx; # 修改成自己的ip地址或域名
location ~/gogoo/M00 {
root /usr/mygod/fastdfs/storagedir/data;
ngx_fastdfs_module;
}
}
14.启动nginx,介绍几个常用的命令
# 进入nginx安装目录
cd /usr/local/nginx/sbin/
# 启动
./nginx
# 停止,此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程
./nginx -s stop
# 此方式停止步骤是待nginx进程处理任务完毕进行停止
./nginx -s quit
# 重启
./nginx -s reload
# 查看nginx进程
ps aux|grep nginx
# 查看服务是否正常运行
netstat -unltp | grep fdfs
# 查看nginx版本
/usr/local/nginx/sbin/nginx -V (/usr/local/nginx/是你Nginx服务器的实际位置)
# 测试nginx能否访问
curl http://192.168.241.129/
15.浏览器查看图片,将上传的路径和nginx中配置路径拼接一起即可浏览器访问,例如:xxx.xxx.xxx.xxx:9610/gogoo/M00/00/00/ag3ZlV3o8oiAZ5EvAAun95Djerg265.png
16.配置开机启动
# 修改rc.local文件
vim /etc/rc.d/rc.local
# 增加如下命令
/etc/init.d/fdfs_trackerd start
/etc/init.d/fdfs_storaged start