日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

FastDFS的安装

發(fā)布時間:2024/4/13 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FastDFS的安装 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Linux下使用FastDFS

所有操作均在CentOS 6.x環(huán)境下進(jìn)行。

將所需文件,上傳到/usr/local/learn目錄下:

單節(jié)點(diǎn)FastDFS

整個安裝過程非常復(fù)雜,很容易出錯,建議進(jìn)行多次備份。

我們這里不打算安裝多臺虛擬機(jī),因此會把tracker和storage都安裝在一起。

?

安裝gcc

GCC用來對C語言代碼進(jìn)行編譯運(yùn)行,使用yum命令安裝:

yum -y install gcc

后面會用到解壓命令(unzip),所以這里可以用yum把unzip 也裝一下

yum install -y unzip zip

安裝libevent

yum -y install libevent

安裝libfastcommon-master

解壓剛剛上傳的libfastcommon-master.zip unzip libfastcommon-master.zip進(jìn)入解壓完成的目錄 cd libfastcommon-master編譯并且安裝: ./make.sh ./make.sh install

安裝fastdfs

tar -zxvf FastDFS_v5.08.tar.gzcd FastDFS./make.sh ./make.sh install

如果安裝成功,會看到/etc/init.d/下看到提供的腳本文件:

ll /etc/init.d/ | grep fdfs

  • fdfs_trackerd 是tracker啟動腳本

  • fdfs_storaged 是storage啟動腳本

能夠在 /etc/fdfs/ 目錄下看到默認(rèn)的配置文件模板:

ll /etc/fdfs/

  • tarcker.conf.sample 是tracker的配置文件模板

  • storage.conf.sample 是storage的配置文件模板

  • client.conf.sample 是客戶端的配置文件模板

配置并啟動tracker服務(wù)

FastDFS的tracker和storage在剛剛的安裝過程中,都已經(jīng)被安裝了,因此我們安裝這兩種角色的方式是一樣的。不同的是,兩種需要不同的配置文件。

我們要啟動tracker,就修改剛剛看到的tarcker.conf,并且啟動fdfs_trackerd腳本即可。

1)首先將模板文件復(fù)制

cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf

2)修改復(fù)制后的配置文件:

vim /etc/fdfs/tracker.conf

# 修改的內(nèi)容如下:

base_path=/learn/tracker # 存儲日志和數(shù)據(jù)的根目錄

3)新建目錄:

mkdir -p /learn/tracker

注意:關(guān)閉防火墻:

chkconfig iptables off

4)啟動和停止

啟動tracker服務(wù)器: /etc/init.d/fdfs_trackerd start

停止tracker服務(wù)器: /etc/init.d/fdfs_trackerd stop

不過安裝過程中,fdfs已經(jīng)被設(shè)置為系統(tǒng)服務(wù),我們可以采用熟悉的服務(wù)啟動方式:

service fdfs_trackerd start # 啟動fdfs_trackerd服務(wù),停止用stop

檢查FastDFS Tracker Server是否啟動成功:

ps -ef | grep fdfs_trackerd

設(shè)置tracker服務(wù)開機(jī)啟動:

chkconfig fdfs_trackerd on

配置并啟動storage服務(wù)

1)首先將模板文件復(fù)制

cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf

2)修改復(fù)制后的配置文件:

vim /etc/fdfs/storage.conf

# 修改的內(nèi)容如下:

base_path=/learn/storage # 數(shù)據(jù)和日志文件存儲根目錄 store_path0=/learn/storage # 第一個存儲目錄 tracker_server=192.168.56.101:22122 # tracker服務(wù)器IP和端口

3)新建目錄:

mkdir -p /learn/storage

注意關(guān)閉防火墻: chkconfig iptables off

?

4)啟動和停止

啟動storage服務(wù)器:/etc/init.d/fdfs_storaged start

停止storage服務(wù)器:/etc/init.d/fdfs_storaged stop

推薦使用:

service fdfs_storaged start # 啟動fdfs_storaged服務(wù),停止用stop

設(shè)置storage服務(wù)開機(jī)啟動:

chkconfig fdfs_storaged on

ps -ef | grep fdfs

使用nginx訪問FastDFS

為什么需要用Nginx訪問?

FastDFS通過Tracker服務(wù)器,將文件放在Storage服務(wù)器存儲,但是同組存儲服務(wù)器之間需要進(jìn)入文件復(fù)制,有同步延遲的問題。

假設(shè)Tracker服務(wù)器將文件上傳到了192.168.4.125,上傳成功后文件ID已經(jīng)返回給客戶端。此時FastDFS存儲集群機(jī)制會將這個文件同步到同組存儲192.168.4.126,在文件還沒有復(fù)制完成的情況下,客戶端如果用這個文件ID在192.168.4.126上取文件,就會出現(xiàn)文件無法訪問的錯誤。

而fastdfs-nginx-module可以重定向文件連接到文件上傳時的源服務(wù)器取文件,避免客戶端由于復(fù)制延遲導(dǎo)致的文件無法訪問錯誤

安裝fastdfs-nginx-module

解壓

tar -zxvf fastdfs-nginx-module_v1.16.tar.gz

修改config

1)進(jìn)入src目錄

cd fastdfs-nginx-module/src/

2)編輯config

vim config

使用以下底行命令:

:%s+/usr/local/+/usr/+g

將所有的/usr/local替換為 /usr,這個才是正確的目錄:

配置nginx與FastDFS關(guān)聯(lián)配置文件

復(fù)制 fastdfs-nginx-module 源碼中的配置文件到/etc/fdfs 目錄, 并修改

cp /usr/local/learn/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/vi /etc/fdfs/mod_fastdfs.conf

修改以下配置:

connect_timeout=10 # 客戶端訪問文件連接超時時長(單位:秒)tracker_server=192.168.56.101:22122 # tracker服務(wù)IP和端口url_have_group_name=true # 訪問鏈接前綴加上組名store_path0=/learn/storage # 文件存儲路徑

復(fù)制 FastDFS 的部分配置文件到/etc/fdfs 目錄

cd /usr/local/learn/FastDFS/conf/ cp http.conf mime.types /etc/fdfs/

安裝Nginx的插件

如果沒有安裝過nginx

  • 安裝nginx的依賴庫

yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

解壓安裝包

tar -zxvf nginx-1.10.0.tar.gz

配置nginx安裝包,并指定fastdfs-nginx-model

cd nginx-1.10.0./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx --add-module=/usr/local/learn/fastdfs-nginx-module/src

注意:在執(zhí)行./configure配置nginx參數(shù)的時候,需要將fastdfs-nginx-moudle源碼作為模塊編譯進(jìn)去。

?

  • 編譯并安裝

make && make install

如果已經(jīng)安裝過nginx

1) 進(jìn)入nginx目錄:

cd /usr/local/learn/nginx-1.10.0/

2) 配置FastDFS 模塊

./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx --add-module=/usr/local/learn/fastdfs-nginx-module/src

注意:這次配置時,要添加fastdfs-nginx-moudle模塊

?

3) 編譯,注意,這次不要安裝(install)

make

4) 替換nginx二進(jìn)制文件:

備份:

mv /usr/bin/nginx /usr/bin/nginx-bak

用新編譯的nginx啟動文件替代原來的:

cp objs/nginx /usr/bin/

啟動nginx

配置nginx整合fastdfs-module模塊

我們需要修改nginx配置文件,在/opt/nginx/config/nginx.conf文件中:

vim /opt/nginx/conf/nginx.conf

將文件中,原來的server 80{ ...} 部分代碼替換為如下代碼:

server {listen 80;server_name image.learn.com;# 監(jiān)聽域名中帶有g(shù)roup的,交給FastDFS模塊處理location ~/group([0-9])/ {ngx_fastdfs_module;}location / {root html;index index.html index.htm;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}

啟動nginx:

nginx # 啟動nginxnginx -s stop # 停止nginxnginx -s reload # 重新載入配置文件

# 可通過ps -ef | grep nginx查看nginx是否已啟動成功

設(shè)置nginx開機(jī)啟動

創(chuàng)建一個開機(jī)啟動的腳本:

vim /etc/init.d/nginx

添加以下內(nèi)容:

#!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig: - 85 15 # description: NGINX is an HTTP(S) server, HTTP(S) reverse \ # proxy and IMAP/POP3 proxy server # processname: nginx # config: /etc/nginx/nginx.conf # config: /etc/sysconfig/nginx # pidfile: /var/run/nginx.pid# Source function library. . /etc/rc.d/init.d/functions# Source networking configuration. . /etc/sysconfig/network# Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0nginx="/usr/bin/nginx" prog=$(basename $nginx)NGINX_CONF_FILE="/opt/nginx/conf/nginx.conf"[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginxlockfile=/var/lock/subsys/nginxmake_dirs() {# make required directoriesuser=`$nginx -V 2>&1 | grep "configure arguments:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`if [ -n "$user" ]; thenif [ -z "`grep $user /etc/passwd`" ]; thenuseradd -M -s /bin/nologin $userfioptions=`$nginx -V 2>&1 | grep 'configure arguments:'`for opt in $options; doif [ `echo $opt | grep '.*-temp-path'` ]; thenvalue=`echo $opt | cut -d "=" -f 2`if [ ! -d "$value" ]; then# echo "creating" $valuemkdir -p $value && chown -R $user $valuefifidonefi }start() {[ -x $nginx ] || exit 5[ -f $NGINX_CONF_FILE ] || exit 6make_dirsecho -n $"Starting $prog: "daemon $nginx -c $NGINX_CONF_FILEretval=$?echo[ $retval -eq 0 ] && touch $lockfilereturn $retval }stop() {echo -n $"Stopping $prog: "killproc $prog -QUITretval=$?echo[ $retval -eq 0 ] && rm -f $lockfilereturn $retval }restart() {configtest || return $?stopsleep 1start }reload() {configtest || return $?echo -n $"Reloading $prog: "killproc $nginx -HUPRETVAL=$?echo }force_reload() {restart }configtest() {$nginx -t -c $NGINX_CONF_FILE }rh_status() {status $prog }rh_status_q() {rh_status >/dev/null 2>&1 }case "$1" instart)rh_status_q && exit 0$1;;stop)rh_status_q || exit 0$1;;restart|configtest)$1;;reload)rh_status_q || exit 7$1;;force-reload)force_reload;;status)rh_status;;condrestart|try-restart)rh_status_q || exit 0;;*)echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"exit 2 esac

修改文件權(quán)限,并加入服務(wù)列表

# 修改權(quán)限 chmod 777 /etc/init.d/nginx # 添加到服務(wù)列表 chkconfig --add /etc/init.d/nginx

設(shè)置開機(jī)啟動

chkconfig nginx on

?

總結(jié)

以上是生活随笔為你收集整理的FastDFS的安装的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。