Centos7部署FastDFS及Nginx

FastDFS 支持集群部署,這里我僅僅使用一臺(tái)虛擬機(jī)來(lái)進(jìn)行測(cè)試,會(huì)對(duì)集群部署的點(diǎn)進(jìn)行講解(Nginx、單點(diǎn) Tracker Server、單點(diǎn) Storage Server 進(jìn)行安裝)。我會(huì)先安裝 Nginx,然后安裝單點(diǎn) Tracker Server、單點(diǎn) Storage Server ,最后整合 FastDFS-Nginx-Module。

所用環(huán)境信息:

  • 服務(wù)器:centos7
  • Nginx:nginx-1.12.2
  • FastDFS:FastDFS_v5.05
  • FastDFS-Nginx-Module:fastdfs-nginx-module_v1.16
  • libfastcommon:libfastcommonV1.0.7
    資源下載:百度網(wǎng)盤(pán)鏈接 密碼: algl

將下載好的資源 上傳到服務(wù)器

安裝Nginx

1、安裝依賴庫(kù):

  • 安裝 GCC(命令:yum install gcc
  • 安裝 PCRE(命令:yum install pcre-devel
  • 安裝 ZLib(命令:yum install zlib zlib-devel
  • 安裝 OpenSSL(命令:yum install openssl openssl-devel
    綜合命令:yum -y install gcc pcre-devel zlib zlib-devel openssl openssl-devel

2、解壓nginx-1.12.2.tar.gz:tar -zxvf nginx-1.12.2.tar.gz

3、安裝Nginx:

  • 先進(jìn)入到/nginx-1.12.2
cd nginx-1.12.2

使用以下命令安裝 Nginx:(./configure 默認(rèn)安裝位置為 /usr/local/nginx,可以使用參數(shù) --prefix=/usr/nginx 進(jìn)行修改)

./configure
make
make install

4、測(cè)試配置文件:
測(cè)試配置文件是否正確,我們先進(jìn)入到 /usr/local/nginx/sbin 目錄,執(zhí)行以下命令:
cd /usr/local/nginx/sbin
./nginx -t

5、啟動(dòng)Nginx:./nginx
使用curl 測(cè)試Nginx是否啟動(dòng)成功:curl localhost

6、添加到守護(hù)進(jìn)程
1)在系統(tǒng)服務(wù)目錄里創(chuàng)建nginx.service文件
vim /etc/systemd/system/nginx.service
內(nèi)容如下:

[Unit]
Description=nginx
After=network.target
  
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
  
[Install]
WantedBy=multi-user.target

部分參數(shù)說(shuō)明:

[Unit]:服務(wù)的說(shuō)明
Description:描述服務(wù)
After:描述服務(wù)類(lèi)別
[Service]服務(wù)運(yùn)行參數(shù)的設(shè)置
Type=forking是后臺(tái)運(yùn)行的形式
ExecStart為服務(wù)的具體運(yùn)行命令
ExecReload為重啟命令
ExecStop為停止命令
PrivateTmp=True表示給服務(wù)分配獨(dú)立的臨時(shí)空間
注意:[Service]的啟動(dòng)、重啟、停止命令全部要求使用絕對(duì)路徑
[Install]運(yùn)行級(jí)別下服務(wù)安裝的相關(guān)設(shè)置,可設(shè)置為多用戶,即系統(tǒng)運(yùn)行級(jí)別為3

2)設(shè)置開(kāi)機(jī)自啟動(dòng):systemctl enable nginx.service
停止開(kāi)機(jī)自啟動(dòng):systemctl disable nginx.service
查看服務(wù)當(dāng)前狀態(tài):systemctl status nginx.service
重新啟動(dòng)服務(wù):systemctl restart nginx.service
查看所有已啟動(dòng)的服務(wù):systemctl list-units --type=service

FastDFS安裝

1、安裝依賴庫(kù):

yum install gcc-c++
yum -y install libevent

2、安裝 libfastcommon
libfastcommon 是 FastDFS 官方提供的,libfastcommon 包含了 FastDFS 運(yùn)行所需要的一些基礎(chǔ)庫(kù)。該庫(kù)上面我有提供下載地址。

tar -zxvf libfastcommonV1.0.7.tar.gz
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/

3、安裝 FastDFS

# 解壓
tar -zxvf FastDFS_v5.05.tar.gz
cd FastDFS
# make
./make.sh
./make.sh install

安裝成功將安裝目錄下的 conf 下的文件拷貝到 /etc/fdfs/ 下:
cp -a conf/* /etc/fdfs/

4、配置 Tracker
安裝成功后進(jìn)入 /etc/fdfs 目錄,我們要對(duì) tracker.conf 配置文件進(jìn)行修改:

a) 在 /home 目錄下新建 FastDFS 目錄:

cd /home/
mkdir FastDFS

b) 修改 tracker.conf:

cd /etc/fdfs/
vim tracker.conf
#----------------------------修改內(nèi)容如下----------------------------
base_path=/home/yuqing/FastDFS 改為:base_path=/home/FastDFS
http.server_port=8080 改為 http.server_port=80

如果配置 Tracker 集群,主需要在多臺(tái)服務(wù)器上安裝 FastDFS,然后配置 Tracker 即可。

5、啟動(dòng) Tracker
使用命令啟動(dòng) Tracker,然后查詢是否啟動(dòng)。

# 啟動(dòng)命令
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
# 查看是否啟動(dòng)
ps -ef | grep fdfs

6、配置 Storage
由于我只使用一臺(tái)vps進(jìn)行模擬安裝,就無(wú)需再次安裝 FastDFS 了,如果你需要集群部署,比如你有三臺(tái)機(jī)器:192.168.1.101、192.168.1.102、192.168.1.103,那么你需要在每臺(tái)機(jī)器上都執(zhí)行“安裝 FastDFS”和“配置 Storage”即可,這里僅僅使用一臺(tái)vps進(jìn)行演示。

安裝成功后進(jìn)入 /etc/fdfs 目錄,我們要對(duì) storage.conf 配置文件進(jìn)行修改:
a) 在 /home/FastDFS 目錄下新建 fdfs_storage 目錄:

cd /home/FastDFS
mkdir fdfs_storage

b) 修改 storage.conf:

cd /etc/fdfs/
vim storage.conf

#----------------------------修改內(nèi)容----------------------------
group_name=group1
base_path=/home/yuqing/FastDFS 改為 base_path=/home/FastDFS

store_path0=/home/yuqing/FastDFS 改為store_path0=/home/FastDFS/fdfs_storage
#如果有多個(gè)掛載磁盤(pán)則定義多個(gè)store_path,如下
#store_path1=.....
#store_path2=......

tracker_server=192.168.1.217:22122   # 配置 Tracker 服務(wù)器:IP
#如果有多個(gè)則配置多個(gè) Tracker 
#tracker_server=192.168.1.218:22122
#tracker_server=192.168.1.219:22122

#配置http端口
http.server_port=80

7、啟動(dòng) Storage
使用命令啟動(dòng) Storage,然后查詢是否啟動(dòng)。

# 啟動(dòng)命令
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
# 查看是否啟動(dòng)
ps -ef | grep fdfs

8、上傳圖片測(cè)試
這里我將一張名為 picture.jpg 的圖片上傳到 /root 目錄下,使用這張圖片進(jìn)行上傳圖片測(cè)試。

FastDFS 安裝成功可通過(guò) /usr/bin/fdfs_test 測(cè)試上傳、下載等操作。這里我們需要修改 /etc/fdfs/client.conf 配置文件:

vim client.conf

#----------------------------修改內(nèi)容----------------------------
base_path=/home/yuqing/fastdfs 改為 base_path=/home/FastDFS
tracker_server 改為 tracker_server=192.168.1.217:22122

使用以下格式命令上傳文件

#命令格式
/usr/bin/fdfs_test 客戶端配置文件地址  upload  上傳文件

#測(cè)試命令
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /root picture.jpg

上傳成功后會(huì)顯示上傳圖片等信息,可以根據(jù)返回信息中提供文件信息去 /home/FastDFS/fdfs_storage/ 目錄下查看我們剛剛上傳好的圖片。至此說(shuō)明 FastDFS 的單點(diǎn) Tracker 和 單點(diǎn) Storage 都已經(jīng)安裝成功了。

9、配置 FastDFS-Nginx-Module

我們已經(jīng)安裝和測(cè)試好了 FastDFS,但是如果我們上傳的是圖片,那我們?nèi)绾卧跒g覽器中查看圖片呢?這個(gè)就需要結(jié)合 Nginx 來(lái)進(jìn)行配置了,目前我們把 FastDFS 和 Nginx 都安裝好了,那么還需要一個(gè) FastDFS-Nginx-Module 模塊來(lái)完成這個(gè)任務(wù),接下來(lái)我們就一起來(lái)配置一下 FastDFS-Nginx-Module 模塊。

a)解壓 fastdfs-nginx-module_v1.16.tar.gz,修改 config 文件路徑:

#解壓FastDFS-Nginx-Module
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
#進(jìn)入安裝目錄下的 src 文件夾
cd /home/software/fastdfs-nginx-module/src/
#修改 config 文件
vim config

#------------------------修改內(nèi)容------------------------
#將:
CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"
CORE_LIBS="$CORE_LIBS -L/usr/local/lib -lfastcommon -lfdfsclient"
#修改為:
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
CORE_LIBS="$CORE_LIBS -L/usr/lib -lfastcommon -lfdfsclient"
#去掉了路徑中的local

b) 將 fastdfs-nginx-module/src 下的 mod_fastdfs.conf 拷貝至 /etc/fdfs/ 下,并修改mod_fastdfs.conf 的內(nèi)容:

cp mod_fastdfs.conf /etc/fdfs/

vim /etc/fdfs/mod_fastdfs.conf

#------------------------修改內(nèi)容------------------------
base_path=/home/FastDFS

tracker_server=192.168.1.217:22122
#如果有多臺(tái),繼續(xù)配置即可,例如:tracker_server=192.168.1.218:22122

url_have_group_name=true #url中包含group名稱

store_path0=/home/FastDFS/fdfs_storage   #指定文件存儲(chǔ)路徑
#如果有多個(gè),如下配置:store_path1=/home/FastDFS/fdfs_storage1

#將 libfdfsclient.so 拷貝至 /usr/lib 下:
cp /usr/lib64/libfdfsclient.so /usr/lib/

#創(chuàng)建 nginx/client 目錄
mkdir -p /var/temp/nginx/client

c) 添加 FastDFS-Nginx-Module 模塊

配置完成后,然后進(jìn)入 Nginx 安裝目錄,執(zhí)行添加模塊命令:

#進(jìn)入nginx安裝目錄
cd /home/software/nginx-1.12.2
#執(zhí)行添加模塊命令
./configure --add-module=/home/software/fastdfs-nginx-module/src
make
make install

d) 修改 Nginx 配置文件,測(cè)試圖片訪問(wèn)
上面的配置完成后,我們需要修改一下 Nginx 的配置文件,進(jìn)入 Nginx 目錄,使用以下命令操作:

# 進(jìn)入 Nginx 目錄
cd /usr/local/nginx/conf
#修改配置文件
vim nginx.conf

#------------------------修改內(nèi)容------------------------
#修改配置文件的 server 部分,如下所示:
server {
        listen       80;
        server_name  192.168.1.217;

        location /group1/M00/{
                root /home/FastDFS/fdfs_storage/data;
                ngx_fastdfs_module;
        }
}

f) 配置完成后,啟動(dòng) Nginx:

#進(jìn)入目錄
cd /usr/local/nginx/sbin/
#啟動(dòng) Nginx
./nginx
# 查看 Nginx 進(jìn)程
ps -ef | grep nginx

測(cè)試:之前測(cè)試FastDFS上傳過(guò)一張圖片,上傳成功后返回圖片地址,用瀏覽器打開(kāi)看圖片是否顯示即可,至此 FastDFS-Nginx-Module 配置完成。如果訪問(wèn)不了,請(qǐng)?jiān)诜阑饓﹂_(kāi)啟80端口的訪問(wèn)權(quán)限。

本文參考由淺入深了解 FastDFS 分布式文件系統(tǒng)
感謝:AlanShelby

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容