??????歡迎來(lái)到我的博客,很高興能夠在這里和您見(jiàn)面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內(nèi)容和知識(shí),也可以暢所欲言、分享您的想法和見(jiàn)解。
- 推薦:kwan 的首頁(yè),持續(xù)學(xué)習(xí),不斷總結(jié),共同進(jìn)步,活到老學(xué)到老
- 導(dǎo)航
- 檀越劍指大廠系列:全面總結(jié) java 核心技術(shù)點(diǎn),如集合,jvm,并發(fā)編程 redis,kafka,Spring,微服務(wù),Netty 等
- 常用開(kāi)發(fā)工具系列:羅列常用的開(kāi)發(fā)工具,如 IDEA,Mac,Alfred,electerm,Git,typora,apifox 等
- 數(shù)據(jù)庫(kù)系列:詳細(xì)總結(jié)了常用數(shù)據(jù)庫(kù) mysql 技術(shù)點(diǎn),以及工作中遇到的 mysql 問(wèn)題等
- 懶人運(yùn)維系列:總結(jié)好用的命令,解放雙手不香嗎?能用一個(gè)命令完成絕不用兩個(gè)操作
- 數(shù)據(jù)結(jié)構(gòu)與算法系列:總結(jié)數(shù)據(jù)結(jié)構(gòu)和算法,不同類型針對(duì)性訓(xùn)練,提升編程思維,劍指大廠
非常期待和您一起在這個(gè)小小的網(wǎng)絡(luò)世界里共同探索、學(xué)習(xí)和成長(zhǎng)。?????? ?? 歡迎訂閱本專欄 ??
前言
FastDFS 是一個(gè)開(kāi)源的輕量級(jí)分布式文件系統(tǒng),它對(duì)文件進(jìn)行管理,功能包括:文件存儲(chǔ)、文件同步、文件訪問(wèn)(文件上傳、文件下載)等,解決了大容量存儲(chǔ)和負(fù)載均衡的問(wèn)題。特別適合以文件為載體的在線服務(wù),如相冊(cè)網(wǎng)站、視頻網(wǎng)站等等。
FastDFS 為互聯(lián)網(wǎng)量身定制,充分考慮了冗余備份、負(fù)載均衡、線性擴(kuò)容等機(jī)制,并注重高可用、高性能等指標(biāo),使用 FastDFS 很容易搭建一套高性能的文件服務(wù)器集群提供文件上傳、下載等服務(wù)。
配備一臺(tái)公網(wǎng)服務(wù)器作為文件上傳下載,花費(fèi)資源和開(kāi)銷比較大,如果在本地搭建 FastDFS 服務(wù),只把上傳后的文件通過(guò) cpolar 內(nèi)網(wǎng)端口轉(zhuǎn)發(fā)工具將文件配置可通過(guò)互聯(lián)網(wǎng)訪問(wèn),極大了減少服務(wù)器費(fèi)用及開(kāi)銷,本文介紹詳細(xì)搭建 FastDFS 教程,并結(jié)合 Nginx+cpolar 工具實(shí)現(xiàn)遠(yuǎn)程訪問(wèn)文件。
1. 本地搭建 FastDFS 文件系統(tǒng)
1.1 環(huán)境安裝
由于 fastDFS 是由 c 語(yǔ)言編寫(xiě),所以我們需要安裝gcc
yum -y install gcc-c++
FastDFS 依賴libevent庫(kù)
,需要安裝。執(zhí)行如下命令:
yum -y install libevent
1.2 安裝 libfastcommon
進(jìn)入 local 目錄
cd /usr/local
libfastcommon 是 FastDFS 官方提供的,libfastcommon 包含了 FastDFS 運(yùn)行所需要的一些基礎(chǔ)庫(kù)。點(diǎn)擊下面鏈接即可獲取:
https://github.com/happyfish100/libfastcommon/releases/tag/V1.0.7
獲取后,上傳到local
目錄下
解壓 libfastcommon
tar -zxvf libfastcommonV1.0.7.tar.gz
進(jìn)入解壓文件夾
cd libfastcommon-1.0.7/
編譯
./make.sh
安裝
./make.sh install
libfastcommon 安裝好后會(huì)自動(dòng)將庫(kù)文件拷貝至/usr/lib64
下,由于 FastDFS 程序引用 usr/lib 目錄所以需要將/usr/lib64 下的庫(kù)文件拷貝至/usr/lib 下。
cp /usr/lib64/libfastcommon.so /usr/lib/
1.3 安裝 FastDFS
進(jìn)入 local 目錄
cd /usr/local
點(diǎn)擊下列地址,可獲取下載 FastDFS_v5.05.tar.gz 文件:
https://sourceforge.net/projects/fastdfs/
下載文件后,上傳FastDFS_v5.05.tar.gz
到/usr/local/
解壓文件
tar -zxvf FastDFS_v5.05.tar.gz
進(jìn)入解壓文件夾
cd FastDFS
編譯
./make.sh
安裝
./make.sh install
安裝成功后,將安裝目錄下的 conf 下的文件拷貝到/etc/fdfs/
下
cd conf/
拷貝
cp * /etc/fdfs/
1.4 配置 Tracker
接下來(lái)進(jìn)行配置,安裝成功后進(jìn)入/etc/fdfs
目錄
cd /etc/fdfs/
修改 tracker.conf
vim tracker.conf
把base_path=/home/yuqing/fastdfs
改為base_path=/home/fastdfs
編輯后保存退出,然后創(chuàng)建一個(gè)對(duì)應(yīng)的fastdfs文件夾
mkdir /home/fastdfs
然后啟動(dòng)
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
設(shè)置開(kāi)機(jī)啟動(dòng)
vim /etc/rc.d/rc.local
將運(yùn)行命令行添加進(jìn)文件
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
1.5 配置 Storage
進(jìn)入/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
繼續(xù)修改,設(shè)置 tracker 服務(wù)器:IP,tracker_server=Linux 局域網(wǎng) ip:22122 ,設(shè)置好后保存退出
創(chuàng)建對(duì)應(yīng) fdfs_storage 文件夾
mkdir /home/fastdfs/fdfs_storage
然后啟動(dòng)
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
設(shè)置開(kāi)機(jī)自動(dòng)啟動(dòng)
vim /etc/rc.d/rc.local
將運(yùn)行命令行添加到文件,然后保存
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
1.6 測(cè)試上傳下載
FastDFS 安裝成功可通過(guò)/usr/bin/fdfs_test 命令測(cè)試上傳、下載等操作。
修改/etc/fdfs/client.conf
vim /etc/fdfs/client.conf
修改如下內(nèi)容,然后保存:
base_path=/home/fastdfs
tracker_server=Linux局域網(wǎng)ip:22122
接下來(lái)測(cè)試上傳文件,這里上傳了一張圖片到/usr/local
目錄下,作為測(cè)試使用
FastDFS 上傳文件使用格式:
/usr/bin/fdfs_test /etc/fdfs/client.conf upload+ 上傳文件的路徑
然后按照格式,測(cè)試將 test23.png 圖片上傳到 FastDFS 中
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /usr/local/test23.png
執(zhí)行后,我們可以看到返回地址信息,表示成功,但是目前還訪問(wèn)不了,需要結(jié)合 Nginx 做訪問(wèn)下載
1.7 與 Nginx 整合
點(diǎn)擊下載下面鏈接下載 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)
進(jìn)入 /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
進(jìn)入 src,然后編輯配置文件
cd fastdfs-nginx-module/src/
修改 config 文件
vim config
修改這三個(gè)位置,將里面原本是/usr/local/的路徑改為/usr/,然后保存退出
然后將 FastDFS-nginx-module/src 下的 mod_FastDFS.conf 拷貝至/etc/fdfs/下
cp mod_fastdfs.conf /etc/fdfs/
修改 mod_FastDFS.conf 的內(nèi)容:
vim /etc/fdfs/mod_fastdfs.conf
修改內(nèi)容如下:
base_path=/home/fastdfs
tracker_server=Linux 局域網(wǎng) ip 地址:22122
url_have_group_name=true #url 中包含 group 名稱
store_path0=/home/fastdfs/fdfs_storage #指定文件存儲(chǔ)路徑
接下來(lái)將 libfdfsclient.so 拷貝至/usr/lib 下
cp /usr/lib64/libfdfsclient.so /usr/lib/
創(chuàng)建 nginx/client 目錄即可
mkdir -p /var/temp/nginx/client
1.8 安裝 Nginx
首先安裝系列環(huán)境
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel
然后點(diǎn)擊下載 Nginx 包:
nginx-1.16.1.tar.gz
上傳到 root 目錄下
解壓,并進(jìn)入解壓文件夾
tar -zxvf nginx-1.16.1.tar.gz && cd nginx-1.16.
添加 FastDFS-nginx-module 模塊,執(zhí)行以下命令:
./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;#這里需要使用你本機(jī)的局域網(wǎng)ip
location /group1/M00/{
ngx_fastdfs_module;
}
}
啟動(dòng) Nginx
/usr/local/nginx/sbin/nginx
如果啟動(dòng) nginx 出現(xiàn)以下錯(cuò)誤:
nginx: [emerg] open() “/var/run/nginx/nginx.pid” failed (2: No such file or directory)
可以執(zhí)行如下命令,然后再次啟動(dòng):
mkdir /var/run/nginx
設(shè)置開(kāi)機(jī)自動(dòng)啟動(dòng)。
vim /etc/rc.d/rc.local
將運(yùn)行命令行添加進(jìn)文件,然后保存退出:
/usr/local/nginx/sbin/nginx
關(guān)閉防火墻
service iptables stop
設(shè)置防火墻不自動(dòng)啟動(dòng)
chkconfig iptables off
2. 局域網(wǎng)測(cè)試訪問(wèn) FastDFS
然后按照格式,測(cè)試將上面我們上傳的 test23.png 圖片上傳到 FastDFS 中
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /usr/local/test23.png
執(zhí)行后,我們可以看到返回地址信息,表示成功
然后使用上面的地址,在瀏覽器訪問(wèn),即可看到我們上傳的圖片,fastDFS 搭建完成
3. 安裝 cpolar 內(nèi)網(wǎng)穿透
上面我們?cè)诒镜?Linux 虛擬機(jī)安裝了 fastDFS 分布式文件服務(wù),下面我們安裝 cpolar 內(nèi)網(wǎng)穿透工具,通過(guò) cpolar 的 http 公網(wǎng)地址,我們可以很容易遠(yuǎn)程也可以訪問(wèn) fastDFS 里面上傳的文件,而無(wú)需自己注冊(cè)域名購(gòu)買(mǎi)云服務(wù)器.下面是安裝 cpolar 內(nèi)網(wǎng)穿透步驟
cpolar 官網(wǎng):https://www.cpolar.com/
- 使用一鍵腳本安裝命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
- token 認(rèn)證
登錄 cpolar 官網(wǎng)后臺(tái),點(diǎn)擊左側(cè)的驗(yàn)證,查看自己的認(rèn)證 token,之后將 token 貼在命令行里:
cpolar authtoken xxxxxxx
- 向系統(tǒng)添加服務(wù)
sudo systemctl enable cpolar
- 啟動(dòng) cpolar 服務(wù)
sudo systemctl start cpolar
4. 配置公網(wǎng)訪問(wèn)地址
成功啟動(dòng) cpolar 服務(wù)后,我們?cè)跒g覽器上訪問(wèn) Linux 局域網(wǎng) ip 地址+9200 端口,登錄 cpolar web UI 管理界面。
登錄成功后,點(diǎn)擊左側(cè)儀表盤(pán)的隧道管理——?jiǎng)?chuàng)建隧道,創(chuàng)建一個(gè) http 協(xié)議的隧道指向上面設(shè)置的 Nginx8089 端口:
- 隧道名稱:可自定義,注意不要與已有的隧道名稱重復(fù)
- 協(xié)議:http
- 本地地址:8089
- 域名類型:免費(fèi)選擇隨機(jī)域名
- 地區(qū):選擇 China VIP
點(diǎn)擊創(chuàng)建
然后打開(kāi)在線隧道列表,查看并且復(fù)制公網(wǎng)地址
然后打開(kāi)瀏覽器,輸入公網(wǎng)地址,訪問(wèn)我們上傳在 fastDFS 里的文件,即可遠(yuǎn)程訪問(wèn)成功
5. 固定公網(wǎng)地址
由于剛剛創(chuàng)建隧道使用的是隨機(jī)臨時(shí)地址,該地址會(huì)在 24 小時(shí)內(nèi)發(fā)生變化,為了長(zhǎng)期和更穩(wěn)定遠(yuǎn)程訪問(wèn),我們接下來(lái)將這個(gè)公網(wǎng)地址配置為固定的,
5.1 保留二級(jí)子域名
需升級(jí)至基礎(chǔ)套餐或以上才支持配置二級(jí)子域名,如有下載文件的需求,可以升級(jí)更高套餐以便獲取更大的帶寬,提高下載速度
登錄cpolar 官網(wǎng)后臺(tái),點(diǎn)擊左側(cè)儀表盤(pán)的預(yù)留
,找到保留二級(jí)子域名
,為 http 隧道保留一個(gè)二級(jí)子域名。
- 地區(qū):選擇服務(wù)器地區(qū)
- 名稱:填寫(xiě)您想要保留的二級(jí)子域名(可自定義)
- 描述:即備注,可自定義填寫(xiě)
本例保留一個(gè)名稱為fasttest
的二級(jí)子域名。子域名保留成功后,我們將子域名復(fù)制下來(lái),接下來(lái)需要將其配置到隧道中去。
5.2 配置二級(jí)子域名
登錄 cpolar web ui 管理界面。點(diǎn)擊左側(cè)儀表盤(pán)的隧道管理
——隧道列表
,找到需要配置二級(jí)子域名的隧道,點(diǎn)擊右側(cè)的編輯
修改隧道信息,將二級(jí)子域名配置到隧道中:
- 域名類型:改為選擇
二級(jí)子域名
- Sub Domain:填寫(xiě)我們剛剛所保留的二級(jí)子域名(本例為
fasttest
)
修改完成后,點(diǎn)擊更新
隧道更新成功后,點(diǎn)擊左側(cè)儀表盤(pán)的狀態(tài)
——在線隧道列表
,可以看到隧道的公網(wǎng)地址,已經(jīng)更新為二級(jí)子域名了,將公網(wǎng)地址復(fù)制下來(lái)。
6. 測(cè)試訪問(wèn)固定二級(jí)子域名
我們來(lái)測(cè)試一下訪問(wèn)配置成功的二級(jí)子域名,打開(kāi)瀏覽器,輸入公網(wǎng)地址加資源路徑,訪問(wèn)我們上傳在 fastDFS 里的文件,出現(xiàn)圖片即可遠(yuǎn)程訪問(wèn)成功?,F(xiàn)在,我們?nèi)W(wǎng)唯一的私有二級(jí)子域名,就創(chuàng)建好了。
而且這個(gè)地址也不會(huì)再隨機(jī)變化,他是固定不變的,只要保持隧道在線,我們?cè)谕饩涂梢酝ㄟ^(guò)這個(gè)公網(wǎng)地址,隨時(shí)隨地遠(yuǎn)程訪問(wèn),無(wú)需公網(wǎng) IP,也不用設(shè)置路由器。
覺(jué)得有用的話點(diǎn)個(gè)贊
????
唄。
??????本人水平有限,如有紕漏,歡迎各位大佬評(píng)論批評(píng)指正!????????????如果覺(jué)得這篇文對(duì)你有幫助的話,也請(qǐng)給個(gè)點(diǎn)贊、收藏下吧,非常感謝!?? ?? ??
??????Stay Hungry Stay Foolish 道阻且長(zhǎng),行則將至,讓我們一起加油吧!??????文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-853416.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-853416.html
到了這里,關(guān)于Linux系統(tǒng)搭建FastDFS文件服務(wù)結(jié)合內(nèi)網(wǎng)穿透實(shí)現(xiàn)公網(wǎng)訪問(wèn)本地文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!