ubuntu下安裝部署FastDFS+Nginx
部署環境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.confFastDFS默認裝完會在/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.confFastDFS默認裝完會在/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.confFastDFS默認裝完會在/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。
注:本文整理自百度文庫,如有疑問,可在下面的回復中討論。
相關文章:
