Redian新闻
>
FastDFS+Nginx本地搭建文件服务器同时实现在外远程访问「端口映射」

FastDFS+Nginx本地搭建文件服务器同时实现在外远程访问「端口映射」

公众号新闻

链接:https://blog.csdn.net/YYDsis/article/details/132424564

前言

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

1. 本地搭建FastDFS文件系统

1.1 环境安装

由于fastDFS是由c语言编写,所以我们需要安装gcc
yum -y install gcc-c++ 
FastDFS依赖libevent库,需要安装。执行如下命令:
yum -y install libevent

1.2 安装libfastcommon

进入local目录
cd /usr/local
libfastcommon是FastDFS官方提供的,libfastcommon包含了FastDFS运行所需要的一些基础库。点击下面链接即可获取:
https://github.com/happyfish100/libfastcommon/releases/tag/V1.0.7
获取后,上传到local目录下
解压libfastcommon
tar -zxvf libfastcommonV1.0.7.tar.gz
进入解压文件夹
cd libfastcommon-1.0.7/
编译
./make.sh
安装
./make.sh install
libfastcommon安装好后会自动将库文件拷贝至/usr/lib64下,由于FastDFS程序引用usr/lib目录所以需要将/usr/lib64下的库文件拷贝至/usr/lib下。
cp /usr/lib64/libfastcommon.so /usr/lib/

1.3 安装FastDFS

进入local目录
cd /usr/local
点击下列地址,可获取下载FastDFS_v5.05.tar.gz文件:
https://sourceforge.net/projects/fastdfs/
下载文件后,上传FastDFS_v5.05.tar.gz到/usr/local/
解压文件
tar -zxvf FastDFS_v5.05.tar.gz 
进入解压文件夹
cd FastDFS
编译
./make.sh 
安装
./make.sh install
安装成功后,将安装目录下的conf下的文件拷贝到/etc/fdfs/下
cd conf/
拷贝
cp * /etc/fdfs/

1.4 配置Tracker

接下来进行配置,安装成功后进入/etc/fdfs目录
cd /etc/fdfs/
修改tracker.conf
vim tracker.conf
把base_path=/home/yuqing/fastdfs改为base_path=/home/fastdfs
编辑后保存退出,然后创建一个对应的fastdfs文件夹
mkdir /home/fastdfs
然后启动
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
设置开机启动
vim /etc/rc.d/rc.local
将运行命令行添加进文件
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

1.5 配置Storage

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

1.6 测试上传下载

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

tracker_server=Linux局域网ip:22122
接下来测试上传文件,这里上传了一张图片到/usr/local目录下,作为测试使用
FastDFS上传文件使用格式:
/usr/bin/fdfs_test /etc/fdfs/client.conf upload+ 上传文件的路径
然后按照格式,测试将test23.png图片上传到FastDFS中
/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 Nginx Module Source Code/fastdfs-nginx-module_v1.16.tar.gz/download
进入 /usr/local/文件夹下
cd /usr/local/
上传fastdfs-nginx-module_v1.16.tar.gz
解压fastdfs-nginx-module_v1.16.tar.gz
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
进入src,然后编辑配置文件
cd fastdfs-nginx-module/src/
修改config文件
vim config
修改这三个位置,将里面原本是/usr/local/的路径改为/usr/,然后保存退出
然后将FastDFS-nginx-module/src下的mod_FastDFS.conf拷贝至/etc/fdfs/下
cp mod_fastdfs.conf /etc/fdfs/
修改mod_FastDFS.conf的内容:
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下
cp /usr/lib64/libfdfsclient.so /usr/lib/
创建nginx/client目录即可
mkdir -p /var/temp/nginx/client

1.8 安装Nginx

首先安装系列环境
yum -y install pcre pcre-devel  

yum -y install zlib zlib-devel  

yum -y install openssl openssl-devel
然后点击下载Nginx包:
http://nginx.org/en/download.html
上传到root目录下
解压,并进入解压文件夹
tar -zxvf nginx-1.16.1.tar.gz && cd nginx-1.16.
添加FastDFS-nginx-module模块,执行以下命令:
./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
然后编译
make
安装
make install

1.9 配置Nginx

修改Nginx配置文件
vim /usr/local/nginx/conf/nginx.conf
添加server,添加后保存退出:
server {
   listen       8089;#为了防止80端口,我们改成8089
   server_name  192.168.59.133;#这里需要使用你本机的局域网ip

   location /group1/M00/{
           ngx_fastdfs_module;
   }
}
启动Nginx
/usr/local/nginx/sbin/nginx 
如果启动nginx出现以下错误:
nginx: [emerg] open() “/var/run/nginx/nginx.pid” failed (2: No such file or directory)
可以执行如下命令,然后再次启动:
mkdir /var/run/nginx
设置开机自动启动。
vim /etc/rc.d/rc.local
将运行命令行添加进文件,然后保存退出:
/usr/local/nginx/sbin/nginx
关闭防火墙
service iptables stop
设置防火墙不自动启动
chkconfig iptables off

