CentOS部署FastDFS+Nginx并實現遠程訪問本地服務器中文件

文章目錄

  • 前言
  • 1. 本地搭建FastDFS文件系統
    • 1.1 環境安裝
    • 1.2 安裝libfastcommon
    • 1.3 安裝FastDFS
    • 1.4 配置Tracker
    • 1.5 配置Storage
    • 1.6 測試上傳下載
    • 1.7 與Nginx整合
    • 1.8 安裝Nginx
    • 1.9 配置Nginx
  • 2. 局域網測試訪問FastDFS
  • 3. 安裝cpolar內網穿透
  • 4. 配置公網訪問地址
  • 5. 固定公網地址
    • 5.1 保留二級子域名
    • 5.2 配置二級子域名
  • 6. 測試訪問固定二級子域名

前言

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目錄下

1679321808236

解壓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/

1679322527568

解壓文件

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

1679321890447

編輯后保存退出,然后創建一個對應的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

1679321943356

1.5 配置Storage

進入/etc/fdfs目錄

cd /etc/fdfs

修改storage.conf

vim storage.conf

base_path=/home/yuqing/fastdfs改為base_path=/home/fastdfs

1679322281423

store_path0=/home/yuqing/fastdfs改為store_path0=/home/fastdfs/fdfs_storage

1679322153239

繼續修改,設置tracker服務器:IP,tracker_server=Linux局域網ip:22122 ,設置好后保存退出

1679322199689

創建對應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

image-20230319225348678

1.6 測試上傳下載

FastDFS安裝成功可通過/usr/bin/fdfs_test命令測試上傳、下載等操作。

修改/etc/fdfs/client.conf

vim /etc/fdfs/client.conf

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

base_path=/home/fastdfstracker_server=Linux局域網ip:22122

1679322420123

接下來測試上傳文件,這里上傳了一張圖片到/usr/local目錄下,作為測試使用

1679322482853

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做訪問下載

1679322601788

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/文件夾下

cd /usr/local/

上傳fastdfs-nginx-module_v1.16.tar.gz

1679322637070

解壓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/,然后保存退出

1679322770876

然后將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 #指定文件存儲路徑

1679405651550

接下來將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包:

nginx-1.16.1.tar.gz

上傳到root目錄下

1679323002737

解壓,并進入解壓文件夾

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

1679320271108

然后編譯

make

安裝

make install

1.9 配置Nginx

修改Nginx配置文件

vim /usr/local/nginx/conf/nginx.conf

添加server,添加后保存退出:

server {listen       8089;#為了防止80端口,我們改成8089server_name  192.168.59.133;#這里需要使用你本機的局域網iplocation /group1/M00/{ngx_fastdfs_module;}
}

1679406356346

啟動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

1679321237969

關閉防火墻

service iptables stop

設置防火墻不自動啟動

chkconfig iptables off

2. 局域網測試訪問FastDFS

然后按照格式,測試將上面我們上傳的test23.png圖片上傳到FastDFS中

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

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

1679323425917

然后使用上面的地址,在瀏覽器訪問,即可看到我們上傳的圖片,fastDFS搭建完成

1679406429350

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

20230206171248

  • 向系統添加服務
sudo systemctl enable cpolar
  • 啟動cpolar服務
sudo systemctl start cpolar

4. 配置公網訪問地址

成功啟動cpolar服務后,我們在瀏覽器上訪問Linux局域網ip地址+9200端口,登錄cpolar web UI管理界面。

登錄成功后,點擊左側儀表盤的隧道管理——創建隧道,創建一個http協議的隧道指向上面設置的Nginx8089端口:

  • 隧道名稱:可自定義,注意不要與已有的隧道名稱重復
  • 協議:http
  • 本地地址:8089
  • 域名類型:免費選擇隨機域名
  • 地區:選擇China VIP

點擊創建

1679406828417

然后打開在線隧道列表,查看并且復制公網地址

1679406894080

然后打開瀏覽器,輸入公網地址,訪問我們上傳在fastDFS里的文件,即可遠程訪問成功

1679406972587

5. 固定公網地址

由于剛剛創建隧道使用的是隨機臨時地址,該地址會在24小時內發生變化,為了長期和更穩定遠程訪問,我們接下來將這個公網地址配置為固定的,

5.1 保留二級子域名

需升級至基礎套餐或以上才支持配置二級子域名,如有下載文件的需求,可以升級更高套餐以便獲取更大的帶寬,提高下載速度

