FastDFS安裝和配置整合Nginx-1.13.3的方法
一:下載FastDFS
我們一共需要三個(gè)文件
1.FastDFS 分布式文件存儲(chǔ)系統(tǒng) 下載地址:https://codeload.github.com/happyfish100/fastdfs-client-java/zip/master
2.libfastcommon FastDFS函數(shù)庫(kù) 下載地址: https://codeload.github.com/happyfish100/libfastcommon/zip/master
3.fastdfs-nginx-module 連接Nginx功能模塊 下載地址: https://codeload.github.com/happyfish100/fastdfs-nginx-module/zip/master
下載時(shí)候請(qǐng)注意,此處下載的格式為 .zip 并不是 tar.gz。之所以如此是因?yàn)?,在使用fastdfs-nginx-module模塊整合Nginx時(shí)候會(huì)出錯(cuò),原因是 FastDFS版本必須 >= 5.11才可以。否則編譯Nginx的時(shí)候會(huì)報(bào)錯(cuò)??梢钥纯茨K的 INSTALL文件,里面有說(shuō)明。由于FastDFS發(fā)布的版本最高只到 5.10,作者還沒(méi)有將版本更新到5.11.但是github上的代碼已經(jīng)更新,所以直接下載即可。這里是作者 GitHub地址
注:解壓zip格式的文件,需要系統(tǒng)已經(jīng)安裝了 unzip軟件。沒(méi)有的可以使用命令安裝: yum install zip unzip
為了安裝方便,操作過(guò)程中,可以切換到root權(quán)限進(jìn)行操作
下載完成之后,將文件夾上傳到服務(wù)器

再次提醒此處的都是zip格式的文件,使用命令 unzip fileName 逐一解壓每個(gè)zip文件。例如: unzip fastdfs-master
下面是解壓后的情況,因?yàn)椴幌矚g帶master 的后綴,在解壓之后刪除了??梢允褂妹畈僮?nbsp; mv oldFileName newFileName
例如: mv fastdfs-master fastdfs

二:安裝FastDFS
1.安裝FastDFS函數(shù)庫(kù)
解壓之后,先進(jìn)入 libfastcommon 目錄 cd libfastcommon
編譯文件 ./make.sh
安裝: ./make.sh install
安裝完成之后,進(jìn)入 fastdfs cd fastdfs 和 libfastcommon 同樣的安裝方式
編譯文件 ./make.sh
安裝: ./make.sh install
安裝完成之后,可以看到兩個(gè)目錄,后面會(huì)使用到

三:配置
1.配置說(shuō)明
配置文件請(qǐng)根據(jù)服務(wù)器的不同,進(jìn)行不同的配置。本文中 Tracker Server, Storage Server 都安裝在一臺(tái)服務(wù)器上。
2.配置文件目錄
在安裝完成之后,在 /etc 下會(huì)生成一個(gè) fdfs 文件夾,進(jìn)入fast配置文件目錄 cd /etc/fdfs/ 。可以看到以 .sample 結(jié)尾的示例文件。

為了方便,使用命令刪除以上所有文件 rm -f * ,然后復(fù)制 /fastdfs/conf 目錄內(nèi)所有文件到 /etc/fdfs 目錄下。

注:/fastdfs/conf為解壓后的fastdfs目錄
3.配置和啟動(dòng)Tracker Server
打開(kāi) tracker.conf文件 vim ./tracker.conf , 修改base_path路徑改成你自己的目錄, 端口之類的沒(méi)占用情況下就不修改了

修改完成之后,嘗試啟動(dòng)tracker /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
注:base_path路徑需要預(yù)先創(chuàng)建, 否則報(bào)錯(cuò): error info: No such file or directory
命令執(zhí)行之后,發(fā)現(xiàn)沒(méi)有任何反應(yīng),接著使用命令 netstat -unltp|grep fdfs ,查看是否啟動(dòng)

可以看到Tracker Server 已經(jīng)在22122端口監(jiān)聽(tīng)
4.配置和啟動(dòng)Storage Server
接下來(lái)修改storage.conf配置文件 vim storage.conf ,打開(kāi)文件之后同樣的修改base_path路徑,同時(shí)修改Tracker Server地址和store_path。端口地址、組名保持不變。

Tracker Server地址:

store_path 地址:

