您的位置:首頁技術文章
文章詳情頁

ubuntu下安裝部署FastDFS+Nginx

瀏覽:84日期:2024-07-12 08:53:34
一、部署說明

部署環境ubuntu 12.0.4 server 32位or 64位

最簡安裝,除ssh服務不安裝任何服務

服務器初始化

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

安裝編譯環境:

apt-get install build-essential

dpkg-reconfigure tzdata

然后在crontab設置服務器時間同步

二、安裝libevent

官方推薦穩定的1.4.14b版本的,2.x的可能有不穩定性

獲取下載

wget https://github.com/downloads/libevent/libevent/libevent-1.4.14b-stable.tar.gz

解壓并編譯安裝

tar zvxf libevent-1.4.14b-stable.tar.gz

./configure --prefix=/usr

make clean;

make

sudo make install

三、安裝FastDFS獲取下載

wget http://fastdfs.googlecode.com/files/FastDFS_v4.04.tar.gz

解壓并編譯安裝

tar zvxf FastDFS_v4.04.tar.gz

先修改相關文件:

1:修改make.sh

查找:

#WITH_HTTPD=1

修改成:

WITH_HTTPD=1

查找:

if [ -f /usr/lib/libpthread.so ] || [ -f /usr/local/lib/libpthread.so ] || [ -f /lib64/libpthread.so ] || [ -f /usr/lib64/libpthread

.so ] || [ -f /usr/lib/libpthread.a ] || [ -f /usr/local/lib/libpthread.a ] || [ -

f /lib64/libpthread.a ] || [ -f /usr/lib64/libpthread.a ] ;

替換成:(以你服務器的實際路徑為準)

if [ -f /usr/lib/libpthread.so ] || [ -f /usr/local/lib/libpthread.so ] || [ -f /lib64/libpthread.so ] || [ -f /usr/lib64/libpthread

.so ] || [ -f /usr/lib/x86_64-linux-gnu/libpthread.so ] || [ -f /usr/lib/libpthread.a ] || [ -f /usr/local/lib/libpthread.a ] || [ -

f /lib64/libpthread.a ] || [ -f /usr/lib64/libpthread.a ] || [ -f /usr/lib/x86_64-linux-gnu/libpthread.a ];

2:修改client/fdfs_link_library.sh.in(如果是64位os,32位os無需修改)

查找:

ln -fs $TARGET_LIB/libfastcommon.so.1 /usr/lib64/libfastcommon.so

ln -fs $TARGET_LIB/libfdfsclient.so.1 /usr/lib64/libfdfsclient.so

替換成:

ln -fs $TARGET_LIB/libfastcommon.so.1 /usr/lib/x86_64-linux-gnu/libfastcommon.so

ln -fs $TARGET_LIB/libfdfsclient.so.1 /usr/lib/x86_64-linux-gnu/libfdfsclient.so

3:進入解壓后目錄,編譯并安裝:

sudo ./make.sh

sudo ./make.sh install

四、配置及啟動Tracker Server修改tracker.conf

FastDFS默認裝完會在/etc/fdfs/下產生配置文件tracker.conf

port=22122

base_path=/www/geebook_tracker

http.server_port=8090

#include http.conf

其它保持默認,注意上面那個是1個#,默認是2個#,去掉1個就行

啟動tracker服務

sudo make /www/geebook_tracker

sudo fdfs_trackerd /etc/fdfs/tracker.conf

netstat –lnp –tcp 參看端口是否起來,默認如果顯示22122和8090說明服務正常起來

五、配置及啟動Storage Server修改storage.conf

FastDFS默認裝完會在/etc/fdfs/下產生配置文件storage.conf

port=23000

base_path=/www/geebook_storage

#base_path,指定data和log所在目錄,根目錄必須存在,子目錄會自動創建

store_path0=/www/geebook_storage

#文件的存儲位置,在一臺Storage Server上可以指定多個存儲位置

group_name=group1

tracker_server=127.0.0.1:22122

http.server_port=8888

#include http.conf

啟動storage服務

sudo mkdir /www/geebook_storage

sudo fdfs_storaged /etc/fdfs/storage.conf

netstat –lnp –tcp 參看端口是否起來,默認如果顯示23000和8888說明服務正常起來

六、驗證FastDFS上傳下載修改client.conf

FastDFS默認裝完會在/etc/fdfs/下產生配置文件client.conf

base_path=/www/geebook_client

tracker_server=127.0.0.1:22122

http.tracker_server_port=8090

測試上傳

fdfs_test /etc/fdfs/client.conf upload /etc/fstab

Copyright (C) 2008, Happy Fish / YuQing

FastDFS may be copied only under the terms of the GNU General

Public License V3, which may be found in the FastDFS source kit.

Please visit the FastDFS Home Page http://www.csource.org/

for more detail.

[2012-12-27 14:27:01] DEBUG - base_path=/www/geebook_client, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0