2. 局域网测试访问FastDFS

然后按照格式,测试将上面我们上传的test23.png图片上传到FastDFS中
/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/
使用一键脚本安装命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
token认证
登录cpolar官网后台,点击左侧的验证,查看自己的认证token,之后将token贴在命令行里:
cpolar authtoken xxxxxxx
向系统添加服务
sudo systemctl enable cpolar
启动cpolar服务
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,也不用设置路由器。

END

官方站点:www.linuxprobe.com

Linux命令大全:www.linuxcool.com

刘遄老师QQ:5604215

Linux技术交流群:2636170

(新群,火热加群中……)

想要学习Linux系统的读者可以点击"阅读原文"按钮来了解书籍《Linux就该这么学》,同时也非常适合专业的运维人员阅读,成为辅助您工作的高价值工具书!

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
咏球道珊瑚树哈佛首位黑人女校长就职演讲视频:我们要有问「为什么不」的勇气哈佛首位黑人女校长就职演讲:我们要有问「为什么不」的勇气香港理工大学林建文教授课题组招聘研究助理nodejs 实现MQTT协议的服务器端和客户端的双向交互NGINX 模块现在可以用 Rust 编写了曾被问「周润发、梁朝伟落水先救谁?」 刘德华妙答笑翻网友威马关闭后台服务器,客服失联,车机服务全没了;新浪上海被网信办约谈;华为派出工程师检查,赛力斯工厂急招大量员工丨雷峰早报真没想到!国际重奢𝘼𝙦𝙪𝙖𝙨𝙘𝙪𝙩𝙪𝙢雅格狮丹的风衣都让我们找来了,1折限时抢𝘼𝙦𝙪𝙖𝙨𝙘𝙪𝙩𝙪𝙢三防夹克,经典、优雅不凡的英伦风!还送长袖T恤!国际重奢𝘼𝙦𝙪𝙖𝙨𝙘𝙪𝙩𝙪𝙢中长款风衣,品位与优雅,兼顾帅气和女人味!AI与诗词创作【天与湖】 一组小诗真没想到!国际重奢𝘼𝙦𝙪𝙖𝙨𝙘𝙪𝙩𝙪𝙢(雅格狮丹)风衣都让我们找来了(1折限时抢)公募鏖战ETF,基金发行"冰火两重天"!何时实现"每四人就有一人买ETF"?元正文化联合胡润百富共同搭建文化桥梁 | 《2023-2033胡润全球陶瓷榜》榜单项目签约暨启动仪式圆满落幕!华人大妈公园抓野鹅炖汤 被抓还问「我有错?」Cineplex本周六上映 奇幻喜剧动画电影《变身吉妹》票价2.99元!换季大捡漏!国际重奢𝘼𝙦𝙪𝙖𝙨𝙘𝙪𝙩𝙪𝙢短袖买一送一!库存不多,手慢无!FastDFS+Nginx - 本地搭建文件服务器同时实现在外远程访问「端口映射」Linux、Windows 上还不会端口映射的网工,请低调看过来!领事证件服务走地方:关于中国使馆1月14日在迈阿密市受理有关领事证件申请的通知!娄岩一周诗词五首Nginx的配置文件如何设置头信息保留真实IP不丢失《九月,2023》《September, 2023》激动人心!温哥华-西雅图高铁提上日程,拜登宣布拨款强力支持!时速达400km/h,一小时实现跨国旅游!英国百年贵族奢牌𝘼𝙦𝙪𝙖𝙨𝙘𝙪𝙩𝙪𝙢休闲卫衣!经典、优雅不凡的英伦风~大神是如何用python对远程服务器进行命令或文件操作的?荷兰政府部分撤销了此前颁发的NXT:2050i和NXT:2100i两个型号光刻机的出口许可证大神是如何用 python 对远程服务器进行命令或文件操作的?1折入!国际重奢𝘼𝙦𝙪𝙖𝙨𝙘𝙪𝙩𝙪𝙢雅格狮丹三防夹克,下单送长袖T恤!退货方便多了!Uber推出新上门取件服务,不用自己跑邮局退货了!Preparing for the 2023 Tax Year: Ensuring a Strong Tax Saving?2023 国产服务器操作系统发展报告发布:服务器操作系统进入 2.0 时代,面向云计算、智能计算进化Cineplex本周六上映 喜剧动画电影《爱宠大机密》,票价2.99元!
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。