注:以上的Tracker Server地址,請(qǐng)?jiān)O(shè)置成服務(wù)器對(duì)應(yīng)地址。端口沒(méi)修改情況下,保持默認(rèn)。
store_path路徑如果不修改,將無(wú)法啟動(dòng)Storage Server服務(wù)。不會(huì)有任何提示,可以打開(kāi) /fastdfs/logs 文件夾下的storaged.log文件,查看錯(cuò)誤信息。
OK,修改完成之后,啟動(dòng)Storage, /usr/bin/fdfs_storaged /etc/fdfs/storage.conf start ,同樣也是沒(méi)有任何反應(yīng)。接著使用命令 netstat -unltp|grep fdfs看看是否啟動(dòng)

出現(xiàn)上圖的情況,說(shuō)明Tracker Server、Storage Server已經(jīng)成功啟動(dòng)。
5.測(cè)試上傳服務(wù)
接下來(lái)打開(kāi)client.conf配置文件 vim client.conf ,只需要修改base_path和tracker_server兩個(gè)地方即可。

當(dāng)修改完成之后,試試能否上傳文件,剛好目錄有一張圖片

使用命令將圖片上傳
/usr/bin/fdfs_test /etc/fdfs/client.conf upload ./anti-steal.jpg

當(dāng)看到上面一長(zhǎng)串的字符,OK 上傳成功了。并成功返回了 圖片地址。到存儲(chǔ)目錄下看看,發(fā)現(xiàn)多出了幾張圖片。其中一張圖片和商品圖片地址后綴一樣,那么文件已經(jīng)存儲(chǔ)到本地。

雖然返回圖片地址,但是現(xiàn)在的fastDFS已經(jīng)不支持HTTP協(xié)議。在4.0.5版本時(shí)候已經(jīng)移除了 HTTP支持,因此不能直接通過(guò)圖片地址訪問(wèn)。所有我們通過(guò)FastDFS模塊整合Nginx,以提供HTTP服務(wù)。
四.整合Nginx和FastDFS
1. 整合模塊
此處假設(shè)你已經(jīng)安裝過(guò)Nginx及其依賴包,如果還沒(méi)有安裝Nginx可以看我另一個(gè)文章:CentOS7 安裝Nginx
整合Nginx不需要安裝FastDFS模塊,在配置Nginx時(shí)候?qū)?code>fastdfs-nginx-module模塊添加進(jìn)去即可。下面先開(kāi)始配置Nginx,進(jìn)入Nginx目錄下配置文件
./configure --prefix=/opt/nginx --with-pcre=/home/mgame/soft/pcre-8.41 --with-openssl=/home/mgame/soft/openssl-1.1.0f --with-zlib=/home/mgame/soft/zlib-1.2.11 --add-module=/home/mgame/soft/fastdfs-nginx-module/src
編譯 make
安裝 make install
在安裝過(guò)程如果出現(xiàn)下面的錯(cuò)誤,那么請(qǐng)查看模塊中的 INSTALL文件,對(duì)FastDFS版本的要求(開(kāi)頭部分已經(jīng)說(shuō)明本文的FastDFS版本必須>= 5.11)。
error: ‘FDFSHTTPParams' has no member named ‘support_multi_range'(pContext->range_count > 1 && !g_http_params.support_multi_range))

將模塊添加到Nginx并安裝完成之后,進(jìn)入到Nginx安裝目錄 /opt/nginx/conf 內(nèi),打開(kāi) nginx.conf配置文件。

注:此處的Nginx目錄,是在配置Nginx時(shí)候設(shè)置的,請(qǐng)根據(jù)各自的設(shè)置,打開(kāi)文件。
將下面的配置添加到文件中,端口其他設(shè)置不變。
location /group1/M00 {
ngx_fastdfs_module;
}

注:/group 前面必須有斜線,否則在訪問(wèn)的時(shí)候,根路徑為Nginx安裝目錄。
2.配置模塊參數(shù)
在設(shè)置完成之后, 如果現(xiàn)在直接啟動(dòng)Nginx那么會(huì)發(fā)現(xiàn),依然無(wú)法通過(guò)之前上傳成功的圖片地址訪問(wèn)。在百思不得其解情況下,想到了的Nginx不是有個(gè)logs文件夾,用于記錄登錄及錯(cuò)誤信息之類的詳情。
那么打開(kāi)error.log文件看看。OK 找到問(wèn)題所在了

