FastDFS与Nginx结合搭建文件服务器,并内网穿透实现公网访问 ...

立山  金牌会员 | 2024-7-21 19:46:38 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 579|帖子 579|积分 1737

前言

FastDFS是一个开源的轻量级分布式文件体系,它对文件举行管理,功能包罗:文件存储、文件同步、文件访问(文件上传、文件下载)等,办理了大容量存储和负载均衡的标题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
FastDFS为互联网量身定制,充分思量了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,利用FastDFS很轻易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
配备一台公网服务器作为文件上传下载,花费资源和开销比较大,假如在本地搭建FastDFS服务,只把上传后的文件通过cpolar内网端口转发工具将文件配置可通过互联网访问,极大了减少服务器费用及开销,本文介绍具体搭建FastDFS教程,并结合Nginx+cpolar工具实现远程访问文件。
1. 本地搭建FastDFS文件体系

1.1 环境安装

由于fastDFS是由c语言编写,所以我们必要安装gcc
  1. yum -y install gcc-c++
复制代码
FastDFS依靠libevent库,必要安装。执行如下命令:
  1. yum -y install libevent
复制代码
1.2 安装libfastcommon

进入local目录
  1. cd /usr/local
复制代码
libfastcommon是FastDFS官方提供的,libfastcommon包罗了FastDFS运行所必要的一些基础库。点击下面链接即可获取:
https://github.com/happyfish100/libfastcommon/releases/tag/V1.0.7
获取后,上传到local目录下

解压libfastcommon
  1. tar -zxvf libfastcommonV1.0.7.tar.gz
复制代码
进入解压文件夹
  1. cd libfastcommon-1.0.7/
复制代码
编译
  1. ./make
  2. .sh
复制代码
安装
  1. ./make
  2. .sh
  3. install
复制代码
libfastcommon安装好后会自动将库文件拷贝至/usr/lib64下,由于FastDFS程序引用usr/lib目录所以必要将/usr/lib64下的库文件拷贝至/usr/lib下。
  1. cp /usr/lib64/libfastcommon.so /usr/lib/
复制代码
1.3 安装FastDFS

进入local目录
  1. cd /usr/local
复制代码
点击下列地址,可获取下载FastDFS_v5.05.tar.gz文件:
https://sourceforge.net/projects/fastdfs/
下载文件后,上传FastDFS_v5.05.tar.gz到/usr/local/

解压文件
  1. tar -zxvf FastDFS_v5.05.tar.gz
复制代码
进入解压文件夹
  1. cd FastDFS
复制代码
编译
  1. ./make
  2. .sh
复制代码
安装
  1. ./make
  2. .sh
  3. install
复制代码
安装乐成后,将安装目录下的conf下的文件拷贝到/etc/fdfs/下
  1. cd conf/
复制代码
拷贝
  1. cp * /etc/fdfs/
复制代码
1.4 配置Tracker

接下来举行配置,安装乐成后进入/etc/fdfs目录
  1. cd /etc/fdfs
  2. /
复制代码
修改tracker.conf
  1. vim tracker.conf
复制代码
把base_path=/home/yuqing/fastdfs改为base_path=/home/fastdfs

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

1.5 配置Storage

进入/etc/fdfs目录
  1. cd /etc/fdfs
复制代码
修改storage.conf
  1. 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文件夹
  1. mkdir /home/fastdfs
  2. /fdfs_storage
复制代码
然后启动
  1. /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
复制代码
设置开机自动启动
  1. vim /etc/rc.d/rc.local
复制代码
将运行命令行添加到文件,然后生存
  1. /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
复制代码

1.6 测试上传下载

FastDFS安装乐成可通过/usr/bin/fdfs_test命令测试上传、下载等利用。
修改/etc/fdfs/client.conf
  1. vim /etc/fdfs/client.conf
复制代码
修改如下内容,然后生存:
  1. base_path=/home/fastdfs
  2. tracker_server=Linux局域网ip:22122
复制代码

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

FastDFS上传文件利用格式:
/usr/bin/fdfs_test /etc/fdfs/client.conf upload+ 上传文件的路径
然后按照格式,测试将test23.png图片上传到FastDFS中
  1. /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/文件夹下
  1. cd /usr/local
  2. /
复制代码
上传fastdfs-nginx-module_v1.16.tar.gz

解压fastdfs-nginx-module_v1.16.tar.gz
  1. tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
复制代码
进入src,然后编辑配置文件
  1. cd fastdfs-nginx-module/src/
复制代码
修改config文件
  1. vim config
复制代码
修改这三个位置,将内里本来是/usr/local/的路径改为/usr/,然后生存退出

然后将FastDFS-nginx-module/src下的mod_FastDFS.conf拷贝至/etc/fdfs/下
  1. cp mod_fastdfs.conf /etc/fdfs/
复制代码
修改mod_FastDFS.conf的内容:
  1. 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下
  1. cp /usr/lib64/libfdfsclient.so /usr/lib/
复制代码
创建nginx/client目录即可
  1. mkdir -p /var/temp/nginx/client
复制代码
1.8 安装Nginx

