nginx 与 fastdfs 的配置过程,已经越过了许多坑,我跪着进入了欢迎页面。。。
[https://github.com/happyfish100/fastdfs/wiki]
上面的是 fastdfs 与 nginx 的官网,我从这里面跌跌撞撞的走出来了,下面是我总结出来的一条平坦的路,小伙伴们可以参考参考。
我下面的攻略其实跟官网上的大同小异,那为什么我要重写再记录一下这个过程呢?因为官网里面的步骤是存在着许多坑的,为了帮助大家节省一些不必要浪费的时间,能够快速的完成这个功能的搭建,所以我这么做了。
首先我们需要一台服务器,这里我用的是 VM 虚拟机,ISO 是 CentOS7,使用 XShell 操作终端,Xshell、虚拟机和 CentOS 的安装我就不赘述啦,直接进入正题。
我们进入 linux 后使用下面的命令查看下当前的 ip
ip addr
找到你的网卡名称对应的 inet 后面的 ip,我这里的是 192.168.1.103,找到了记录一下先,后面我们会用到
安装编译环境
yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y
创建数据存储目录
mkdir /home/dfs
切换到安装目录准备下载安装包
cd /usr/local/src
安装 libfatscommon
git clone https://github.com/happyfish100/libfastcommon.git --depth 1
进入文件
cd libfastcommon/
编译安装
./make.sh && ./make.sh install
完成后回到上一层目录
cd ../
安装 FastDFS
git clone https://github.com/happyfish100/fastdfs.git --depth 1
进入文件
cd fastdfs/
编译安装
./make.sh && ./make.sh install
配置文件准备
cp /usr/etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
cp /usr/etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
cp /usr/etc/fdfs/client.conf.sample /etc/fdfs/client.conf #客户端文件,测试用
cp /usr/local/src/fastdfs/conf/http.conf /etc/fdfs/ #供nginx访问使用
cp /usr/local/src/fastdfs/conf/mime.types /etc/fdfs/ #供nginx访问使用
注意:如果提示"无法获取某某某,没有那个文件或目录",那么就把 cp 后面的/usr 去掉,直接从/etc 开始写
返回上一级目录
cd ../
安装 fastdfs-nginx-module
git clone https://github.com/happyfish100/fastdfs-nginx-module.git --depth 1
cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs
返回上一级目录
cd ../
安装 nginx
下载 nginx 压缩包
wget http://nginx.org/download/nginx-1.15.4.tar.gz
解压
tar -zxvf nginx-1.15.4.tar.gz
进入解压后的文件夹
cd nginx-1.15.4/
添加 fastdfs-nginx-module 模块
./configure --add-module=/usr/local/src/fastdfs-nginx-module/src/
编译安装
make && make install
tracker 配置
vim /etc/fdfs/tracker.conf
需要修改的内容如下
port=22122 # tracker服务器端口(默认22122,一般不修改)
# 这里原本为base_path=/home/yuqing/fastdfs,将他改为如下
base_path=/home/dfs # 存储日志和数据的根目录
保存退出
# 按下Esc
输入 :wq! 敲下回车
storage 配置
vim /etc/fdfs/storage.conf
需要修改的内容如下
port=23000 # storage服务端口(默认23000,一般不修改)
# 这里原本为base_path=/home/yuqing/fastdfs,将他改为如下
base_path=/home/dfs # 数据和日志文件存储根目录
# 这里原本为base_path0=/home/yuqing/fastdfs,将他改为如下
store_path0=/home/dfs # 第一个存储目录
# 这里可能会存在两条相同的配置,注释掉一条即可,然后ip改成最开始让记录下来的你的ip,这里因为我的是192.168.1.103,所以我改成了这个
tracker_server=192.168.1.103:22122 # tracker服务器IP和端口
http.server_port=8888 # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)
client 测试
vim /etc/fdfs/client.conf
需要修改的内容如下
# 这里也是改成与之前相同的
base_path=/home/dfs
# 这里也可能存在两条,注释掉一条即可,ip改成自己的ip
tracker_server=192.168.1.103:22122 #tracker服务器IP和端口
保存退出
按下Esc
输入 :wq! 敲下回车
启动
不关闭防火墙的话无法使用
systemctl stop firewalld.service # 关闭防火墙
systemctl disable firewalld.service #重启后防火墙不会自启动
启动 tracker 服务
/etc/init.d/fdfs_trackerd start
chkconfig fdfs_trackerd on #重启后会自启动tracker服务
启动 storage 服务
/etc/init.d/fdfs_storaged start
chkconfig fdfs_storaged on #重启后会自启动storage服务
查看资源管理器
ps -ef | grep fdfs
此时有包含 fdfs 或者以 fdfs 打头的进程有这两个,说明进程启动成功了
测试
使用 Xftp 连接 CentOS
连接成功后可以随便放一张图片到 CentOS 里面去,以便测试
回到 root 文件夹下
cd ~
# /root/1.png是刚才用来测试的存放的图片的路径
fdfs_upload_file /etc/fdfs/client.conf /root/1.png
得到一串路径
复制这串路径,保存一下,待会儿会用到
配置 nginx 访问
vim /etc/fdfs/mod_fastdfs.conf
需要修改的内容如下
# 原本为false 改为 true
url_have_group_name=true
store_path0=/home/dfs
#原本为tracker_server=tracker:22122 改为如下,ip为自己的ip
tracker_server=192.168.1.103:22122
保存并退出
配置 nginx.config
vim /usr/local/nginx/conf/nginx.conf
添加如下配置
server {
listen 8888; ## 该端口为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;
}
}
保存并退出
启动 nginx
/usr/local/nginx/sbin/nginx
注意:如果重启过CentOS,那么nginx也需要重新启动
随后,在你的浏览器地址栏上输入:192.168.1.103:8080(这里的 ip 为你自己的 ip),就能够与访问到 nginx 的欢迎页面了!
还没有完!还有最后一步测试,将之前记录的图片的路径拷贝到 192.168.1.103:8080 的后面,变成 192.168.1.103:8080/group1/M00/00/···.png 就能够访问到你的图片啦!
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于