大家好,我是锋哥!

Java1234 VIP大特惠(仅限100名额)!...

图片

前言

是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

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

配备一台公网服务器作为文件上传下载,花费资源和开销比较大,如果在本地搭建服务,只把上传后的文件通过内网端口转发工具将文件配置可通过互联网访问,极大了减少服务器费用及开销,本文介绍详细搭建教程,并结合Nginx+工具实现远程访问文件。

1. 本地搭建文件系统1.1 环境安装

由于是由c语言编写,所以我们需要安装gcc

yum -y install gcc-c++ 

依赖库,需要安装。执行如下命令:

yum -y install libevent

1.2 安装

进入local目录

cd /usr/local

是官方提供的,包含了运行所需要的一些基础库。点击下面链接即可获取:

获取后,上传到local目录下

图片

图片

解压

tar -zxvf libfastcommonV1.0.7.tar.gz

进入解压文件夹

cd libfastcommon-1.0.7/

编译

./make.sh

安装

./make.sh install

安装好后会自动将库文件拷贝至/usr/lib64下,由于程序引用usr/lib目录所以需要将/usr/lib64下的库文件拷贝至/usr/lib下。

cp /usr/lib64/libfastcommon.so /usr/lib/

1.3 安装

进入local目录

cd /usr/local

点击下列地址,可获取下载.05.tar.gz文件:

下载文件后,上传.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 配置

接下来进行配置,安装成功后进入/etc/fdfs目录

cd /etc/fdfs/

修改.conf

vim tracker.conf

把=/home//改为=/home/

图片

图片

编辑后保存退出,然后创建一个对应的文件夹

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 配置

进入/etc/fdfs目录

cd /etc/fdfs

修改.conf

vim storage.conf

把=/home//改为=/home/

图片

把 =/home// 改为=/home//

图片

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

图片

创建对应文件夹

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 测试上传下载

安装成功可通过/usr/bin/命令测试上传、下载等操作。

修改/etc/fdfs/.conf

vim /etc/fdfs/client.conf

修改如下内容,然后保存:

base_path=/home/fastdfs

tracker_server=Linux局域网ip:22122

图片

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

图片

图片

上传文件使用格式:

/usr/bin/ /etc/fdfs/.conf + 上传文件的路径

然后按照格式,测试将.png图片上传到中

/usr/bin/ /etc/fdfs/.conf /usr/local/.png

执行后,我们可以看到返回地址信息,表示成功,但是目前还访问不了,需要结合Nginx做访问下载

图片1.7 与Nginx整合

点击下载下面链接下载-nginx-.16:

Nginx Code/-nginx-.16.tar.gz/

进入 /usr/local/文件夹下

cd /usr/local/

上传-nginx-.16.tar.gz

图片

解压-nginx-.16.tar.gz

tar -zxvf fastdfs-nginx-module_v1.16.tar.gz

进入src,然后编辑配置文件

cd fastdfs-nginx-module/src/

修改文件

vim config

修改这三个位置,将里面原本是/usr/local/的路径改为/usr/,然后保存退出

图片

图片

然后将-nginx-/src下的.conf拷贝至/etc/fdfs/下

cp mod_fastdfs.conf /etc/fdfs/

修改.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 #指定文件存储路径

图片

接下来将.so拷贝至/usr/lib下

cp /usr/lib64/libfdfsclient.so /usr/lib/

创建nginx/目录即可

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包:

上传到root目录下

图片

图片

解压,并进入解压文件夹

tar -zxvf nginx-1.16.1.tar.gz && cd nginx-1.16.

添加-nginx-模块,执行以下命令:

./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 {
   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” (2: No such file or )

可以执行如下命令,然后再次启动:

mkdir /var/run/nginx

设置开机自动启动。

vim /etc/rc.d/rc.local

将运行命令行添加进文件,然后保存退出:

/usr/local/nginx/sbin/nginx

图片

图片

关闭防火墙

service iptables stop

设置防火墙不自动启动

chkconfig iptables off

2. 局域网测试访问

然后按照格式,测试将上面我们上传的.png图片上传到中

/usr/bin/fdfs_test /etc/fdfs/client.conf upload /usr/local/test23.png

执行后,我们可以看到返回地址信息,表示成功

图片

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

图片3. 安装内网穿透

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

官网:

使用一键脚本安装命令

curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash

token认证

登录官网后台,点击左侧的验证,查看自己的认证token,之后将token贴在命令行里:

cpolar authtoken xxxxxxx

图片

向系统添加服务

sudo systemctl enable cpolar

启动服务

sudo systemctl start cpolar

4. 配置公网访问地址

成功启动服务后,我们在浏览器上访问Linux局域网ip地址+9200端口,登录 web UI管理界面。

登录成功后,点击左侧仪表盘的隧道管理——创建隧道,创建一个http协议的隧道指向上面设置的端口:

点击创建

图片

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

图片

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

图片5. 固定公网地址

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

5.1 保留二级子域名

需升级至基础套餐或以上才支持配置二级子域名,如有下载文件的需求,可以升级更高套餐以便获取更大的带宽,提高下载速度

登录官网后台,点击左侧仪表盘的预留,找到保留二级子域名,为http隧道保留一个二级子域名。

图片

本例保留一个名称为的二级子域名。子域名保留成功后,我们将子域名复制下来,接下来需要将其配置到隧道中去。

图片5.2 配置二级子域名

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

图片

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

修改完成后,点击更新

图片

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

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

我们来测试一下访问配置成功的二级子域名,打开浏览器,输入公网地址加资源路径,访问我们上传在里的文件,出现图片即可远程访问成功。现在fastdfs,我们全网唯一的私有二级子域名fastdfs,就创建好了。

而且这个地址也不会再随机变化,他是固定不变的,只要保持隧道在线,我们在外就可以通过这个公网地址,随时随地远程访问,无需公网IP,也不用设置路由器。

图片来源:// //

End


锋哥私房菜资源热门推荐

0基础Python3快速上手视频教程76讲..

SpringSecurity+Vue权限系统(42讲) 震撼发布!
Java微信小程序电商实战课程(95讲) 高调发布!

2023年粉丝福利 
http://download.java1234.com/
每月送 666 套Java海量资源网站 VIP会员,供大伙一起学Java
如果没加过锋哥微信的
加一下锋哥微信备注 VIP 即可开通

长按上方二维码2秒,备注vip

锋哥,前世界500强央企软件工程师,12年Java,老司机,技术专家,资深Java,讲师,小锋网络科技 光杠司令员,司令部:, 每天坚持锻炼身体,坚持早睡早起,崇尚自由,平时喜欢带带Java学员 (已经成功指导2000+学员高薪就业),喜欢搞搞Java技术自媒体,搞搞产品,后期继续研究主流技术,包括,大数据,人工智能等,每天进步一点,奥利给..


限时特惠:
本站持续每日更新海量各大内部创业课程,一年会员仅需要98元,全站资源免费下载
点击查看详情

站长微信:Jiucxh

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注