起首安装系列环境
  1. yum -y install pcre pcre-devel  
复制代码
  1. yum -y install zlib zlib-devel  
复制代码
  1. yum -y install openssl openssl-devel
复制代码
然后点击下载Nginx包:
nginx-1.16.1.tar.gz
上传到root目录下

解压,并进入解压文件夹
  1. tar -zxvf nginx-1.16.1.tar.gz && cd nginx-1.16.
复制代码
添加FastDFS-nginx-module模块,执行以下命令:
  1. ./configure \
  2. --prefix=/usr/local/nginx \
  3. --pid-path=/var/run/nginx/nginx.pid \
  4. --lock-path=/var/lock/nginx.lock \
  5. --error-log-path=/var/log/nginx/error.log \
  6. --http-log-path=/var/log/nginx/access.log \
  7. --with-http_gzip_static_module \
  8. --http-client-body-temp-path=/var/temp/nginx/client \
  9. --http-proxy-temp-path=/var/temp/nginx/proxy \
  10. --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
  11. --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
  12. --http-scgi-temp-path=/var/temp/nginx/scgi \
  13. --add-module=/usr/local/fastdfs-nginx-module/src
复制代码

然后编译
  1. make
复制代码
安装
  1. make
  2. install
复制代码
1.9 配置Nginx

修改Nginx配置文件
  1. vim /usr/local/nginx/conf/nginx.conf
复制代码
添加server,添加后生存退出:
  1. server {
  2.         listen       8089;#为了防止80端口,我们改成8089
  3.         server_name  192.168.59.133;#这里需要使用你本机的局域网ip
  4.         location /group1/M00/{
  5.                 ngx_fastdfs_module;
  6.         }
  7. }
复制代码

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

关闭防火墙
  1. service iptables stop
复制代码
设置防火墙不自动启动
  1. chkconfig iptables off
复制代码
2. 局域网测试访问FastDFS

然后按照格式,测试将上面我们上传的test23.png图片上传到FastDFS中
  1. /usr/bin/fdfs_test /etc/fdfs/client.conf upload /usr/local/test23.png
复制代码
执行后,我们可以看到返回地址信息,表示乐成

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

3. 安装cpolar内网穿透

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

  • 利用一键脚本安装命令
  1. curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
复制代码


  • token认证
登录cpolar官网后台,点击左侧的验证,查察本身的认证token,之后将token贴在命令行里:
  1. cpolar authtoken xxxxxxx
复制代码



  • 向体系添加服务
  1. sudo systemctl enable cpolar
复制代码


  • 启动cpolar服务
  1. sudo systemctl start cpolar
复制代码
4. 配置公网访问地址

乐成启动cpolar服务后,我们在欣赏器上访问Linux局域网ip地址+9200端口,登录cpolar web UI管理界面。
登录乐成后,点击左侧仪表盘的隧道管理——创建隧道,创建一个http协议的隧道指向上面设置的Nginx8089端口:


  • 隧道名称:可自定义,留意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:8089
  • 域名类型:免费选择随机域名
  • 地区:选择China VIP
点击创建

然后打开在线隧道列表,查察而且复制公网地址

然后打开欣赏器,输入公网地址,访问我们上传在fastDFS里的文件,即可远程访问乐成

5. 固定公网地址

由于刚刚创建隧道利用的是随机临时地址,该地址会在24小时内发生变化,为了长期和更稳固远程访问,我们接下来将这个公网地址配置为固定的,
5.1 生存二级子域名

   需升级至基础套餐或以上才支持配置二级子域名,如有下载文件的需求,可以升级更高套餐以便获取更大的带宽,进步下载速率
  登录cpolar官网后台,点击左侧仪表盘的预留,找到生存二级子域名,为http隧道生存一个二级子域名。


  • 地区:选择服务器地区
  • 名称:填写您想要生存的二级子域名(可自定义)
  • 描述:即备注,可自定义填写

本例生存一个名称为fasttest的二级子域名。子域名生存乐成后,我们将子域名复制下来,接下来必要将其配置到隧道中去。

5.2 配置二级子域名

登录cpolar web ui管理界面。点击左侧仪表盘的隧道管理——隧道列表,找到必要配置二级子域名的隧道,点击右侧的编辑

修改隧道信息,将二级子域名配置到隧道中:


  • 域名类型:改为选择二级子域名
  • Sub Domain:填写我们刚刚所生存的二级子域名(本例为fasttest)
修改完成后,点击更新

隧道更新乐成后,点击左侧仪表盘的状态——在线隧道列表,可以看到隧道的公网地址,已经更新为二级子域名了,将公网地址复制下来。

6. 测试访问固定二级子域名

我们来测试一下访问配置乐成的二级子域名,打开欣赏器,输入公网地址加资源路径,访问我们上传在fastDFS里的文件,出现图片即可远程访问乐成。如今,我们全网唯一的私有二级子域名,就创建好了。
而且这个地址也不会再随机变化,他是固定不变的,只要保持隧道在线,我们在外就可以通过这个公网地址,随时随地远程访问,无需公网IP,也不消设置路由器。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

立山

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表