💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
- 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
- 导航
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨
博客目录
- 前言
- [1. 本地搭建 FastDFS 文件系统](#1. 本地搭建 FastDFS 文件系统)
-
- [1.1 环境安装](#1.1 环境安装)
- [1.2 安装 libfastcommon](#1.2 安装 libfastcommon)
- [1.3 安装 FastDFS](#1.3 安装 FastDFS)
- [1.4 配置 Tracker](#1.4 配置 Tracker)
- [1.5 配置 Storage](#1.5 配置 Storage)
- [1.6 测试上传下载](#1.6 测试上传下载)
- [1.7 与 Nginx 整合](#1.7 与 Nginx 整合)
- [1.8 安装 Nginx](#1.8 安装 Nginx)
- [1.9 配置 Nginx](#1.9 配置 Nginx)
- [2. 局域网测试访问 FastDFS](#2. 局域网测试访问 FastDFS)
- [3. 安装 cpolar 内网穿透](#3. 安装 cpolar 内网穿透)
- [4. 配置公网访问地址](#4. 配置公网访问地址)
- [5. 固定公网地址](#5. 固定公网地址)
-
- [5.1 保留二级子域名](#5.1 保留二级子域名)
- [5.2 配置二级子域名](#5.2 配置二级子域名)
- [6. 测试访问固定二级子域名](#6. 测试访问固定二级子域名)
前言
FastDFS 是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
FastDFS 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS 很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
配备一台公网服务器作为文件上传下载,花费资源和开销比较大,如果在本地搭建 FastDFS 服务,只把上传后的文件通过 cpolar 内网端口转发工具将文件配置可通过互联网访问,极大了减少服务器费用及开销,本文介绍详细搭建 FastDFS 教程,并结合 Nginx+cpolar 工具实现远程访问文件。
1. 本地搭建 FastDFS 文件系统
1.1 环境安装
由于 fastDFS 是由 c 语言编写,所以我们需要安装gcc
shell
yum -y install gcc-c++
FastDFS 依赖libevent库
,需要安装。执行如下命令:
shell
yum -y install libevent
1.2 安装 libfastcommon
进入 local 目录
shell
cd /usr/local
libfastcommon 是 FastDFS 官方提供的,libfastcommon 包含了 FastDFS 运行所需要的一些基础库。点击下面链接即可获取:
https://github.com/happyfish100/libfastcommon/releases/tag/V1.0.7
获取后,上传到local
目录下

解压 libfastcommon
shell
tar -zxvf libfastcommonV1.0.7.tar.gz
进入解压文件夹
shell
cd libfastcommon-1.0.7/
编译
shell
./make.sh
安装
shell
./make.sh install
libfastcommon 安装好后会自动将库文件拷贝至/usr/lib64
下,由于 FastDFS 程序引用 usr/lib 目录所以需要将/usr/lib64 下的库文件拷贝至/usr/lib 下。
shell
cp /usr/lib64/libfastcommon.so /usr/lib/
1.3 安装 FastDFS
进入 local 目录
shell
cd /usr/local
点击下列地址,可获取下载 FastDFS_v5.05.tar.gz 文件:
https://sourceforge.net/projects/fastdfs/
下载文件后,上传FastDFS_v5.05.tar.gz
到/usr/local/

解压文件
shell
tar -zxvf FastDFS_v5.05.tar.gz
进入解压文件夹
shell
cd FastDFS
编译
shell
./make.sh
安装
shell
./make.sh install
安装成功后,将安装目录下的 conf 下的文件拷贝到/etc/fdfs/
下
shell
cd conf/
拷贝
shell
cp * /etc/fdfs/
1.4 配置 Tracker
接下来进行配置,安装成功后进入/etc/fdfs
目录
shell
cd /etc/fdfs/
修改 tracker.conf
shell
vim tracker.conf
把base_path=/home/yuqing/fastdfs
改为base_path=/home/fastdfs

编辑后保存退出,然后创建一个对应的fastdfs文件夹
shell
mkdir /home/fastdfs
然后启动
shell
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
设置开机启动
shell
vim /etc/rc.d/rc.local
将运行命令行添加进文件
shell
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

1.5 配置 Storage
进入/etc/fdfs 目录
shell
cd /etc/fdfs
修改 storage.conf
shell
vim storage.conf
把base_path=/home/yuqing/fastdfs
改为base_path=/home/fastdfs

把store_path0=/home/yuqing/fastdfs
改为store_path0=/home/fastdfs/fdfs_storage

继续修改,设置 tracker 服务器:IP,tracker_server=Linux 局域网 ip:22122 ,设置好后保存退出

创建对应 fdfs_storage 文件夹
shell
mkdir /home/fastdfs/fdfs_storage
然后启动
shell
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
设置开机自动启动
shell
vim /etc/rc.d/rc.local
将运行命令行添加到文件,然后保存
shell
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

1.6 测试上传下载
FastDFS 安装成功可通过/usr/bin/fdfs_test 命令测试上传、下载等操作。
修改/etc/fdfs/client.conf
shell
vim /etc/fdfs/client.conf
修改如下内容,然后保存:
shell
base_path=/home/fastdfs
tracker_server=Linux局域网ip:22122

接下来测试上传文件,这里上传了一张图片到/usr/local
目录下,作为测试使用

FastDFS 上传文件使用格式:
/usr/bin/fdfs_test /etc/fdfs/client.conf upload+ 上传文件的路径
然后按照格式,测试将 test23.png 图片上传到 FastDFS 中
shell
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /usr/local/test23.png
执行后,我们可以看到返回地址信息,表示成功,但是目前还访问不了,需要结合 Nginx 做访问下载

1.7 与 Nginx 整合
点击下载下面链接下载 fastdfs-nginx-module_v1.16:
https://sourceforge.net/projects/fastdfs/files/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz/download\](https://sourceforge.net/projects/fastdfs/files/FastDFS Nginx Module Source Code/fastdfs-nginx-module_v1.16.tar.gz/download)
进入 /usr/local/文件夹下
```shell
cd /usr/local/
```
上传`fastdfs-nginx-module_v1.16.tar.gz`

解压 fastdfs-nginx-module_v1.16.tar.gz
```shell
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
```
进入 src,然后编辑配置文件
```shell
cd fastdfs-nginx-module/src/
```
修改 config 文件
```shell
vim config
```
修改这三个位置,将里面原本是/usr/local/的路径改为/usr/,然后保存退出

然后将 FastDFS-nginx-module/src 下的 mod_FastDFS.conf 拷贝至/etc/fdfs/下
```shell
cp mod_fastdfs.conf /etc/fdfs/
```
修改 mod_FastDFS.conf 的内容:
```shell
vim /etc/fdfs/mod_fastdfs.conf
```
修改内容如下:
> base_path=/home/fastdfs
>
> tracker_server=Linux 局域网 ip 地址:22122
>
> url_have_group_name=true #url 中包含 group 名称
>
> store_path0=/home/fastdfs/fdfs_storage #指定文件存储路径

接下来将 libfdfsclient.so 拷贝至/usr/lib 下
```shell
cp /usr/lib64/libfdfsclient.so /usr/lib/
```
创建 nginx/client 目录即可
```shell
mkdir -p /var/temp/nginx/client
```
### 1.8 安装 Nginx
首先安装系列环境
```shell
yum -y install pcre pcre-devel
```
```shell
yum -y install zlib zlib-devel
```
```shell
yum -y install openssl openssl-devel
```
然后点击下载 Nginx 包:
[nginx-1.16.1.tar.gz](http://nginx.org/en/download.html)
上传到 root 目录下

解压,并进入解压文件夹
```shell
tar -zxvf nginx-1.16.1.tar.gz && cd nginx-1.16.
```
添加 FastDFS-nginx-module 模块,执行以下命令:
```shell
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/usr/local/fastdfs-nginx-module/src
```

然后编译
```shell
make
```
安装
```shell
make install
```
### 1.9 配置 Nginx
修改 Nginx 配置文件
```shell
vim /usr/local/nginx/conf/nginx.conf
```
添加 server,添加后保存退出:
```shell
server {
listen 8089;#为了防止80端口,我们改成8089
server_name 192.168.59.133;#这里需要使用你本机的局域网ip
location /group1/M00/{
ngx_fastdfs_module;
}
}
```

启动 Nginx
```shell
/usr/local/nginx/sbin/nginx
```
如果启动 nginx 出现以下错误:
nginx: \[emerg\] open() "/var/run/nginx/nginx.pid" failed (2: No such file or directory)
可以执行如下命令,然后再次启动:
```shell
mkdir /var/run/nginx
```
设置开机自动启动。
```shell
vim /etc/rc.d/rc.local
```
将运行命令行添加进文件,然后保存退出:
```shell
/usr/local/nginx/sbin/nginx
```

关闭防火墙
```shell
service iptables stop
```
设置防火墙不自动启动
```shell
chkconfig iptables off
```
## 2. 局域网测试访问 FastDFS
然后按照格式,测试将上面我们上传的 test23.png 图片上传到 FastDFS 中
```shell
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /usr/local/test23.png
```
执行后,我们可以看到返回地址信息,表示成功

然后使用上面的地址,在浏览器访问,即可看到我们上传的图片,fastDFS 搭建完成

## 3. 安装 cpolar 内网穿透
上面我们在本地 Linux 虚拟机安装了 fastDFS 分布式文件服务,下面我们安装 cpolar 内网穿透工具,通过 cpolar 的 http 公网地址,我们可以很容易远程也可以访问 fastDFS 里面上传的文件,而无需自己注册域名购买云服务器.下面是安装 cpolar 内网穿透步骤
> cpolar 官网: