1. 程式人生 > >Linux安裝FastDFS+Nginx檔案伺服器

Linux安裝FastDFS+Nginx檔案伺服器

環境準備

安裝gcc

FastDFS是C語言開發,建議在linux上執行,文件中使用Centos6.5作為安裝環境。安裝FastDFS需要先將官網下載的原始碼進行編譯,編譯依賴gcc環境;所以需要安裝gcc。

yum install gcc-c++

安裝libevent

FastDFS依賴libevent庫,需要安裝。執行如下命令:

yum -y install libevent

安裝libfastcommon

libfastcommon是FastDFS官方提供的,libfastcommon包含了FastDFS執行所需要的一些基礎庫。上傳並安裝如下:

cd /usr/local

使用rz上傳檔案“libfastcommonV1.0.7.tar.gz”

#解壓libfastcommon
tar -xzvf libfastcommonV1.0.7.tar.gz
rm -rf 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/

安裝tracker追蹤伺服器

安裝

cd /usr/local/

使用rz 上傳“FastDFS_v5.05.tar.gz”

#解壓
tar -xzvf FastDFS_v5.05.tar.gz 
rm -rf FastDFS_v5.05.tar.gz
#進入解壓資料夾,編譯,安裝
cd FastDFS

#編譯
./make.sh 
#安裝
./make.sh install

#安裝成功後,將安裝目錄下的conf下的檔案拷貝到/etc/fdfs/下
cd conf/

cp * /etc/fdfs/

配置

#安裝成功後進入/etc/fdfs目錄
cd /etc/fdfs/

#修改追蹤伺服器核心配置檔案tracker.conf
vim tracker.conf

把資料與日誌檔案路徑
base_path=/home/yuqing/fastdfs
改為:
base_path=/home/fastdfs

【說明】tracker.conf 檔案中可以配置埠與IP,預設埠為:22122
建立fastdfs存放資料與日誌資料夾
mkdir /home/fastdfs

【提示】vim顯示行號的設定,在底行模式輸入set nu,回車即可。

啟動

#用/usr/bin/fdfs_trackerd命令
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

可多次執行上述restart,啟動日誌顯示先停止****程序再啟動。

#程序中檢視
ps -ef | grep fdfs

#設定開機自動啟動。
vim /etc/rc.d/rc.local

將執行命令列新增進檔案:
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

安裝storage儲存伺服器

安裝

如果在同一臺機器安裝則可以不再安裝,因為安裝FastDFS時它就包含了tracker與storage。若不在一臺機器則需要安裝gcc/libevent/libfastcommon,然後再和安裝tracker一樣安裝一次。

配置

#安裝成功後進入/etc/fdfs目錄
cd /etc/fdfs/

#修改儲存伺服器核心配置檔案storage.conf
vim storage.conf

把資料與日誌檔案路徑
base_path=/home/yuqing/fastdfs 
改為:
base_path=/home/fastdfs
把儲存檔案路徑
store_path0=/home/yuqing/fastdfs
改為:
store_path0=/home/fastdfs/fdfs_storage

【注意】如果有多個掛載磁碟則定義多個store_path,如下
#store_path1=.....
#store_path2=......

#配置tracker伺服器:IP
tracker_server=192.168.12.128:22122   
#如果有多個則配置多個tracker

#建立fdfs_storage資料夾
mkdir /home/fastdfs/fdfs_storage

【提示】vim跳轉行號的方式為:在底行命令下:n ,n表示行號,如:12跳轉到第12行

啟動

#用/usr/bin/fdfs_storaged命令
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

可多次執行上述restart,啟動日誌顯示先停止****程序再啟動。
# 檢視程序
ps -ef | grep fdfs

#設定開機自動啟動。
vim /etc/rc.d/rc.local

將執行命令列新增到檔案:
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

測試(瞭解可忽略)

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

#修改/etc/fdfs/client.conf

vim /etc/fdfs/client.conf

修改如下內容:
base_path=/home/fastdfs
tracker_server=192.168.12.128:22122
#使用/usr/bin/fdfs_test命令格式:
/usr/bin/fdfs_test  客戶端配置檔案     upload   上傳檔案
/usr/bin/fdfs_test  /etc/fdfs/client.conf   upload   xxx.txt

#如將/root下的日誌上傳到FastDFS中:
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /root/install.log

返回資訊
example file url: 
http://192.168.12.128/group1/M00/00/00/wKgMqFiPIp6ALlCOAACU3VvlSIU081_big.log就是檔案下載路徑

對應storage伺服器上的
/home/fastdfs/fdfs_storage/data/00/00/wKgMqFiPIp6ALlCOAACU3VvlSIU081_big.log

說明:0x00-0xFF(0-256) 生成256個資料夾進行儲存,還沒有和nginx整合無法使用http下載。

# 刪除測試上傳的檔案
cd /home/fastdfs/fdfs_storage/data/00/00
rm -rf *

與nginx整合

一般在每個tracker上安裝nginx,的主要目的是做負載均衡及實現高可用;在此不安裝。

FastDFS-nginx-module整合nginx

cd /usr/local/

使用rz上傳“fastdfs-nginx-module_v1.16.tar.gz”

#解壓
tar -xzvf fastdfs-nginx-module_v1.16.tar.gz

#編輯配置檔案
cd fastdfs-nginx-module/src/

#修改config檔案,將其內的/usr/local/路徑改為/usr/
vim config

#將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=192.168.12.128:22122
#tracker_server=192.168.12.128:22122(多個tracker配置多行)
url_have_group_name=true		#url中包含group名稱
store_path0=/home/fastdfs/fdfs_storage   #指定檔案儲存路徑
#將libfdfsclient.so拷貝至/usr/lib下
cp /usr/lib64/libfdfsclient.so /usr/lib/

#建立nginx/client臨時檔案儲存目錄
mkdir -p /var/temp/nginx/client


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

#建立nginx/client臨時檔案儲存目錄
mkdir -p /var/temp/nginx/client

安裝nginx反向代理伺服器

# 安裝nginx需要依賴的三個庫
yum -y install pcre pcre-devel  
yum -y install zlib zlib-devel  
yum -y install openssl openssl-devel

cd /root

使用rz上傳“nginx-1.11.13.tar.gz”

#解壓,並進入解壓資料夾
tar -xzvf nginx-1.11.13.tar.gz && cd nginx-1.11.13

執行以下配置命令新增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
 
配置成功

#編譯並安裝
make

make install

說明:預設安裝到/usr/local/nginx目錄,nginx-1.11.13原始檔夾可以刪除。

配置nginx

#修改nginx配置檔案
vim /usr/local/nginx/conf/nginx.conf

#新增server:
server {
        listen       80;
        server_name  192.168.12.128;
        location /group1/M00/{
            ngx_fastdfs_module;
        }
}

說明:
server_name指定本機ip
location /group1/M00/:group1為nginx 服務FastDFS的分組名稱,M00是FastDFS自動生成編號,對應store_path0=/home/fastdfs/fdfs_storage,如果FastDFS定義store_path1,這裡就是M01

vim編輯時,在游標所在的行,連續輸入兩次小寫的d,即dd,就可以成功刪除該行.

啟動nginx反向代理伺服器

#啟動Nginx
/usr/local/nginx/sbin/nginx 

#設定開機自動啟動。
vim /etc/rc.d/rc.local

將執行命令列新增進檔案:
/usr/local/nginx/sbin/nginx

#關閉防火牆
service iptables stop

#設定防火牆不自動啟動
chkconfig iptables off

測試(瞭解)

確認fastDFS服務

#確認tracker是否啟動
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
如下圖關閉執行緒再執行則表示成功

#確認storage是否啟動
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
如下圖關閉執行緒再執行則表示成功

上傳測試

把圖片上傳到FastDFS中,上傳命令如下,最後的檔名就是要上傳的圖片:
cd /root

/usr/bin/fdfs_test /etc/fdfs/client.conf upload 1.jpg  出現以下url地址表示上傳成功

檢視檔案把上述生成的url地址在瀏覽器輸入;如果顯示成功則表示FastDFS可以使用。