明晃晃的兩個(gè) ERROR, 第一行說(shuō)明了錯(cuò)誤原因:file /etc/fdfs/mod_fastdfs.conf not exist 在 /etc/fdfs/ 目錄下不存在mod_fastdfs.conf文件。該文件在模塊fastdfs-nginx-module的src目錄內(nèi)
既然找到了文件位置,那么進(jìn)入到 /fastdfs-nginx-module/src 目錄下,將文件 mod_fastdfs.conf 復(fù)制到 /etc/fdfs/ 目錄下 命令: cp mod_fastdfs.conf /etc/fdfs/
操作完成之后,打開(kāi)剛剛拷貝的mod_fastdfs.conf 配置文件 vim mod_fastdfs.conf ,分別tracker_server、url_have_group_name、store_path0三個(gè)屬性的參數(shù)
tracker_server:

url_have_group_name:

注:因?yàn)樵L問(wèn)的地址中包含了組名group1,如果生成的地址中不包含組名,可以不用設(shè)置。
store_path0:

修改完成之后,進(jìn)入 /opt/nginx/sbin 目錄下,重新啟動(dòng)Nginx ./nginx -s reload ,然后訪問(wèn)下,之前上傳成功后返回的圖片地址吧。

經(jīng)過(guò)配置后,已經(jīng)能夠成功的訪問(wèn)FastDFS存儲(chǔ)的文件。
總結(jié)
以上所述是小編給大家介紹的FastDFS安裝和配置整合Nginx-1.13.3的方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
使用Docker主機(jī)啟動(dòng)Nginx服務(wù)器的完整步驟詳解
Docker是一個(gè)開(kāi)源的容器化平臺(tái),用于輕松地打包、部署和運(yùn)行應(yīng)用程序,而Nginx是一個(gè)高性能的開(kāi)源反向代理服務(wù)器,也是一個(gè)流行的Web服務(wù)器,這篇文章主要給大家介紹了關(guān)于使用Docker主機(jī)啟動(dòng)Nginx服務(wù)器的完整步驟,需要的朋友可以參考下2024-07-07
Nginx結(jié)合Openresty通過(guò)Lua+Redis實(shí)現(xiàn)動(dòng)態(tài)封禁IP
為了封禁某些爬蟲(chóng)或者惡意用戶對(duì)服務(wù)器的請(qǐng)求,我們需要建立一個(gè)動(dòng)態(tài)的 IP 黑名單,本文主要介紹了Nginx結(jié)合Openresty通過(guò)Lua+Redis實(shí)現(xiàn)動(dòng)態(tài)封禁IP,感興趣的可以了解一下2023-11-11
Nginx + php 搭建 超性能 WEB 服務(wù)器
Nginx ("engine x") 是一個(gè)高性能的 HTTP 和反向代理服務(wù)器,也是一個(gè) IMAP/POP3/SMTP 代理服務(wù)器。2010-03-03
Nginx + Tomcat實(shí)現(xiàn)請(qǐng)求動(dòng)態(tài)數(shù)據(jù)和請(qǐng)求靜態(tài)資源的分離詳解
這篇文章主要給大家介紹了關(guān)于Nginx + Tomcat實(shí)現(xiàn)請(qǐng)求動(dòng)態(tài)數(shù)據(jù)和請(qǐng)求靜態(tài)資源的分離的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07
基于Nginx 反向代理獲取真實(shí)IP的問(wèn)題詳解
下面小編就為大家分享一篇基于Nginx 反向代理獲取真實(shí)IP的問(wèn)題詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
Nginx配置實(shí)現(xiàn)用IP灰度測(cè)試(不同用戶ID)
本文主要介紹了使用Nginx配置實(shí)現(xiàn)基于IP的灰度發(fā)布實(shí)驗(yàn),以及如何通過(guò)不同用戶ID測(cè)試灰度發(fā)布,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-11-11
分割nginx日志的實(shí)現(xiàn)(避免日志多大)
nginx默認(rèn)沒(méi)有提供對(duì)日志文件的分割功能,所以隨著時(shí)間的增長(zhǎng),access.log和error.log文件會(huì)越來(lái)越大,本文主要介紹了分割nginx日志的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-04-04