登錄cpolar官網后臺,點擊左側儀表盤的預留,找到保留二級子域名,為http隧道保留一個二級子域名。

  • 地區:選擇服務器地區
  • 名稱:填寫您想要保留的二級子域名(可自定義)
  • 描述:即備注,可自定義填寫

1679407261443

本例保留一個名稱為fasttest的二級子域名。子域名保留成功后,我們將子域名復制下來,接下來需要將其配置到隧道中去。

1679407306636

5.2 配置二級子域名

登錄cpolar web ui管理界面。點擊左側儀表盤的隧道管理——隧道列表,找到需要配置二級子域名的隧道,點擊右側的編輯

1679407950343

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

  • 域名類型:改為選擇二級子域名
  • Sub Domain:填寫我們剛剛所保留的二級子域名(本例為fasttest

修改完成后,點擊更新

1679407459593

隧道更新成功后,點擊左側儀表盤的狀態——在線隧道列表,可以看到隧道的公網地址,已經更新為二級子域名了,將公網地址復制下來。

1679407508347

6. 測試訪問固定二級子域名

我們來測試一下訪問配置成功的二級子域名,打開瀏覽器,輸入公網地址加資源路徑,訪問我們上傳在fastDFS里的文件,出現圖片即可遠程訪問成功。現在,我們全網唯一的私有二級子域名,就創建好了。

而且這個地址也不會再隨機變化,他是固定不變的,只要保持隧道在線,我們在外就可以通過這個公網地址,隨時隨地遠程訪問,無需公網IP,也不用設置路由器。

1679407663302

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/718789.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/718789.shtml
英文地址,請注明出處:http://en.pswp.cn/news/718789.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CHI協議學習

原始文檔:https://developer.arm.com/documentation/102407/0100/?langen CHI 總線拓撲結構 CHI總線拓撲是實現自定義的,可以是RING/MESH/CROSSBAR的類型; RING 一般適用于中等規模芯片MESH 一般適用于大規模芯片CROSSBAR 一般適用于小規模…

中科數安 | 公司文檔數據如何才能防止他人泄密?

為了防止公司文檔數據被他人泄密,中科數安提供了一系列綜合性的解決方案和服務。 www.weaem.com 以下是一些關鍵策略和措施: 訪問控制:首先,實施嚴格的文件訪問控制是至關重要的。中科數安提供身份驗證和權限管理系統&#xff0c…

hnust 湖南科技大學 2022 數據挖掘課設 完整代碼+報告+圖源文件+指導書

hnust 湖南科技大學 2022 數據挖掘課設 完整代碼報告圖源文件指導書 目錄 實驗一 Apriori算法設計與應用 - 1 - 一、 背景介紹 - 1 - 二、 實驗內容 - 1 - 三、 實驗結果與分析 - 2 - 四、 小結與心得體會 - 3 - 實驗二 KNN算法設計與應用 - 4 - 一、 背景介紹 - 4 - 二、 實…

解鎖智慧之門:自然語言處理與神奇的語言模型

在數字化浪潮席卷全球的今天,自然語言處理(NLP)已成為人工智能領域最璀璨的明珠之一。而在這顆明珠中,語言模型(LM)更是閃耀著奪目的光芒。它們不僅讓機器能夠理解和生成人類的語言,更在智能助手、搜索引擎、翻譯工具等眾多應用中發揮著不可或缺的作用。今天,就讓我們一…

SAP VT01N創建Shipment Number

調用BAPI:BAPI_SHIPMENT_CREATE創建裝運單本身很簡單,但是如果是第一次使用的話,可能會對抬頭的一些日期感到困惑 BAPI_SHIPMENT_CREATE抬頭日期字段處理代碼:Include程序:LV56I_BAPIHEA,子程序:set_heade…

論如何采用神秘顧客工具提升營業廳的服務質量?

神秘顧客工具能進一步提升營業廳的服務質量,對于這方面深圳神秘顧客(SMS)公司有以下建議: 1、建立顧客反饋機制:除了神秘顧客的反饋外,營業廳還可以建立其他顧客反饋渠道,如在線調查、顧客滿意…

大數據面試經驗分享

隨著大數據技術的快速發展,大數據相關職位的需求也日益增長。對于想要進入大數據領域的求職者來說,面試是通往理想職位的重要一關。下面我將分享一些大數據面試的經驗,希望能夠幫助大家在面試中脫穎而出。 一、面試前準備 了解公司背景和業…

(已解決)emoji及其特殊符號在vue中的使用

問題敘述 使用問題&#xff1a;在表情庫中點擊后無法展示對應的emoji表情&#xff0c;僅僅顯示Unicode代碼編號&#xff0c;按照vue eslint規則更改添加分號后&#xff0c;沒有報錯但是依舊無法正確渲染。 問題源碼&#xff1a; <template><div><!-- 被點擊的…

Git Bash中安裝tree

文章目錄 問題描述解決辦法A備選辦法BRef 問題描述 在Git Bash中使用tree報錯&#xff1a; tree # bash: tree: command not found解決辦法A 下載二進制文件&#xff1a; https://gnuwin32.sourceforge.net/packages/tree.htm -> 選binary。下載后解壓.zip 把解壓后的tre…

全新攻擊面管理平臺

首頁大屏 內測階段&#xff0c;免費試用一個月 有興趣體驗的師傅&#xff0c;來長亭云圖極速版群里找我 py

AI通識教育:可能是我們領先于世界AI的關鍵

在人工智能時代&#xff0c;要想在全球AI競爭中占據一席之地&#xff0c;擺脫對外部先進機構如OpenAI的依賴&#xff0c;減少對英偉達等公司在GPU等硬件技術上的制約&#xff0c;以及盡快縮小與世界最前沿AI技術水平之間的差距&#xff0c;這是一項艱巨而又緊迫的任務。 實現這…

如何保證 HTTPS 證書的有效性?

隨著互聯網的蓬勃發展&#xff0c;保障用戶在網絡上的隱私和安全成為至關重要的任務。HTTPS證書&#xff0c;作為一種安全套接字層協議&#xff0c;扮演著網站安全的守護者。 1. 什么是HTTPS 證書&#xff1f; HTTPS&#xff08;HyperText Transfer Protocol Secure&#xff…

vue 安裝各種問題

新下載了個項目模板&#xff0c;安裝包就遇到了各種各樣問題 電腦&#xff1a;mac 使用npm i 等命令一直安裝項目&#xff0c;然后一直報錯 2534 info run canvas2.11.2 install node_modules/canvas node-pre-gyp install --fallback-to-build --update-binary 2535 info r…

vscode + visual studio keymap插件

備注&#xff1a;主要推薦代碼遞歸折疊代碼展開單個函數折疊單個代碼展開。原因&#xff1a;vscode中的visual studio keymap插件對于代碼折疊支持不充分&#xff0c;查看大型項目時不方便。 一、個人快捷鍵推薦 1、前進&#xff1a;ctrl shift - 2、回退&#xff1a;ctrl…

uni-app webview 打開baidu.com

在uni-app中&#xff0c;你可以使用web-view組件來打開外部網頁&#xff0c;比如百度首頁。以下是一個簡單的示例代碼&#xff0c;展示了如何在uni-app中使用web-view組件打開百度首頁&#xff1a; <template> <view> <web-view :src"baiduUrl">&l…

【new IntersectionObserver】vue3 數據懶加載

new IntersectionObserver js方法描述步驟 實現邏輯&#xff1a;通過監視底部節點可視情況&#xff0c;獲取新數據進行渲染&#xff0c;如果獲取不到最新數據則顯示暫無其他數據 new IntersectionObserver 是用于監視元素可見度&#xff0c;所以我們只需要監視數據下方的dom是…

ubuntu docker deamon無法連接的問題

現象 ubuntu 下使用docker&#xff0c;禿然一天報了一個錯誤 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 排查 排查了半天&#xff0c;是dockerd啟動的時候指定的API listen 和默認的不一致。 systemctl 啟動的時…

【JS】indexedDB基本入門使用;

本文基本僅做個人簡單學習記錄&#xff1b; 相關TS類型&#xff1a; IDBDatabase&#xff1a;open成功后的 result 為 IDBDatabase類型 > idb.result; transaction&#xff1a; transaction(storeNames: string | string[], mode?: IDBTransactionMode, options?: IDBTr…

C++入門全集(4):類與對象【下】

一、再談構造函數 1.1 構造函數體內賦值 我們知道&#xff0c;在創建對象時&#xff0c;編譯器會自動調用構造函數給對象中的各個成員變量一個合適的初始值 class Date { public:Date(int year, int month, int day){_year year;_month month;_day day;}private:int _yea…

windows zip壓縮報錯includes characters that cannot be used in a compressed folder

Windows 用 zip 壓縮文件夾時報錯&#xff1a; <文件> cannot be compressed because includes characters that cannot be used in a compressed folder, such as <非法字符>. You should rename this file or directory.同 [1]。考慮用 python 批量檢測非 ascii…