源碼:http://code.google.com/p/fastdfs/php
論壇:http://bbs.chinaunix.net/forum-240-1.htmlhtml
配置說明:http://bbs.chinaunix.net/thread-1941456-1-1.htmlnginx
1. 服務器說明git
角色github |
IPweb |
操做系統服務器 |
依賴軟件併發 |
tracker負載均衡 |
162.119.111.183高併發 |
SUSE11.SP1 |
Fastdfs libevent nginx |
storage |
162.119.111.183 162.119.111.184 |
SUSE11.SP1 |
Fastdfs libevent nginx fastdfs-nginx-module |
2. 軟件版本
軟件名 |
版本 |
下載路徑 |
libevent |
|
https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz |
Fastdfs |
V4.0.6 |
http://fastdfs.googlecode.com/files/FastDFS_v4.06.tar.gz |
fastdfs-nginx-module |
v1.15 |
https://fastdfs.googlecode.com/files/fastdfs-nginx-module_v1.15.tar.gz |
nginx |
|
http://nginx.org/download/nginx-1.4.4.tar.gz |
3. 安裝libevent
>> tar zvxf libevent-2.0.21-stable.tar.gz
>> cd libevent-2.0.21-stable
>> ./configure --prefix=/usr (必須安裝到這裏)
>> make
>>make install
64爲系統執行
ln -s /usr/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5
4. 安裝FastDFS
>> tar zvxf FastDFS_v4.06.tar.gz
>> cd FastDFs
>> ./make.sh
>> ./make.sh install
安裝成功後,FastDFS 安裝在/usr/local/bin中。配置文件在/etc/fdfs中
至此,FastDFS安裝完畢
5. Storage上安裝nginx
FastDFS經過HTTP服務器來提供HTTP服務。爲了支持高併發的訪問,以及提供負載均衡等高性能的服務,本示例使用nginx做爲HTTP服務器,FastDFS爲咱們提供了Nginx上使用的FastDFS模塊(fastdfs-nginx-module)。此步操做只須要在storage上執行。tracker上不用執行。
>> tar -zxvf fastdfs-nginx-module_v1.11.tar.gz
(解壓後的路徑爲/home/fastdfs/fastdfs-nginx-module/)
>> tar -zxvf nginx-1.4.4.tar.gz
>> cd nginx-1.4.4
>>./configure --add-module=/usr/fastdfs-nginx-module/src
>> make
>> make install
1. tracker啓動
mkdir /home/fastdfs/storage
vi /etc/fdfs/tracker.conf
base_path=/home/fastdfs/tracker ====>放置data和log的目錄。這個路徑必須存在。
##include http.conf 修改成#include http.conf ====> 這裏必定要注意!是 #include,不是include!!! 若是沒有此配置項,則不須要處理
啓動:
/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf
關閉:
/usr/local/bin/stop.sh /usr/local/bin/fdfs_tracker
2. storage啓動
mkdir /home/fastdfs/storage
vi /etc/fdfs/storage.conf
group_name=group1 ==> 此臺storage server所屬的服務器組名。
base_path=/home/fastdfs/storage ==>放置data和log的目錄。此路徑必須保證存在。
store_path0=/home/fastdfs/storage ==> 放置文件的目錄,此路徑必須保證存在.
tracker_server=162.119.111.183:22122
http.disabled=true ==>關閉內置的web server,若是有就設置,不然就不用設置。
http.server_port=8080 ===> web server的端口改爲8080(與nginx 端口一致)
cp /usr/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
vi /etc/fdfs/mod_fastdfs.conf
base_path=/home/fastdfs/storage ==> 放置log的目錄,與storage中的配置保持一致。
tracker_server=162.119.111.183:22122
group_name=group1 ==> 此臺storage server所屬的服務器組名。
url_have_group_name = true ==> 在URL中包含group名稱。必定要設置true
store_path0=/home/fastdfs /storage ==> 放置文件的目錄,與storage中保持一致
response_mode=proxy ==> 對文件同步延遲的處理方式,經過redirect跳轉和proxy代理兩種方式解決
group_count=2 ==>group的個數,在本示例中有兩個group,因此設爲2,若是隻有一個group則設置爲0,而不是爲1
啓動storage
/usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf
關閉 storage
/usr/local/bin/stop.sh /usr/local/bin/fdfs_storage
3. nginx啓動(只需在storage啓動)
vi /usr/local/nginx/conf/nginx.conf
server
{
location ~ /group([0-9])/M00
{
alias /home/fastdfs/storage/data;
ngx_fastdfs_module;
}
listen 8080;
server_name 162.119.111183;
}
啓動ngnix
/usr/local/nginx/sbin/nginx
-----------------------------------------華麗的分割線-------------------------------------
到此fastdfs已經搭建完畢。
1. 查看集羣狀況
/usr/local/bin/fdfs_monitor /etc/fdfs/storage.conf
2. Upload測試
vi /etc/fdfs/client.conf
base_path=/home/fastdfs/storage
tracker_server=162.119.111.183:22122
http.tracker_server_port=8080 //這個必定要跟tracker.conf裏面配置的同樣
##include http.conf 修改成#include http.conf ====> 這裏必定要注意!是 #include,不是include!!! 若是沒有此配置項,則不須要處理
/usr/local/bin/fdfs_test /etc/fdfs/client.conf upload hello.txt
3. 下載測試
FastDFS 4.06Tracker Server再也不內置http服務
訪問文件有四種方式
1, 直接storage ip方式, 可供臨時訪問,
2, dns輪轉
3, 負載均衡設備
4, 加一層代理.
採用第三種方式,引入nginx,作反向代理進行負載均衡
安裝nginx不用引入 --add-module=/home/fastdfs/fastdfs-nginx-module/src
>> tar -zxvf nginx-1.4.4.tar.gz
>> cd nginx-1.4.4
>>./configure
>> make
>> make install
vi /usr/local/nginx/conf/nginx.conf
upstream 162.119.111.183 {
server 162.119.111.183:8080 weight=10;
server 162.119.111.184:8080 weight=10;
}
server {
listen 80;
server_name 162.119.111.183;
location / {
proxy_pass http://162.119.111.183/;
proxy_redirect default ;
}
}
Notice:
*tracker 按正常部署。tracker 可部署在內網區,不對外。
*每一個storage都安裝nginx的fastdfs擴展模塊,防止訪問到此storage時文件不在此處,擴展模塊能自動到其餘服務器拿文件。storage可部署在內網區,不對外。
*增長一個或多個負載均衡服務器(haproxy,nginx等),每一個group都作下storage配置,可負載,可解決單個storage服務器掛掉的問題。
參考:
http://www.cnblogs.com/chenfei0801/p/3455257.html
http://www.cnblogs.com/chenfei0801/p/3446697.html
http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=4101154