Linux系統:centos7下搭建Nginx和FastDFS文件管理中間件

来源:https://www.cnblogs.com/cicada-smile/archive/2019/07/11/11173143.html
-Advertisement-
Play Games

一、FastDFS簡介 1、基礎概念 FastDFS是一個開源的輕量級分散式文件系統,它對文件進行管理,功能包括:文件存儲、文件同步、文件上傳、文件下載等,解決了大容量存儲和負載均衡的問題。 2、環境概覽 二、安裝LibFastCommon 核心流程 下載 解壓 編譯 安裝 三、安裝FastDFS ...


一、FastDFS簡介

1、基礎概念

FastDFS是一個開源的輕量級分散式文件系統,它對文件進行管理,功能包括:文件存儲、文件同步、文件上傳、文件下載等,解決了大容量存儲和負載均衡的問題。

2、環境概覽

1、預設存在Gcc編譯環境,Centos7虛擬機
2、安裝LibFastCommon環境
3、FastDFS中間件安裝
4、Nginx代理伺服器安裝

二、安裝LibFastCommon

核心流程

下載->解壓->編譯->安裝

## 下載
[root@localhost mysoft]# wget
https://github.com/happyfish100/libfastcommon/archive/V1.0.38.tar.gz
## 解壓
[root@localhost mysoft]# tar -zxvf V1.0.38.tar.gz
[root@localhost mysoft]# cd libfastcommon-1.0.38/
## 編譯
[root@localhost libfastcommon-1.0.38]# ./make.sh
## 安裝
[root@localhost libfastcommon-1.0.38]# ./make.sh install

三、安裝FastDFS

流程:下載->解壓->編譯->安裝->創建相關路徑->配置跟蹤器->
配置數據存儲->配置客戶端->Nginx環境配置

1、基礎安裝步驟

## 下載
[root@localhost mysoft]# wget
https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz
## 解壓
[root@localhost mysoft]# tar -zxvf V5.11.tar.gz 
## 編譯
[root@localhost mysoft]# cd fastdfs-5.11/
[root@localhost fastdfs-5.11]# ./make.sh 
## 安裝
[root@localhost fastdfs-5.11]# ./make.sh install

2、創建相關路徑

用處後續說明。

[root@localhost data]# mkdir -p /data/fastdfs/log
[root@localhost data]# mkdir -p /data/fastdfs/data
[root@localhost data]# mkdir -p /data/fastdfs/tracker
[root@localhost data]# mkdir -p /data/fastdfs/client

3、配置跟蹤器

Tracker -- >> 跟蹤器

1)查看配置文件

註意這裡目錄的轉換,這裡給的是樣例,具體的配置還要自己動手。

[root@localhost fastdfs-5.11]# cd /etc/fdfs/
[root@localhost fdfs]# ll
total 24
client.conf.sample
storage.conf.sample
storage_ids.conf.sample
tracker.conf.sample

2)配置tracker.conf文件

[root@localhost fdfs]# cp tracker.conf.sample tracker.conf
[root@localhost fdfs]# vim tracker.conf
## 關註如下幾個配置
## 存儲數據和日誌文件的基本路徑
base_path=/data/fastdfs/tracker
## Http服務埠
http.server_port=80
## 預設提供服務埠
port=22122

3)啟動跟蹤器

## 啟動
[root@localhost fdfs]# /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
## 查看狀態
[root@localhost fdfs]# netstat -apn|grep fdfs

4、配置數據存儲

1)查看配置文件

[root@localhost fastdfs-5.11]# cd /etc/fdfs/
[root@localhost fdfs]# ll
storage.conf.sample

2)配置storage.conf文件

[root@localhost fdfs]# cp storage.conf.sample storage.conf
[root@localhost fdfs]# vim storage.conf
## 關註如下幾個配置
## storage存儲data和log的跟路徑
base_path=/data/fastdfs/data
## 預設組名
group_name=group1
## 預設埠,相同組的storage埠號必須一致
port=23000
## 配置一個存儲路徑
store_path_count=1
store_path0=/data/fastdfs/data
## 配置跟蹤器IP和埠
tracker_server=192.168.72.130:22122

3)啟動存儲服務

## 啟動
[root@localhost fdfs]# /usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
## 查看進程
[root@localhost fdfs]# netstat -apn|grep fdfs
tcp 0:22122  LISTEN      4845/fdfs_trackerd  
tcp 0:45422  SYN_SENT    5410/fdfs_storaged
## 查看啟動日誌
[root@localhost fdfs]# tail -f /data/fastdfs/data/logs/storaged.log
## 日誌展示:單台FastDFS安裝成功
set tracker leader: 192.168.72.130:22122
## 查看Storage和Tracker是否在通信
[root@localhost fdfs]# /usr/bin/fdfs_monitor /etc/fdfs/storage.conf
Storage 1:
    id = 192.168.72.130
    ip_addr = 192.168.72.130 (localhost.localdomain)  ACTIVE

5、配置客戶端測試

1)查看配置文件

[root@localhost /]# cd /etc/fdfs
[root@localhost fdfs]# ll
total 40
client.conf.sample

2)配置client.conf文件

[root@localhost fdfs]# cp client.conf.sample client.conf
[root@localhost fdfs]# vim client.conf
## 關註如下幾個配置
## client數據和日誌目錄
base_path=/data/fastdfs/client
## 配置跟蹤器IP和埠
tracker_server=192.168.72.130:22122

3)客戶端測試

調用客戶端文件上傳命令

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf

返迴文件上傳的相對路徑和編號

group1/M00/00/00/wKhIgl0mmE-ATEXPAAQ2pIoAy98392.jpg

[root@localhost fdfs]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /data/img/img1.jpg 
group1/M00/00/00/wKhIgl0mmE-ATEXPAAQ2pIoAy98392.jpg

這樣FastDFS單台環境就安裝好了,步驟有點繁雜,不過這就是生活。

文件成功上傳storage伺服器,但是還無法查看下載。需要安裝Nginx伺服器用來支持Http方式訪問文件。

四、安裝Nginx

1、下載解壓Nginx

## 下載nginx
[root@localhost mysoft]# wget 
http://nginx.org/download/nginx-1.15.2.tar.gz
## 解壓nginx
[root@localhost mysoft]# tar -zxvf nginx-1.15.2.tar.gz

2、下載解壓Fast-Nginx

## 下載fastdfs-nginx
[root@localhost mysoft]#wget 
https://github.com/happyfish100/fastdfs-nginx-module/archive/5e5f3566bbfa57418b5506aaefbe107a42c9fcb1.zip
## 解壓fastdfs-nginx
[root@localhost mysoft]# mv 5e5f3566bbfa57418b5506aaefbe107a42c9fcb1.zip fast-nginx.zip
[root@localhost mysoft]# unzip fast-nginx.zip
[root@localhost mysoft]# mv fastdfs-nginx-module-5e5f3566bbfa57418b5506aaefbe107a42c9fcb1/ 
fastdfs-nginx-module

3、安裝必須依賴

## pcre-devel 環境
[root@localhost nginx-1.15.2]# yum install -y pcre pcre-devel
## zlib-devel 環境
[root@localhost nginx-1.15.2]# yum install -y zlib zlib-devel
## openssl-devel 環境
[root@localhost nginx-1.15.2]# yum install -y openssl openssl-devel

4、配置安裝

[root@localhost nginx-1.15.2]# ./configure --add-module=/usr/local/mysoft/fastdfs-nginx-module/src
[root@localhost nginx-1.15.2]# make && make install

5、錯誤解決

版本問題導致,Fast-Nginx必須使用這個修複版本。

https://github.com/happyfish100/fastdfs-nginx-module/archive/5e5f3566bbfa57418b5506aaefbe107a42c9fcb1.zip

