nginx 与 fastdfs 的配置过程,已经越过了许多坑,我跪着进入了欢迎页面。。。

本贴最后更新于 1578 天前,其中的信息可能已经时异事殊

d4rhXRfNg3usILc

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,找到了记录一下先,后面我们会用到

lwbGi7UEkFXPAZO

安装编译环境

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中保持一致)

2RNEOIzFpqCX4Qf

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

JDkhXIe8EtwaTyq

此时有包含 fdfs 或者以 fdfs 打头的进程有这两个,说明进程启动成功了

测试

使用 Xftp 连接 CentOS

7hWfAJtdPwFzQ8k

连接成功后可以随便放一张图片到 CentOS 里面去,以便测试

回到 root 文件夹下

cd ~

# /root/1.png是刚才用来测试的存放的图片的路径
fdfs_upload_file /etc/fdfs/client.conf /root/1.png

得到一串路径

P59iL8MWsIvmHlS

复制这串路径,保存一下,待会儿会用到

配置 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 的欢迎页面了!

QGEDM9sn87jTUFm

还没有完!还有最后一步测试,将之前记录的图片的路径拷贝到 192.168.1.103:8080 的后面,变成 192.168.1.103:8080/group1/M00/00/···.png 就能够访问到你的图片啦!

  • FastDFS

    FastDFS 是用 C 语言编写的一款开源分布式文件系统。FastDFS 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS 很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

    17 引用 • 10 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...