FastDFS5.02安装说明
2019獨角獸企業重金招聘Python工程師標準>>>
目錄
1?介紹 3
2?準備工作 3
2.1?設置固定ip 3
2.2?下載相關安裝文件 4
3?安裝篇 4
3.1?安裝libfastcommon-master 4
3.2?安裝?FastDFS 5
3.3?安裝Nginx依賴 5
3.4?安裝Nginx 6
4?配置篇 6
4.1?tracker.conf配置 6
4.2?storage.conf配置 7
4.3?ngnix.conf配置 8
4.4?mod_fastdfs.conf配置 9
4.5?client.conf配置 9
4.6?http.conf配置 10
5?測試 10
5.1?上傳文件 10
5.2?下載文件 11
6?附錄 11
6.1?tracker.conf配置內容 11
6.2?storage.conf配置內容 16
6.3?ngnix.conf配置內容 21
6.4?mod_fastdfs.conf配置內容 23
6.5?client.conf配置內容 26
1?介紹
本文檔都是單節點設置,tracker、storage、nginx都在同一臺服務器上。
2?準備工作
1.建議安裝之前先簡單了解一下FastDFS的原理
2.所用軟件:
Ubuntu14.04?server版
libfastcommon-master.zip
FastDFS_v5.02.tar.gz
nginx-1.6.2.tar.gz
fastdfs-nginx-module_v1.16.tar.gz
3.建議使用root用戶
4.使用服務器地址:192.168.1.244
5.在/home目錄下創建tracker、storage、data、client文件夾
2.1?設置固定ip
?
給192.168.1.244設定為固定Ip,具體步驟如下:
1.找到文件并作如下修改:
vim?/etc/network/interfaces
修改結果為如下部分:
#?This?file?describes?the?network?interfaces?available?on?your?system
#?and?how?to?activate?them.?For?more?information,?see?interfaces(5).
#?The?loopback?network?interface
auto?lo
iface?lo?inet?loopback
#?The?primary?network?interface
auto?p2p1
iface?p2p1?inet?static
address?192.168.1.244
gateway?192.168.1.1
netmask?255.255.255.0
注:p2p1為192.168.1.244網卡名,不同服務器網卡名不同,請自行修改
?
2.?修改dns解析
因為以前是dhcp解析,所以會自動分配dns服務器地址
而一旦設置為靜態ip后就沒有自動獲取到的dns服務器了
要自己設置一個
vim?/etc/resolv.conf
nameserver?202.96.128.86
nameserver?192.168.1.1
nameserver?220.170.64.68
3.改完上面,如果重啟的話,還是會變為原來的樣子,所以要讓其永久改變,因此,執行:
vim?/etc/resolvconf/resolv.conf.d/base??
? nameserver?192.168.1.1
? nameserver?220.170.64.68
3.?重啟網卡:
/etc/init.d/networking?restart
2.2?下載相關安裝文件
略
3?安裝篇
3.1?安裝libfastcommon-master
libfastcommon為fastdfs的依賴包。
libfastcommon-master.zip下載地址https://github.com/happyfish100/libfastcommon
下載完成后,將按照文件上傳到/var/tmp路徑下,然后通過cp命令將其放置到安裝路徑/home/deploy下,解壓libfastcommon:
unzip?libfastcommon-master.zip?
進入libfastcommon-master目錄執行
./make.sh?
./make.sh?install
會出現如下內容:
可以看到libfastcommon.so安裝到了/usr/lib64/libfastcommon.so
但是FastDFS主程序設置的lib目錄是/usr/local/lib
所以需要創建軟鏈接:
ln?-s?/usr/lib64/libfastcommon.so?/usr/local/lib/libfastcommon.so
ln?-s?/usr/lib64/libfastcommon.so?/usr/lib/libfastcommon.so
ln?-s?/usr/lib64/libfdfsclient.so?/usr/local/lib/libfdfsclient.so
ln?-s?/usr/lib64/libfdfsclient.so?/usr/lib/libfdfsclient.so?
3.2?安裝?FastDFS
1、下載?FastDFS?源程序,下載地址?http://sourceforge.net/projects/fastdfs/,這里下載的是?FastDFS_v5.02.tar.gz,下載完成后,將按照文件上傳到/var/tmp路徑下,然后通過cp命令將其放置到安裝路徑/home/deploy下
2、在?FastDFS_v5.02.tar.gz?所在文件夾下執行:
?????tar?vxzf?FastDFS_v5.02.tar.gz?
3、進入?/home/deploy/FastDFS?目錄,執行:
./make.sh???
./make.sh?install??
如果運行如上命令后,在命令行信息最后看到類似
?恭喜你,已經安裝成功了!
?
3.3?安裝Nginx依賴
安裝?nginx時,需要安裝nginx的依賴:
apt-get?install?gcc
apt-get?install?libpcre3?libpcre3-dev
apt-get?install?libssl-dev
apt-get?install?build-essential
3.4?安裝Nginx
???將nginx安裝到/usr/local/路徑下
移動壓縮包:
cp?/var/tmp/nginx-1.6.2.tar.gz?/deploy/
解壓文件:
tar?-xvzf?nginx-1.6.2.tar.gz
cd?nginx-1.6.2
然后執行命令:
./configure?--prefix=/usr/local/nginx?--add-module=/deploy/fastdfs-nginx-module/src
Make
Make?install
4?配置篇
默安裝完成后,fastdfs默認的配置文件被放置在/etc/fdfs?目錄下面,其中包括:
Tracker.conf????負責均衡調度服務器配置文件
Storage.conf????文件存儲服務器配置文件
Client.conf????客戶端上傳配置文件
nginx.conf????????Nginx配置文件
4.1?tracker.conf配置
A、修改/etc/fdfs/tracker.conf文件,修改如下:
#?bind?an?address?of?this?host
#?empty?for?bind?all?addresses?of?this?host
bind_addr=192.168.1.244
?
#?the?base?path?to?store?data?and?log?files
base_path=/home/fastdfs/tracker
?
#?max?concurrent?connections?this?server?supported
max_connections=1000
?
#?the?method?of?selecting?group?to?upload?files
#?0:?round?robin
#?1:?specify?group
#?2:?load?balance,?select?the?max?free?space?group?to?upload?file
store_lookup=1
?
#?which?group?to?upload?file
#?when?store_lookup?set?to?1,?must?set?store_group?to?the?group?name
store_group=group1
?
#?HTTP服務是否不生效
http.disabled=true
B、進入/usr/local/bin/目錄,啟動tracker服務器,執行命令:
fdfs_trackerd?/etc/fdfs/tracker.conf??
C、進入/home/fastdfs/logs/trackerd.log查看tracker的啟動日志命令:
cat?trackerd.log
如果看到類似:
?
?恭喜你,tracker?server已經啟動成功!
4.2?storage.conf配置
A、修改/etc/fdfs/storage.conf文件:
#?bind?an?address?of?this?host
#?empty?for?bind?all?addresses?of?this?host
bind_addr=192.168.1.244
?
#?the?base?path?to?store?data?and?log?files
base_path=/home/fastdfs/storage
?
#?max?concurrent?connections?the?server?supported
#?default?value?is?256
#?more?max_connections?means?more?memory?will?be?used
max_connections=1000
?
#?path(disk?or?mount?point)?count,?default?value?is?1
store_path_count=1
?
#?store_path#,?based?0,?if?store_path0?not?exists,?it's?value?is?base_path
#?the?paths?must?be?exist
store_path0=/home/fastdfs/data
#store_path1=/home/yuqing/fastdfs2
?
http.disabled=true
?
group_name=group1??
?
?#修改成tracker?server的IP和端口信息
?tracker_server=192.168.1.244:22122
?
url_have_group_name?=?true
?
? B、進入/etc/fdfs/目錄,啟動storage服務器,執行
?fdfs_storaged??/etc/fdfs/storage.conf?
C、進入/home/fastdfs/logs/storage.log查看storage服務器啟動日志:?
cat?storaged.log?
如果看到類似信息:
?
?恭喜你,storage?server已經啟動成功!
?
4.3?ngnix.conf配置
創建軟鏈接:
ln?-s?/home/fastdfs/data??/home/fastdfs/data/data/M00
進入/usr/local/nginx/conf路徑下,修改其配置文件:
vi?/usr/local/nginx/conf/nginx.conf
添加:
location?/group1/M00?{
????????????root?/home/fastdfs/data/data;
????????????ngx_fastdfs_module;
???? }
修改完畢配置文件,如果nginx處于啟動狀態,則使用以下重啟命令:
root@ubuntu224:/usr/local/nginx/sbin#?./nginx?-s?reload
如果未啟動nginx,則使用以下命令:
cd?/usr/local/nginx/sbin
./nginx
確認80,23000端口已經監聽
?netstat?-ntl
?
4.4?mod_fastdfs.conf配置
cp?/deploy/fastdfs-nginx-module/src
cp?mod_fastdfs.conf?/etc/fdfs/
vi?/etc/fdfs/mod_fastdfs.conf
配置內容如下:
#訪問文件的URI是否含有group名稱??
url_have_group_name=true??
#Tracker服務器??
tracker_server=192.168.1.244:22122
store_path0=/home/fastdfs/storage
storage_server_port=23000
4.5?client.conf配置
?
FastDFS安裝包中,自帶了客戶端程序,通過程序可以進行文件上傳。在使用這個客戶端程序之前,首先需要配置client.conf,然后再進行文件上傳及下載。
進入目錄/etc/fdfs/修改Tracker服務器192.168.1.244下的配置文件 /etc/fdfs/client.conf:
#?the?base?path?to?store?log?files
base_path=/home/fastdfs/client
#use?"#include"?directive?to?include?HTTP?other?settiongs
#include?http.conf
?
#?tracker_server?can?ocur?more?than?once,?and?tracker_server?format?is
#?"host:port",?host?can?be?hostname?or?ip?address
tracker_server=192.168.1.244:22122
4.6?http.conf配置
無需配置
5?測試
經過前面的安裝、配置、啟動,馬上就可以看到FastDFS的效果了,我們先上傳一個文件,然后再通過http下載。
6?相關命令
停止trackerd服務:
killall?fdfs_trackerd
停止storaged服務:
killall?fdfs_storaged
?
啟動trackerd服務:
fdfs_trackerd?/etc/fdfs/tracker.conf
啟動storaged服務:
fdfs_storaged??/etc/fdfs/storage.conf?
?
nginx在線安裝與卸載
apt-get?install?nginx?
apt-get?remove?nginx?
6.1?上傳文件
進入/usr/local/bin目錄,上傳文件,執行:
cp?/var/tmp/guoyong.txt?/usr/local/bin/
cd?/usr/local/bin
fdfs_test?/etc/fdfs/client.conf?upload?guoyong.txt
注:?guoyong.txt???從/var/tmp復制過來
如果看到如下信息:
?
恭喜你,上傳文件成功!
6.2?下載文件
在瀏覽器中,輸入上圖中的url地址http://192.168.1.244/group1/M00/00/00/wKgB9FUeT5qINEwRAAAAB32BJEIAAAAAgAAAAAAAAAf935.txt,?tracker?server會自動重定向到存儲文件的storage?server,文件下載成功。
至此,已經成功搭建了FastDFS,編寫你自己的client來進行訪問吧:)
7?附錄
7.1?tracker.conf配置內容
#?is?this?config?file?disabled
#?false?for?enabled
#?true?for?disabled
disabled=false
?
#?bind?an?address?of?this?host
#?empty?for?bind?all?addresses?of?this?host
bind_addr=192.168.1.244
?
#?the?tracker?server?port
port=22122
?
#?connect?timeout?in?seconds
#?default?value?is?30s
connect_timeout=30
?
#?network?timeout?in?seconds
#?default?value?is?30s
network_timeout=60
?
#?the?base?path?to?store?data?and?log?files
base_path=/home/fastdfs/tracker
?
#?max?concurrent?connections?this?server?supported
max_connections=1000
?
#?accept?thread?count
#?default?value?is?1
#?since?V4.07
accept_threads=1
?
#?work?thread?count,?should?<=?max_connections
#?default?value?is?4
#?since?V2.00
work_threads=4
?
#?the?method?of?selecting?group?to?upload?files
#?0:?round?robin
#?1:?specify?group
#?2:?load?balance,?select?the?max?free?space?group?to?upload?file
store_lookup=1
?
#?which?group?to?upload?file
#?when?store_lookup?set?to?1,?must?set?store_group?to?the?group?name
store_group=group1
?
#?which?storage?server?to?upload?file
#?0:?round?robin?(default)
#?1:?the?first?server?order?by?ip?address
#?2:?the?first?server?order?by?priority?(the?minimal)
store_server=0
?
#?which?path(means?disk?or?mount?point)?of?the?storage?server?to?upload?file
#?0:?round?robin
#?2:?load?balance,?select?the?max?free?space?path?to?upload?file
store_path=0
?
#?which?storage?server?to?download?file
#?0:?round?robin?(default)
#?1:?the?source?storage?server?which?the?current?file?uploaded?to
download_server=0
?
#?reserved?storage?space?for?system?or?other?applications.
#?if?the?free(available)?space?of?any?stoarge?server?in?
#?a?group?<=?reserved_storage_space,?
#?no?file?can?be?uploaded?to?this?group.
#?bytes?unit?can?be?one?of?follows:
###?G?or?g?for?gigabyte(GB)
###?M?or?m?for?megabyte(MB)
###?K?or?k?for?kilobyte(KB)
###?no?unit?for?byte(B)
###?XX.XX%?as?ratio?such?as?reserved_storage_space?=?10%
reserved_storage_space?=?10%
?
#standard?log?level?as?syslog,?case?insensitive,?value?list:
###?emerg?for?emergency
###?alert
###?crit?for?critical
###?error
###?warn?for?warning
###?notice
###?info
###?debug
log_level=info
?
#unix?group?name?to?run?this?program,?
#not?set?(empty)?means?run?by?the?group?of?current?user
run_by_group=
?
#unix?username?to?run?this?program,
#not?set?(empty)?means?run?by?current?user
run_by_user=
?
#?allow_hosts?can?ocur?more?than?once,?host?can?be?hostname?or?ip?address,
#?"*"?means?match?all?ip?addresses,?can?use?range?like?this:?10.0.1.[1-15,20]?or
#?host[01-08,20-25].domain.com,?for?example:
#?allow_hosts=10.0.1.[1-15,20]
#?allow_hosts=host[01-08,20-25].domain.com
allow_hosts=*
?
#?sync?log?buff?to?disk?every?interval?seconds
#?default?value?is?10?seconds
sync_log_buff_interval?=?10
?
#?check?storage?server?alive?interval?seconds
check_active_interval?=?120
?
#?thread?stack?size,?should?>=?64KB
#?default?value?is?64KB
thread_stack_size?=?64KB
?
#?auto?adjust?when?the?ip?address?of?the?storage?server?changed
#?default?value?is?true
storage_ip_changed_auto_adjust?=?true
?
#?storage?sync?file?max?delay?seconds
#?default?value?is?86400?seconds?(one?day)
#?since?V2.00
storage_sync_file_max_delay?=?86400
?
#?the?max?time?of?storage?sync?a?file
#?default?value?is?300?seconds
#?since?V2.00
storage_sync_file_max_time?=?300
?
#?if?use?a?trunk?file?to?store?several?small?files
#?default?value?is?false
#?since?V3.00
use_trunk_file?=?true
?
#?the?min?slot?size,?should?<=?4KB
#?default?value?is?256?bytes
#?since?V3.00
slot_min_size?=?256
?
#?the?max?slot?size,?should?>?slot_min_size
#?store?the?upload?file?to?trunk?file?when?it's?size?<=??this?value
#?default?value?is?16MB
#?since?V3.00
slot_max_size?=?16MB
?
#?the?trunk?file?size,?should?>=?4MB
#?default?value?is?64MB
#?since?V3.00
trunk_file_size?=?64MB
?
#?if?create?trunk?file?advancely
#?default?value?is?false
#?since?V3.06
trunk_create_file_advance?=?false
?
#?the?time?base?to?create?trunk?file
#?the?time?format:?HH:MM
#?default?value?is?02:00
#?since?V3.06
trunk_create_file_time_base?=?02:00
?
#?the?interval?of?create?trunk?file,?unit:?second
#?default?value?is?38400?(one?day)
#?since?V3.06
trunk_create_file_interval?=?86400
?
#?the?threshold?to?create?trunk?file
#?when?the?free?trunk?file?size?less?than?the?threshold,?will?create?
#?the?trunk?files
#?default?value?is?0
#?since?V3.06
trunk_create_file_space_threshold?=?20G
?
#?if?check?trunk?space?occupying?when?loading?trunk?free?spaces
#?the?occupied?spaces?will?be?ignored
#?default?value?is?false
#?since?V3.09
#?NOTICE:?set?this?parameter?to?true?will?slow?the?loading?of?trunk?spaces?
#?when?startup.?you?should?set?this?parameter?to?true?when?neccessary.
trunk_init_check_occupying?=?false
?
#?if?ignore?storage_trunk.dat,?reload?from?trunk?binlog
#?default?value?is?false
#?since?V3.10
#?set?to?true?once?for?version?upgrade?when?your?version?less?than?V3.10
trunk_init_reload_from_binlog?=?false
?
#?the?min?interval?for?compressing?the?trunk?binlog?file
#?unit:?second
#?default?value?is?0,?0?means?never?compress
#?FastDFS?compress?the?trunk?binlog?when?trunk?init?and?trunk?destroy
#?recommand?to?set?this?parameter?to?86400?(one?day)
#?since?V5.01
trunk_compress_binlog_min_interval?=?0
?
#?if?use?storage?ID?instead?of?IP?address
#?default?value?is?false
#?since?V4.00
use_storage_id?=?false
?
#?specify?storage?ids?filename,?can?use?relative?or?absolute?path
#?since?V4.00
storage_ids_filename?=?storage_ids.conf
?
#?id?type?of?the?storage?server?in?the?filename,?values?are:
##?ip:?the?ip?address?of?the?storage?server
##?id:?the?server?id?of?the?storage?server
#?this?paramter?is?valid?only?when?use_storage_id?set?to?true
#?default?value?is?ip
#?since?V4.03
id_type_in_filename?=?ip
?
#?if?store?slave?file?use?symbol?link
#?default?value?is?false
#?since?V4.01
store_slave_file_use_link?=?false
?
#?if?rotate?the?error?log?every?day
#?default?value?is?false
#?since?V4.02
rotate_error_log?=?false
?
#?rotate?error?log?time?base,?time?format:?Hour:Minute
#?Hour?from?0?to?23,?Minute?from?0?to?59
#?default?value?is?00:00
#?since?V4.02
error_log_rotate_time=00:00
?
#?rotate?error?log?when?the?log?file?exceeds?this?size
#?0?means?never?rotates?log?file?by?log?file?size
#?default?value?is?0
#?since?V4.02
rotate_error_log_size?=?0
?
#?if?use?connection?pool
#?default?value?is?false
#?since?V4.05
use_connection_pool?=?false
?
#?connections?whose?the?idle?time?exceeds?this?time?will?be?closed
#?unit:?second
#?default?value?is?3600
#?since?V4.05
connection_pool_max_idle_time?=?3600
?
#?HTTP?port?on?this?tracker?server
http.server_port=8080
?
http.disabled=true
#?HTTP服務是否不生效
?
#?check?storage?HTTP?server?alive?interval?seconds
#?<=?0?for?never?check
#?default?value?is?30
http.check_alive_interval=30
?
#?check?storage?HTTP?server?alive?type,?values?are:
#???tcp?:?connect?to?the?storge?server?with?HTTP?port?only,?
#????????do?not?request?and?get?response
#???http:?storage?check?alive?url?must?return?http?status?200
#?default?value?is?tcp
http.check_alive_type=tcp
?
#?check?storage?HTTP?server?alive?uri/url
#?NOTE:?storage?embed?HTTP?server?support?uri:?/status.html
http.check_alive_uri=/status.html
?
7.2?storage.conf配置內容
#?is?this?config?file?disabled
#?false?for?enabled
#?true?for?disabled
disabled=false
?
#?the?name?of?the?group?this?storage?server?belongs?to
group_name=group1
?
#?bind?an?address?of?this?host
#?empty?for?bind?all?addresses?of?this?host
bind_addr=192.168.1.244
?
#?if?bind?an?address?of?this?host?when?connect?to?other?servers?
#?(this?storage?server?as?a?client)
#?true?for?binding?the?address?configed?by?above?parameter:?"bind_addr"
#?false?for?binding?any?address?of?this?host
client_bind=true
?
#?the?storage?server?port
port=23000
?
#?connect?timeout?in?seconds
#?default?value?is?30s
connect_timeout=30
?
#?network?timeout?in?seconds
#?default?value?is?30s
network_timeout=60
?
#?heart?beat?interval?in?seconds
heart_beat_interval=30
?
#?disk?usage?report?interval?in?seconds
stat_report_interval=60
?
#?the?base?path?to?store?data?and?log?files
base_path=/home/fastdfs/storage
?
#?max?concurrent?connections?the?server?supported
#?default?value?is?256
#?more?max_connections?means?more?memory?will?be?used
max_connections=1000
?
#?the?buff?size?to?recv?/?send?data
#?this?parameter?must?more?than?8KB
#?default?value?is?64KB
#?since?V2.00
buff_size?=?256KB
?
#?accept?thread?count
#?default?value?is?1
#?since?V4.07
accept_threads=1
?
#?work?thread?count,?should?<=?max_connections
#?work?thread?deal?network?io
#?default?value?is?4
#?since?V2.00
work_threads=4
?
#?if?disk?read?/?write?separated
##??false?for?mixed?read?and?write
##??true?for?separated?read?and?write
#?default?value?is?true
#?since?V2.00
disk_rw_separated?=?true
?
#?disk?reader?thread?count?per?store?base?path
#?for?mixed?read?/?write,?this?parameter?can?be?0
#?default?value?is?1
#?since?V2.00
disk_reader_threads?=?1
?
#?disk?writer?thread?count?per?store?base?path
#?for?mixed?read?/?write,?this?parameter?can?be?0
#?default?value?is?1
#?since?V2.00
disk_writer_threads?=?1
?
#?when?no?entry?to?sync,?try?read?binlog?again?after?X?milliseconds
#?must?>?0,?default?value?is?200ms
sync_wait_msec=50
?
#?after?sync?a?file,?usleep?milliseconds
#?0?for?sync?successively?(never?call?usleep)
sync_interval=0
?
#?storage?sync?start?time?of?a?day,?time?format:?Hour:Minute
#?Hour?from?0?to?23,?Minute?from?0?to?59
sync_start_time=00:00
?
#?storage?sync?end?time?of?a?day,?time?format:?Hour:Minute
#?Hour?from?0?to?23,?Minute?from?0?to?59
sync_end_time=23:59
?
#?write?to?the?mark?file?after?sync?N?files
#?default?value?is?500
write_mark_file_freq=500
?
#?path(disk?or?mount?point)?count,?default?value?is?1
store_path_count=1
?
#?store_path#,?based?0,?if?store_path0?not?exists,?it's?value?is?base_path
#?the?paths?must?be?exist
store_path0=/home/fastdfs/data
#store_path1=/home/yuqing/fastdfs2
?
#?subdir_count??*?subdir_count?directories?will?be?auto?created?under?each?
#?store_path?(disk),?value?can?be?1?to?256,?default?value?is?256
subdir_count_per_path=256
?
#?tracker_server?can?ocur?more?than?once,?and?tracker_server?format?is
#??"host:port",?host?can?be?hostname?or?ip?address
tracker_server=192.168.1.244:22122
?
#standard?log?level?as?syslog,?case?insensitive,?value?list:
###?emerg?for?emergency
###?alert
###?crit?for?critical
###?error
###?warn?for?warning
###?notice
###?info
###?debug
log_level=info
?
#unix?group?name?to?run?this?program,?
#not?set?(empty)?means?run?by?the?group?of?current?user
run_by_group=
?
#unix?username?to?run?this?program,
#not?set?(empty)?means?run?by?current?user
run_by_user=
?
#?allow_hosts?can?ocur?more?than?once,?host?can?be?hostname?or?ip?address,
#?"*"?means?match?all?ip?addresses,?can?use?range?like?this:?10.0.1.[1-15,20]?or
#?host[01-08,20-25].domain.com,?for?example:
#?allow_hosts=10.0.1.[1-15,20]
#?allow_hosts=host[01-08,20-25].domain.com
allow_hosts=*
?
#?the?mode?of?the?files?distributed?to?the?data?path
#?0:?round?robin(default)
#?1:?random,?distributted?by?hash?code
file_distribute_path_mode=0
?
#?valid?when?file_distribute_to_path?is?set?to?0?(round?robin),?
#?when?the?written?file?count?reaches?this?number,?then?rotate?to?next?path
#?default?value?is?100
file_distribute_rotate_count=100
?
#?call?fsync?to?disk?when?write?big?file
#?0:?never?call?fsync
#?other:?call?fsync?when?written?bytes?>=?this?bytes
#?default?value?is?0?(never?call?fsync)
fsync_after_written_bytes=0
?
#?sync?log?buff?to?disk?every?interval?seconds
#?must?>?0,?default?value?is?10?seconds
sync_log_buff_interval=10
?
#?sync?binlog?buff?/?cache?to?disk?every?interval?seconds
#?default?value?is?60?seconds
sync_binlog_buff_interval=10
?
#?sync?storage?stat?info?to?disk?every?interval?seconds
#?default?value?is?300?seconds
sync_stat_file_interval=300
?
#?thread?stack?size,?should?>=?512KB
#?default?value?is?512KB
thread_stack_size=512KB
?
#?the?priority?as?a?source?server?for?uploading?file.
#?the?lower?this?value,?the?higher?its?uploading?priority.
#?default?value?is?10
upload_priority=10
?
#?the?NIC?alias?prefix,?such?as?eth?in?Linux,?you?can?see?it?by?ifconfig?-a
#?multi?aliases?split?by?comma.?empty?value?means?auto?set?by?OS?type
#?default?values?is?empty
if_alias_prefix=
?
#?if?check?file?duplicate,?when?set?to?true,?use?FastDHT?to?store?file?indexes
#?1?or?yes:?need?check
#?0?or?no:?do?not?check
#?default?value?is?0
check_file_duplicate=0
?
#?file?signature?method?for?check?file?duplicate
##?hash:?four?32?bits?hash?code
##?md5:?MD5?signature
#?default?value?is?hash
#?since?V4.01
file_signature_method=hash
?
#?namespace?for?storing?file?indexes?(key-value?pairs)
#?this?item?must?be?set?when?check_file_duplicate?is?true?/?on
key_namespace=FastDFS
?
#?set?keep_alive?to?1?to?enable?persistent?connection?with?FastDHT?servers
#?default?value?is?0?(short?connection)
keep_alive=0
?
#?you?can?use?"#include?filename"?(not?include?double?quotes)?directive?to?
#?load?FastDHT?server?list,?when?the?filename?is?a?relative?path?such?as?
#?pure?filename,?the?base?path?is?the?base?path?of?current/this?config?file.
#?must?set?FastDHT?server?list?when?check_file_duplicate?is?true?/?on
#?please?see?INSTALL?of?FastDHT?for?detail
##include?/home/yuqing/fastdht/conf/fdht_servers.conf
?
#?if?log?to?access?log
#?default?value?is?false
#?since?V4.00
use_access_log?=?false
?
#?if?rotate?the?access?log?every?day
#?default?value?is?false
#?since?V4.00
rotate_access_log?=?false
?
#?rotate?access?log?time?base,?time?format:?Hour:Minute
#?Hour?from?0?to?23,?Minute?from?0?to?59
#?default?value?is?00:00
#?since?V4.00
access_log_rotate_time=00:00
?
#?if?rotate?the?error?log?every?day
#?default?value?is?false
#?since?V4.02
rotate_error_log?=?false
?
#?rotate?error?log?time?base,?time?format:?Hour:Minute
#?Hour?from?0?to?23,?Minute?from?0?to?59
#?default?value?is?00:00
#?since?V4.02
error_log_rotate_time=00:00
?
#?rotate?access?log?when?the?log?file?exceeds?this?size
#?0?means?never?rotates?log?file?by?log?file?size
#?default?value?is?0
#?since?V4.02
rotate_access_log_size?=?0
?
#?rotate?error?log?when?the?log?file?exceeds?this?size
#?0?means?never?rotates?log?file?by?log?file?size
#?default?value?is?0
#?since?V4.02
rotate_error_log_size?=?0
?
#?if?skip?the?invalid?record?when?sync?file
#?default?value?is?false
#?since?V4.02
file_sync_skip_invalid_record=false
?
#?if?use?connection?pool
#?default?value?is?false
#?since?V4.05
use_connection_pool?=?false
?
#?connections?whose?the?idle?time?exceeds?this?time?will?be?closed
#?unit:?second
#?default?value?is?3600
#?since?V4.05
connection_pool_max_idle_time?=?3600
?
#?use?the?ip?address?of?this?storage?server?if?domain_name?is?empty,
#?else?this?domain?name?will?ocur?in?the?url?redirected?by?the?tracker?server
http.domain_name=
?
#?the?port?of?the?web?server?on?this?storage?server
http.server_port=8888
?
http.disabled=true
?
?
7.3?ngnix.conf配置內容
?
#user??nobody;
worker_processes??1;
?
#error_log??logs/error.log;
#error_log??logs/error.log??notice;
#error_log??logs/error.log??info;
?
#pid????????logs/nginx.pid;
?
?
events?{
????worker_connections??1024;
}
?
?
http?{
????include???????mime.types;
????default_type??application/octet-stream;
?
????#log_format??main??'$remote_addr?-?$remote_user?[$time_local]?"$request"?'
????#??????????????????'$status?$body_bytes_sent?"$http_referer"?'
????#??????????????????'"$http_user_agent"?"$http_x_forwarded_for"';
?
????#access_log??logs/access.log??main;
?
????sendfile????????on;
????#tcp_nopush?????on;
?
????#keepalive_timeout??0;
????keepalive_timeout??65;
?
????#gzip??on;
?
???#?upstream?fdfs_group1?{
# server?192.168.1.244:80?weight=1?max_fails=2?fail_timeout=30s;
?#???}
????server?{
????????listen???????80;
????????server_name??localhost;
?
????????#charset?koi8-r;
?
????????#access_log??logs/host.access.log??main;
?
location?/group1/M00?{
????????????root?/home/fastdfs/data/data;
????????????ngx_fastdfs_module;
???? }
?
????????location?/?{
????????????root???html;
????????????index??index.html?index.htm;
????????}
?
????????#error_page??404??????????????/404.html;
?
????????#?redirect?server?error?pages?to?the?static?page?/50x.html
????????#
????????error_page???500?502?503?504??/50x.html;
????????location?=?/50x.html?{
????????????root???html;
????????}
?
????????#?proxy?the?PHP?scripts?to?Apache?listening?on?127.0.0.1:80
????????#
????????#location?~?\.php$?{
????????#????proxy_pass???http://127.0.0.1;
????????#}
?
????????#?pass?the?PHP?scripts?to?FastCGI?server?listening?on?127.0.0.1:9000
????????#
????????#location?~?\.php$?{
????????#????root???????????html;
????????#????fastcgi_pass???127.0.0.1:9000;
????????#????fastcgi_index??index.php;
????????#????fastcgi_param??SCRIPT_FILENAME??/scripts$fastcgi_script_name;
????????#????include????????fastcgi_params;
????????#}
?
????????#?deny?access?to?.htaccess?files,?if?Apache's?document?root
????????#?concurs?with?nginx's?one
????????#
????????#location?~?/\.ht?{
????????#????deny??all;
????????#}
????}
?
?
????#?another?virtual?host?using?mix?of?IP-,?name-,?and?port-based?configuration
????#
????#server?{
????#????listen???????8000;
????#????listen???????somename:8080;
????#????server_name??somename??alias??another.alias;
?
????#????location?/?{
????#????????root???html;
????#????????index??index.html?index.htm;
????#????}
????#}
?
?
????#?HTTPS?server
????#
????#server?{
????#????listen???????443?ssl;
????#????server_name??localhost;
?
????#????ssl_certificate??????cert.pem;
????#????ssl_certificate_key??cert.key;
?
????#????ssl_session_cache????shared:SSL:1m;
????#????ssl_session_timeout??5m;
?
????#????ssl_ciphers??HIGH:!aNULL:!MD5;
????#????ssl_prefer_server_ciphers??on;
?
????#????location?/?{
????#????????root???html;
????#????????index??index.html?index.htm;
????#????}
????#}
?
}
?
7.4?mod_fastdfs.conf配置內容
#?connect?timeout?in?seconds
#?default?value?is?30s
connect_timeout=2
?
#?network?recv?and?send?timeout?in?seconds
#?default?value?is?30s
network_timeout=30
?
#?the?base?path?to?store?log?files
base_path=/home/fastdfs/mod_fastdfs
?
#?if?load?FastDFS?parameters?from?tracker?server
#?since?V1.12
#?default?value?is?false
load_fdfs_parameters_from_tracker=true
?
#?storage?sync?file?max?delay?seconds
#?same?as?tracker.conf
#?valid?only?when?load_fdfs_parameters_from_tracker?is?false
#?since?V1.12
#?default?value?is?86400?seconds?(one?day)
storage_sync_file_max_delay?=?86400
?
#?if?use?storage?ID?instead?of?IP?address
#?same?as?tracker.conf
#?valid?only?when?load_fdfs_parameters_from_tracker?is?false
#?default?value?is?false
#?since?V1.13
use_storage_id?=?false
?
#?specify?storage?ids?filename,?can?use?relative?or?absolute?path
#?same?as?tracker.conf
#?valid?only?when?load_fdfs_parameters_from_tracker?is?false
#?since?V1.13
storage_ids_filename?=?storage_ids.conf
?
#?FastDFS?tracker_server?can?ocur?more?than?once,?and?tracker_server?format?is
#??"host:port",?host?can?be?hostname?or?ip?address
#?valid?only?when?load_fdfs_parameters_from_tracker?is?true
tracker_server=192.168.1.244:22122
?
#?the?port?of?the?local?storage?server
#?the?default?value?is?23000
storage_server_port=23000
?
#?the?group?name?of?the?local?storage?server
group_name=group1
?
#?if?the?url?/?uri?including?the?group?name
#?set?to?false?when?uri?like?/M00/00/00/xxx
#?set?to?true?when?uri?like?${group_name}/M00/00/00/xxx,?such?as?group1/M00/xxx
#?default?value?is?false
url_have_group_name?=?true
?
#?path(disk?or?mount?point)?count,?default?value?is?1
#?must?same?as?storage.conf
store_path_count=1
?
#?store_path#,?based?0,?if?store_path0?not?exists,?it's?value?is?base_path
#?the?paths?must?be?exist
#?must?same?as?storage.conf
store_path0=/home/fasfdfs/data
#store_path1=/home/yuqing/fastdfs1
?
#?standard?log?level?as?syslog,?case?insensitive,?value?list:
###?emerg?for?emergency
###?alert
###?crit?for?critical
###?error
###?warn?for?warning
###?notice
###?info
###?debug
log_level=info
?
#?set?the?log?filename,?such?as?/usr/local/apache2/logs/mod_fastdfs.log
#?empty?for?output?to?stderr?(apache?and?nginx?error_log?file)
log_filename=
?
#?response?mode?when?the?file?not?exist?in?the?local?file?system
##?proxy:?get?the?content?from?other?storage?server,?then?send?to?client
##?redirect:?redirect?to?the?original?storage?server?(HTTP?Header?is?Location)
response_mode=proxy
?
#?the?NIC?alias?prefix,?such?as?eth?in?Linux,?you?can?see?it?by?ifconfig?-a
#?multi?aliases?split?by?comma.?empty?value?means?auto?set?by?OS?type
#?this?paramter?used?to?get?all?ip?address?of?the?local?host
#?default?values?is?empty
if_alias_prefix=
?
#?use?"#include"?directive?to?include?HTTP?config?file
#?NOTE:?#include?is?an?include?directive,?do?NOT?remove?the?#?before?include
#include?http.conf
?
?
#?if?support?flv
#?default?value?is?false
#?since?v1.15
flv_support?=?true
?
#?flv?file?extension?name
#?default?value?is?flv
#?since?v1.15
flv_extension?=?flv
?
?
#?set?the?group?count
#?set?to?none?zero?to?support?multi-group
#?set?to?0??for?single?group?only
#?groups?settings?section?as?[group1],?[group2],?...,?[groupN]
#?default?value?is?0
#?since?v1.14
group_count?=?1
?
#?group?settings?for?group?#1
#?since?v1.14
#?when?support?multi-group,?uncomment?following?section
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/home/fastdfs/data
#store_path1=/home/yuqing/fastdfs1
?
#?group?settings?for?group?#2
#?since?v1.14
#?when?support?multi-group,?uncomment?following?section?as?neccessary
#[group2]
#group_name=group2
#storage_server_port=23000
#store_path_count=1
#store_path0=/home/yuqing/fastdfs
?
?
7.5?client.conf配置內容
#?connect?timeout?in?seconds
#?default?value?is?30s
connect_timeout=30
?
#?network?timeout?in?seconds
#?default?value?is?30s
network_timeout=60
?
#?the?base?path?to?store?log?files
base_path=/home/fastdfs/client
?
#?tracker_server?can?ocur?more?than?once,?and?tracker_server?format?is
#??"host:port",?host?can?be?hostname?or?ip?address
tracker_server=192.168.1.244:22122
?
#standard?log?level?as?syslog,?case?insensitive,?value?list:
###?emerg?for?emergency
###?alert
###?crit?for?critical
###?error
###?warn?for?warning
###?notice
###?info
###?debug
log_level=info
?
#?if?use?connection?pool
#?default?value?is?false
#?since?V4.05
use_connection_pool?=?false
?
#?connections?whose?the?idle?time?exceeds?this?time?will?be?closed
#?unit:?second
#?default?value?is?3600
#?since?V4.05
connection_pool_max_idle_time?=?3600
?
#?if?load?FastDFS?parameters?from?tracker?server
#?since?V4.05
#?default?value?is?false
load_fdfs_parameters_from_tracker=false
?
#?if?use?storage?ID?instead?of?IP?address
#?same?as?tracker.conf
#?valid?only?when?load_fdfs_parameters_from_tracker?is?false
#?default?value?is?false
#?since?V4.05
use_storage_id?=?false
?
#?specify?storage?ids?filename,?can?use?relative?or?absolute?path
#?same?as?tracker.conf
#?valid?only?when?load_fdfs_parameters_from_tracker?is?false
#?since?V4.05
storage_ids_filename?=?storage_ids.conf
?
?
#HTTP?settings
http.tracker_server_port=80
?
#use?"#include"?directive?to?include?HTTP?other?settiongs
#include?http.conf
?
?
轉載于:https://my.oschina.net/ydsakyclguozi/blog/395877
總結
以上是生活随笔為你收集整理的FastDFS5.02安装说明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 30. SQL -- 完整性及约束(1)
- 下一篇: IOS开发之下拉刷新和上拉加载更多