make[1]: *** [objs/addon/src/ngx_http_fastdfs_module.o] Error 1
make[1]: Leaving directory `/usr/local/mysoft/nginx-1.15.2'
make: *** [build] Error 2

6、查看安裝結果

如下情況則表示安裝成功了。

[root@localhost nginx-1.15.2]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.15.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) 
configure arguments: --add-module=/usr/local/mysoft/fastdfs-nginx-module/src

五、測試圖片訪問

1、配置客戶端

## 移動配置文件
[root@localhost src]# pwd
/usr/local/mysoft/fastdfs-nginx-module/src
[root@localhost src]# ll
total 76
Apr 14  2017 mod_fastdfs.conf
[root@localhost src]# cp mod_fastdfs.conf /etc/fdfs/
[root@localhost fdfs]# pwd
/etc/fdfs
[root@localhost fdfs]# vim mod_fastdfs.conf 
## 調整如下配置
## 鏈接超時
connect_timeout=20
## 配置跟蹤器IP和埠
tracker_server=192.168.72.130:22122
## 路徑包含group
url_have_group_name = true
# 必須和storage配置相同
store_path0=/data/fastdfs/data

2、完善FastDFS配置

[root@localhost fdfs]# cd /usr/local/mysoft/fastdfs-5.11/conf/
[root@localhost conf]# cp anti-steal.jpg http.conf mime.types /etc/fdfs/

3、配置Nginx

在Nginx的80服務埠下添加如下配置。註意這裡的路徑是Nginx安裝自動生成的路徑。

[root@localhost nginx]# cd /usr/local/nginx/conf/
[root@localhost conf]# vim nginx.conf
server {
    listen       80;
    
    location ~/group([0-9])/M00 {
        root /data/fastdfs/data;
        ngx_fastdfs_module;
    }
}

查看配置結果

[root@localhost conf]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.15.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) 
configure arguments: --add-module=/usr/local/mysoft/fastdfs-nginx-module/src

這樣就配置成功了。

4、見證結束的時候

啟動Nginx服務。

## 啟動
/usr/local/nginx/sbin/nginx
## 停止
/usr/local/nginx/sbin/nginx -s stop
## 重啟
/usr/local/nginx/sbin/nginx -s reload

5、訪問上傳圖片

喵喵的,居然成功了,下篇文章見。

http://192.168.72.130
/group1/M00/00/00/wKhIgl0mmE-ATEXPAAQ2pIoAy98392.jpg

六、源代碼地址

GitHub地址:知了一笑
https://github.com/cicadasmile
碼雲地址:知了一笑
https://gitee.com/cicadasmile



您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 調用: ...
  • .Net操作Clickhouse的庫比較少,大多數都是基於[ClickHouse.ADO](https://github.com/killwort/ClickHouse-Net)的一個封裝,下麵也主要介紹一下ClickHouse.ADO的使用,以及自己封裝的一個庫的使用。 ...
  • 看到微服務架構這個概念比較火,想親自試驗下,正好最近工作告一段落,抽出時間來做下研究學習。 概念什麼的就不說了,問問度娘就知道了,做為一個小學生我也沒能力去總結他,說下我自己的感受吧。我覺的每個微服務就是一個單獨的單塊架構,一個完整的項目只要組合起來我們想要的微服務單塊就可以了。比較靈活比較方便。每 ...
  • jquery.ajax-combobox JS object instead of DB: jquery.ajax-combobox Nation: ...
  • 最近公司工作的電腦突然自動加上了屏保鎖屏,百思不得其解什麼時候設置的,誰給設置的,未經用戶允許就擅自給用戶設置了??? 金山WPS未經用戶允許給用戶設置了鎖屏屏保,而且這個功能非常不好用,按鍵盤有時候還不能喚醒,點幾次滑鼠才能喚醒屏幕,非常浪費我的工作效率,相信很多被設置了WPS鎖屏屏保的用戶,有同 ...
  • rsync官網: www.samba.org/ftp/rsync.html埠:873上機實戰系列項目100台規模集群全網數據備份解決方案3、本項目提供免費實戰講解視頻:Linux集群全網伺服器數據備份解決方案實戰視頻http://edu.51cto.com/course/course_id-349 ...
  • Linux用戶和許可權——管理文件許可權的命令 摘要:本文主要學習了Linux中修改文件許可權的命令。 chown命令 chown命令,主要用於修改文件(或目錄)的所有者,除此之外,這個命令也可以修改文件(或目錄)的所屬組。 基本語法 當只需要修改擁有者時,可使用如下chown命令的基本格式: 如果需要同 ...
  • 一、VMware workstation菜單欄👉虛擬機👉設置👉添加👉硬碟👉下一步 二、SCSI👉下一步: 三、創建新虛擬磁碟👉下一步 四、選擇自己需要的硬碟大小👉立即分配磁碟取消勾選👉將虛擬磁碟存儲為單個文件👉下一步 五、完成 六、重啟虛擬機後,使用lsblk命令查看磁碟情況 發 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...