tracker_query_storage_store_list_without_group:

server 1. group_name=group1, ip_addr=127.0.0.1, port=23000

group_name=group1, ip_addr=127.0.0.1, port=23000

storage_upload_by_filename

group_name=group1, remote_filename=M00/00/00/OlPQG1Db6jWAFmbTAAADqdgNsks5096460

source ip address: 58.83.208.27

file timestamp=2012-12-27 14:27:01

file size=937

file crc32=3624776267

file url: http://127.0.0.1:8090/group1/M00/00/00/OlPQG1Db6jWAFmbTAAADqdgNsks5096460

storage_upload_slave_by_filename

group_name=group1, remote_filename=M00/00/00/OlPQG1Db6jWAFmbTAAADqdgNsks5096460_big

source ip address: 58.83.208.27

file timestamp=2012-12-27 14:27:01

file size=937

file crc32=3624776267

file url: http://127.0.0.1:8090/group1/M00/00/00/OlPQG1Db6jWAFmbTAAADqdgNsks5096460_big

直接訪問http://127.0.0.1:8090/group1/M00/00/00/OlPQG1Db6jWAFmbTAAADqdgNsks5096460_big 正常說明上傳成功,并且fastdfs正常運行

刪除測試

/etc/fdfs/client.conf delete group1 M00/00/00/OlPQG1Db6jWAFmbTAAADqdgNsks5096460_big

This is FastDFS client test program v4.04

Copyright (C) 2008, Happy Fish / YuQing

FastDFS may be copied only under the terms of the GNU General

Public License V3, which may be found in the FastDFS source kit.

Please visit the FastDFS Home Page http://www.csource.org/

for more detail.

[2012-12-27 14:31:42] DEBUG - base_path=/www/geebook_client, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0

storage=58.83.208.27:23000

delete file success

顯示刪除成功

七、FastDFS和nginx整合

因為FastDFS默認自帶的http服務器性能不好,所以一般建議用外置的apache或者nginx來解決http下載,以應付大并發的情況

注意nginx擴展模塊只支持GET和HEAD模式獲取文件,需要開發那邊配合修改程序

獲取nginx和FastDFS的nginx擴展插件

wget http://fastdfs-nginx-module.googlecode.com/files/fastdfs-nginx-module_v1.13.tar.gz

wget http://nginx.org/download/nginx-1.2.6.tar.gz

解壓并編譯安裝

apt-get install libssl-dev zlib1g-dev libpcre3-dev

tar zvxf nginx-1.2.6.tar.gz

tar zvxf fastdfs-nginx-module_v1.13.tar.gz

cd nginx-1.2.6

./configure --prefix=/usr/local/nginx --with-http_gzip_static_module --add-module=/www/soft/fastdfs-nginx-module/src/

make

make install

修改相關配置文件

修改FastDFS的storage.conf

http.disabled=true

#關閉內置web server

其它保持不變,保存退出

修改nginx擴展模塊的配置文件

cd ../fastdfs-nginx-module/src

cp mod_fastdfs.conf /etc/fdfs/

vi /etc/fdfs/mod_fastdfs.conf

base_path=/www/logs

#存放log的路徑

tracker_server=127.0.0.1:22122

#指定tracker服務器及端口

url_have_group_name = true

#這個很重要,在URL中包含group名稱

store_path0=/www/geebook_storage

#存儲文件的路徑

storage_server_port=23000

#與storage的配置端口保持一致

保存后退出

做M00的鏈接

ln -s /www/geebook_storage/data /www/geebook_storage/data/M00

修改nginx的配置文件

vi /usr/local/nginx/conf/nginx.conf

server {

listen 8888;

location / {

root /www/geebook_storage/data;

index index.html index.htm;

}

location /group1/M00 {

root /www/geebook_storage/data;

ngx_fastdfs_module;

}

}

重啟相關服務,驗證整合是否成功

先重啟storage服務:

/etc/init.d/fdfs_storaged start

然后再啟動nginx,注意順序,否則會報端口占用的錯誤

/usr/local/nginx/sbin/nginx

查看端口使用情況:

netstat -lnp --tcp

tcp 0 0 0.0.0.0:23000 0.0.0.0:* LISTEN 1761/fdfs_storaged

tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN 1718/nginx

tcp 0 0 0.0.0.0:8090 0.0.0.0:* LISTEN 1809/fdfs_trackerd

tcp 0 0 0.0.0.0:22122 0.0.0.0:* LISTEN 1809/fdfs_trackerd

默認的8888端口本來是storage的,現在被nginx替代

完成了FastDFS和nginx的整合

用上面的fdfs_test程序測試上傳和下載,能正常訪問下載,說明nginx已經順利替代FastDFS的內置Web server。

注:本文整理自百度文庫,如有疑問,可在下面的回復中討論。

標簽: Ubuntu
相關文章:
国产综合久久一区二区三区