1.删除 docker_local 版本

2.将 docker_network 版本变更为 simple 版本 偏向于 开发,测试,或者仅需要单机使用
3.基于 simple 版本重新编写 cluster 版本
  cluster 版本 包含2个镜像   Tracker 和 Storage
  分别可以进行集群化构建
  具体信息 请查看  cluster/tracker/README.md  以及 cluster/storage/README.md
pull/414/head
范文强 2020-04-27 15:34:42 +08:00
parent 0dbd84e8d0
commit 0a6d9f643c
30 changed files with 878 additions and 2099 deletions

View File

@ -0,0 +1,19 @@
# centos 7
FROM centos:7
ADD startup.sh /home
# run
RUN yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y \
&& cd /usr/local/src \
&& git clone https://github.com/happyfish100/libfastcommon.git --depth 1 \
&& git clone https://github.com/happyfish100/fastdfs.git --depth 1 \
&& mkdir /home/dfs \
&& cd /usr/local/src/ \
&& cd libfastcommon/ \
&& ./make.sh && ./make.sh install \
&& cd /usr/local/src/fastdfs \
&& ./make.sh && ./make.sh install \
&& chmod +x /home/startup.sh
# export config
VOLUME ["/etc/fdfs","/home/dfs"]
ENTRYPOINT ["/home/startup.sh"]

View File

@ -0,0 +1,40 @@
# FastDFS-Storage Docker Cluster
## 声明
本 Docker 镜像 基于Fstdfs 并且参考了 huayanYu(小锅盖)和Wiki的作者
## 概述
适用于集群分布式部署使用
开箱即用
## 构建镜像
```
docker build --tag storage .
```
## 简单使用
```
docker run -d --net host --name some-storage -e SERVER_PORT=24001 -e TRSERVER=127.0.0.1:22122 -e GROUP_NAME=group1 storage
```
## Tracker 集群的时候
使用 ,分割 填写多个 Tracker 地址即可
```
docker run -d --net host --name storage-1 -e SERVER_PORT=24001 -e TR_SERVER=127.0.0.1:22122,127.0.0.1:22122 -e GROUP_NAME=group1 storage
```
## 环境变量
<ul>
<li>TR_SERVER Tracker地址 <font color="red">必填</font></li>
<li>SERVER_PORT Storage 服务端口 集群的情况下 不建议 使用 -p 来进行映射 请尽可能的使用 --net host 除非你能明确知道为什么不建议使用 -p 映射 <font color="red">必填</font></li>
<li>GROUP_NAME 组名称 默认值 group1 非必填</li>
</ul>
若想进行更多的配置
请映射数据卷
## 数据卷
<ul>
<li>/etc/fdfs 配置文件目录</li>
<li>/home/dfs 数据文件以及日志</li>
</ul>

View File

@ -0,0 +1,391 @@
#!/bin/bash
#
# fastdfs storage
#
#
# @date 2020/04/26 18:10
# @author ch
###########################
if [ ! -n "$TR_SERVER" ]; then
echo "tr_server is null"
exit 1
fi
if [ ! -n "$SERVER_PORT" ]; then
echo "server_port is null"
exit 1
fi
if [ ! -n "$GROUP_NAME" ]; then
echo "group_name is null"
echo "use default group_name"
GROUP_NAME="group1"
fi
mkdir -p /home/dfs/logs
echo 'start storage ' > /home/dfs/logs/storaged.log
# 创建基本配置文件
mkdir -p ./conf
echo "# create storage config"
echo "# is this config file disabled" >> ./conf/storage.conf
echo "# false for enabled" >> ./conf/storage.conf
echo "# true for disabled" >> ./conf/storage.conf
echo "disabled=false" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# 该存储服务器所属的组的名称" >> ./conf/storage.conf
echo "#" >> ./conf/storage.conf
echo "# 评论或删除此项目以从跟踪服务器获取," >> ./conf/storage.conf
echo "# 在这种情况下必须在tracker.conf中将use_storage_id设置为true。," >> ./conf/storage.conf
echo "# 和storage_ids.conf必须正确配置." >> ./conf/storage.conf
echo "group_name="$GROUP_NAME >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# bind an address of this host" >> ./conf/storage.conf
echo "# empty for bind all addresses of this host" >> ./conf/storage.conf
echo "bind_addr=" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# if bind an address of this host when connect to other servers" >> ./conf/storage.conf
echo "# (this storage server as a client)" >> ./conf/storage.conf
echo "# true for binding the address configed by above parameter: "bind_addr"" >> ./conf/storage.conf
echo "# false for binding any address of this host" >> ./conf/storage.conf
echo "client_bind=true" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# the storage server port" >> ./conf/storage.conf
echo "port="$SERVER_PORT >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# connect timeout in seconds" >> ./conf/storage.conf
echo "# default value is 30s" >> ./conf/storage.conf
echo "connect_timeout=10" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# network timeout in seconds" >> ./conf/storage.conf
echo "# default value is 30s" >> ./conf/storage.conf
echo "network_timeout=60" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# heart beat interval in seconds" >> ./conf/storage.conf
echo "heart_beat_interval=30" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# disk usage report interval in seconds" >> ./conf/storage.conf
echo "stat_report_interval=60" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# the base path to store data and log files" >> ./conf/storage.conf
echo "base_path=/home/dfs" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# max concurrent connections the server supported" >> ./conf/storage.conf
echo "# default value is 256" >> ./conf/storage.conf
echo "# more max_connections means more memory will be used" >> ./conf/storage.conf
echo "# you should set this parameter larger, eg. 10240" >> ./conf/storage.conf
echo "max_connections=1024" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# the buff size to recv / send data" >> ./conf/storage.conf
echo "# this parameter must more than 8KB" >> ./conf/storage.conf
echo "# default value is 64KB" >> ./conf/storage.conf
echo "# since V2.00" >> ./conf/storage.conf
echo "buff_size = 256KB" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# accept thread count" >> ./conf/storage.conf
echo "# default value is 1" >> ./conf/storage.conf
echo "# since V4.07" >> ./conf/storage.conf
echo "accept_threads=1" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# work thread count, should <= max_connections" >> ./conf/storage.conf
echo "# work thread deal network io" >> ./conf/storage.conf
echo "# default value is 4" >> ./conf/storage.conf
echo "# since V2.00" >> ./conf/storage.conf
echo "work_threads=4" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# if disk read / write separated" >> ./conf/storage.conf
echo "# false for mixed read and write" >> ./conf/storage.conf
echo "# true for separated read and write" >> ./conf/storage.conf
echo "# default value is true" >> ./conf/storage.conf
echo "# since V2.00" >> ./conf/storage.conf
echo "disk_rw_separated = true" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# disk reader thread count per store base path" >> ./conf/storage.conf
echo "# for mixed read / write, this parameter can be 0" >> ./conf/storage.conf
echo "# default value is 1" >> ./conf/storage.conf
echo "# since V2.00" >> ./conf/storage.conf
echo "disk_reader_threads = 1" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# disk writer thread count per store base path" >> ./conf/storage.conf
echo "# for mixed read / write, this parameter can be 0" >> ./conf/storage.conf
echo "# default value is 1" >> ./conf/storage.conf
echo "# since V2.00" >> ./conf/storage.conf
echo "disk_writer_threads = 1" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# when no entry to sync, try read binlog again after X milliseconds" >> ./conf/storage.conf
echo "# must > 0, default value is 200ms" >> ./conf/storage.conf
echo "sync_wait_msec=50" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# after sync a file, usleep milliseconds" >> ./conf/storage.conf
echo "# 0 for sync successively (never call usleep)" >> ./conf/storage.conf
echo "sync_interval=0" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# storage sync start time of a day, time format: Hour:Minute" >> ./conf/storage.conf
echo "# Hour from 0 to 23, Minute from 0 to 59" >> ./conf/storage.conf
echo "sync_start_time=00:00" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# storage sync end time of a day, time format: Hour:Minute" >> ./conf/storage.conf
echo "# Hour from 0 to 23, Minute from 0 to 59" >> ./conf/storage.conf
echo "sync_end_time=23:59" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# write to the mark file after sync N files" >> ./conf/storage.conf
echo "# default value is 500" >> ./conf/storage.conf
echo "write_mark_file_freq=500" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# path(disk or mount point) count, default value is 1" >> ./conf/storage.conf
echo "store_path_count=1" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# store_path#, based 0, if store_path0 not exists, it's value is base_path" >> ./conf/storage.conf
echo "# the paths must be exist" >> ./conf/storage.conf
echo "store_path0=/home/dfs" >> ./conf/storage.conf
echo "#store_path1=/home/dfs2" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# subdir_count * subdir_count directories will be auto created under each" >> ./conf/storage.conf
echo "# store_path (disk), value can be 1 to 256, default value is 256" >> ./conf/storage.conf
echo "subdir_count_per_path=256" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "#standard log level as syslog, case insensitive, value list:" >> ./conf/storage.conf
echo "### emerg for emergency" >> ./conf/storage.conf
echo "### alert" >> ./conf/storage.conf
echo "### crit for critical" >> ./conf/storage.conf
echo "### error" >> ./conf/storage.conf
echo "### warn for warning" >> ./conf/storage.conf
echo "### notice" >> ./conf/storage.conf
echo "### info" >> ./conf/storage.conf
echo "### debug" >> ./conf/storage.conf
echo "log_level=info" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "#unix group name to run this program," >> ./conf/storage.conf
echo "#not set (empty) means run by the group of current user" >> ./conf/storage.conf
echo "run_by_group=" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "#unix username to run this program," >> ./conf/storage.conf
echo "#not set (empty) means run by current user" >> ./conf/storage.conf
echo "run_by_user=" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# allow_hosts can ocur more than once, host can be hostname or ip address," >> ./conf/storage.conf
echo "# '*' (only one asterisk) means match all ip addresses" >> ./conf/storage.conf
echo "# we can use CIDR ips like 192.168.5.64/26" >> ./conf/storage.conf
echo "# and also use range like these: 10.0.1.[0-254] and host[01-08,20-25].domain.com" >> ./conf/storage.conf
echo "# for example:" >> ./conf/storage.conf
echo "# allow_hosts=10.0.1.[1-15,20]" >> ./conf/storage.conf
echo "# allow_hosts=host[01-08,20-25].domain.com" >> ./conf/storage.conf
echo "# allow_hosts=192.168.5.64/26" >> ./conf/storage.conf
echo "allow_hosts=*" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# the mode of the files distributed to the data path" >> ./conf/storage.conf
echo "# 0: round robin(default)" >> ./conf/storage.conf
echo "# 1: random, distributted by hash code" >> ./conf/storage.conf
echo "file_distribute_path_mode=0" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# valid when file_distribute_to_path is set to 0 (round robin)," >> ./conf/storage.conf
echo "# when the written file count reaches this number, then rotate to next path" >> ./conf/storage.conf
echo "# default value is 100" >> ./conf/storage.conf
echo "file_distribute_rotate_count=100" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# call fsync to disk when write big file" >> ./conf/storage.conf
echo "# 0: never call fsync" >> ./conf/storage.conf
echo "# other: call fsync when written bytes >= this bytes" >> ./conf/storage.conf
echo "# default value is 0 (never call fsync)" >> ./conf/storage.conf
echo "fsync_after_written_bytes=0" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# sync log buff to disk every interval seconds" >> ./conf/storage.conf
echo "# must > 0, default value is 10 seconds" >> ./conf/storage.conf
echo "sync_log_buff_interval=10" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# sync binlog buff / cache to disk every interval seconds" >> ./conf/storage.conf
echo "# default value is 60 seconds" >> ./conf/storage.conf
echo "sync_binlog_buff_interval=10" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# sync storage stat info to disk every interval seconds" >> ./conf/storage.conf
echo "# default value is 300 seconds" >> ./conf/storage.conf
echo "sync_stat_file_interval=300" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# thread stack size, should >= 512KB" >> ./conf/storage.conf
echo "# default value is 512KB" >> ./conf/storage.conf
echo "thread_stack_size=512KB" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# the priority as a source server for uploading file." >> ./conf/storage.conf
echo "# the lower this value, the higher its uploading priority." >> ./conf/storage.conf
echo "# default value is 10" >> ./conf/storage.conf
echo "upload_priority=10" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# the NIC alias prefix, such as eth in Linux, you can see it by ifconfig -a" >> ./conf/storage.conf
echo "# multi aliases split by comma. empty value means auto set by OS type" >> ./conf/storage.conf
echo "# default values is empty" >> ./conf/storage.conf
echo "if_alias_prefix=" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# if check file duplicate, when set to true, use FastDHT to store file indexes" >> ./conf/storage.conf
echo "# 1 or yes: need check" >> ./conf/storage.conf
echo "# 0 or no: do not check" >> ./conf/storage.conf
echo "# default value is 0" >> ./conf/storage.conf
echo "check_file_duplicate=0" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# file signature method for check file duplicate" >> ./conf/storage.conf
echo "## hash: four 32 bits hash code" >> ./conf/storage.conf
echo "## md5: MD5 signature" >> ./conf/storage.conf
echo "# default value is hash" >> ./conf/storage.conf
echo "# since V4.01" >> ./conf/storage.conf
echo "file_signature_method=hash" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# namespace for storing file indexes (key-value pairs)" >> ./conf/storage.conf
echo "# this item must be set when check_file_duplicate is true / on" >> ./conf/storage.conf
echo "key_namespace=FastDFS" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# set keep_alive to 1 to enable persistent connection with FastDHT servers" >> ./conf/storage.conf
echo "# default value is 0 (short connection)" >> ./conf/storage.conf
echo "keep_alive=0" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# you can use #include filename (not include double quotes) directive to" >> ./conf/storage.conf
echo "# load FastDHT server list, when the filename is a relative path such as" >> ./conf/storage.conf
echo "# pure filename, the base path is the base path of current/this config file." >> ./conf/storage.conf
echo "# must set FastDHT server list when check_file_duplicate is true / on" >> ./conf/storage.conf
echo "# please see INSTALL of FastDHT for detail" >> ./conf/storage.conf
echo "##include /home/yuqing/fastdht/conf/fdht_servers.conf" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# if log to access log" >> ./conf/storage.conf
echo "# default value is false" >> ./conf/storage.conf
echo "# since V4.00" >> ./conf/storage.conf
echo "use_access_log = false" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# if rotate the access log every day" >> ./conf/storage.conf
echo "# default value is false" >> ./conf/storage.conf
echo "# since V4.00" >> ./conf/storage.conf
echo "rotate_access_log = false" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# rotate access log time base, time format: Hour:Minute" >> ./conf/storage.conf
echo "# Hour from 0 to 23, Minute from 0 to 59" >> ./conf/storage.conf
echo "# default value is 00:00" >> ./conf/storage.conf
echo "# since V4.00" >> ./conf/storage.conf
echo "access_log_rotate_time=00:00" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# if rotate the error log every day" >> ./conf/storage.conf
echo "# default value is false" >> ./conf/storage.conf
echo "# since V4.02" >> ./conf/storage.conf
echo "rotate_error_log = false" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# rotate error log time base, time format: Hour:Minute" >> ./conf/storage.conf
echo "# Hour from 0 to 23, Minute from 0 to 59" >> ./conf/storage.conf
echo "# default value is 00:00" >> ./conf/storage.conf
echo "# since V4.02" >> ./conf/storage.conf
echo "error_log_rotate_time=00:00" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# rotate access log when the log file exceeds this size" >> ./conf/storage.conf
echo "# 0 means never rotates log file by log file size" >> ./conf/storage.conf
echo "# default value is 0" >> ./conf/storage.conf
echo "# since V4.02" >> ./conf/storage.conf
echo "rotate_access_log_size = 0" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# rotate error log when the log file exceeds this size" >> ./conf/storage.conf
echo "# 0 means never rotates log file by log file size" >> ./conf/storage.conf
echo "# default value is 0" >> ./conf/storage.conf
echo "# since V4.02" >> ./conf/storage.conf
echo "rotate_error_log_size = 0" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# keep days of the log files" >> ./conf/storage.conf
echo "# 0 means do not delete old log files" >> ./conf/storage.conf
echo "# default value is 0" >> ./conf/storage.conf
echo "log_file_keep_days = 0" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# if skip the invalid record when sync file" >> ./conf/storage.conf
echo "# default value is false" >> ./conf/storage.conf
echo "# since V4.02" >> ./conf/storage.conf
echo "file_sync_skip_invalid_record=false" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# if use connection pool" >> ./conf/storage.conf
echo "# default value is false" >> ./conf/storage.conf
echo "# since V4.05" >> ./conf/storage.conf
echo "use_connection_pool = false" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# connections whose the idle time exceeds this time will be closed" >> ./conf/storage.conf
echo "# unit: second" >> ./conf/storage.conf
echo "# default value is 3600" >> ./conf/storage.conf
echo "# since V4.05" >> ./conf/storage.conf
echo "connection_pool_max_idle_time = 3600" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# use the ip address of this storage server if domain_name is empty," >> ./conf/storage.conf
echo "# else this domain name will ocur in the url redirected by the tracker server" >> ./conf/storage.conf
echo "http.domain_name=" >> ./conf/storage.conf
echo "" >> ./conf/storage.conf
echo "# the port of the web server on this storage server" >> ./conf/storage.conf
echo "http.server_port=8888" >> ./conf/storage.conf
# split
arr=(${TR_SERVER//,/ })
# tracker
echo "#tracker_server can ocur more than once, and tracker_server format is" >> ./conf/storage.conf
echo "#host:port, host can be hostname or ip address" >> ./conf/storage.conf
for var in ${arr[@]}
do
echo "tracker_server="$var >> ./conf/storage.conf
done
# 移动配置文件
cat ./conf/storage.conf > /etc/fdfs/storage.conf
# start
/etc/init.d/fdfs_storaged start
# cat log
tail -f /home/dfs/logs/storaged.log

View File

@ -0,0 +1,23 @@
# centos 7
FROM centos:7
# 添加配置文件
ADD startup.sh /home
# run
RUN yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y \
&& cd /usr/local/src \
&& git clone https://github.com/happyfish100/libfastcommon.git --depth 1 \
&& git clone https://github.com/happyfish100/fastdfs.git --depth 1 \
&& mkdir /home/dfs \
&& cd /usr/local/src/ \
&& cd libfastcommon/ \
&& ./make.sh && ./make.sh install \
&& cd /usr/local/src/fastdfs \
&& ./make.sh && ./make.sh install \
&& chmod +x /home/startup.sh
# export config
VOLUME ["/etc/fdfs","/home/dfs"]
ENTRYPOINT ["/home/startup.sh"]

View File

@ -0,0 +1,45 @@
# FastDFS-Tracker Docker Cluster
## 声明
本 Docker 镜像 基于Fstdfs 并且参考了 huayanYu(小锅盖)和Wiki的作者
## 概述
适用于集群分布式部署使用
开箱即用
## 构建镜像
```
docker build --tag tracker .
```
## 简单使用
```
docker run -d --name some-tracker -e SERVER_PORT=22122 -p 22122:22122 tracker
```
## 对端口 以及Storage集群的访问方式进行调整
```
docker run -d --name some-tracker -e SERVER_PORT=23122 -p 22122:23122 -e LOOKUP=0 tracker
```
## 环境变量
<ul>
<li>SERVER_PORT Tracker 服务端口</li>
<li>LOOKUP 负载模式 默认值 0 非必填</li>
</ul>
LOOKUP 可选项
0 : round robin
1 : specify group
2 : load balance, select the max free space group to upload file
若想进行更多的配置
请映射数据卷
## 数据卷
<ul>
<li>/etc/fdfs 配置文件目录</li>
<li>/home/dfs 数据文件以及日志</li>
</ul>

View File

@ -0,0 +1,357 @@
#!/bin/bash
if [ ! -n "$SERVER_PORT" ]; then
echo "server_port is null"
exit 1
fi
if [ ! -n "$LOOKUP" ]; then
echo "lookup is null"
echo "use default lookup"
LOOKUP=0
fi
mkdir -p ./conf
echo "create tracker config " > ./conf/tracker.conf
echo "# is this config file disabled" >> ./conf/tracker.conf
echo "# false for enabled" >> ./conf/tracker.conf
echo "# true for disabled" >> ./conf/tracker.conf
echo "disabled=false" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# bind an address of this host" >> ./conf/tracker.conf
echo "# empty for bind all addresses of this host" >> ./conf/tracker.conf
echo "bind_addr=" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# the tracker server port" >> ./conf/tracker.conf
echo "port="$SERVER_PORT >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# connect timeout in seconds" >> ./conf/tracker.conf
echo "# default value is 30s" >> ./conf/tracker.conf
echo "connect_timeout=10" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# network timeout in seconds" >> ./conf/tracker.conf
echo "# default value is 30s" >> ./conf/tracker.conf
echo "network_timeout=60" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# the base path to store data and log files" >> ./conf/tracker.conf
echo "base_path=/home/dfs" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# max concurrent connections this server supported" >> ./conf/tracker.conf
echo "# you should set this parameter larger, eg. 102400" >> ./conf/tracker.conf
echo "max_connections=1024" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# accept thread count" >> ./conf/tracker.conf
echo "# default value is 1" >> ./conf/tracker.conf
echo "# since V4.07" >> ./conf/tracker.conf
echo "accept_threads=1" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# work thread count, should <= max_connections" >> ./conf/tracker.conf
echo "# default value is 4" >> ./conf/tracker.conf
echo "# since V2.00" >> ./conf/tracker.conf
echo "work_threads=4" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# min buff size" >> ./conf/tracker.conf
echo "# default value 8KB" >> ./conf/tracker.conf
echo "min_buff_size = 8KB" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# max buff size" >> ./conf/tracker.conf
echo "# default value 128KB" >> ./conf/tracker.conf
echo "max_buff_size = 128KB" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# the method of selecting group to upload files" >> ./conf/tracker.conf
echo "# 0: round robin" >> ./conf/tracker.conf
echo "# 1: specify group" >> ./conf/tracker.conf
echo "# 2: load balance, select the max free space group to upload file" >> ./conf/tracker.conf
echo "store_lookup="$LOOKUP >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# which group to upload file" >> ./conf/tracker.conf
echo "# when store_lookup set to 1, must set store_group to the group name" >> ./conf/tracker.conf
echo "store_group=group2" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# which storage server to upload file" >> ./conf/tracker.conf
echo "# 0: round robin (default)" >> ./conf/tracker.conf
echo "# 1: the first server order by ip address" >> ./conf/tracker.conf
echo "# 2: the first server order by priority (the minimal)" >> ./conf/tracker.conf
echo "# Note: if use_trunk_file set to true, must set store_server to 1 or 2" >> ./conf/tracker.conf
echo "store_server=0" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# which path(means disk or mount point) of the storage server to upload file" >> ./conf/tracker.conf
echo "# 0: round robin" >> ./conf/tracker.conf
echo "# 2: load balance, select the max free space path to upload file" >> ./conf/tracker.conf
echo "store_path=2" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# which storage server to download file" >> ./conf/tracker.conf
echo "# 0: round robin (default)" >> ./conf/tracker.conf
echo "# 1: the source storage server which the current file uploaded to" >> ./conf/tracker.conf
echo "download_server=0" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# reserved storage space for system or other applications." >> ./conf/tracker.conf
echo "# if the free(available) space of any stoarge server in" >> ./conf/tracker.conf
echo "# a group <= reserved_storage_space," >> ./conf/tracker.conf
echo "# no file can be uploaded to this group." >> ./conf/tracker.conf
echo "# bytes unit can be one of follows:" >> ./conf/tracker.conf
echo "### G or g for gigabyte(GB)" >> ./conf/tracker.conf
echo "### M or m for megabyte(MB)" >> ./conf/tracker.conf
echo "### K or k for kilobyte(KB)" >> ./conf/tracker.conf
echo "### no unit for byte(B)" >> ./conf/tracker.conf
echo "### XX.XX% as ratio such as reserved_storage_space = 10%" >> ./conf/tracker.conf
echo "reserved_storage_space = 1%" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "#standard log level as syslog, case insensitive, value list:" >> ./conf/tracker.conf
echo "### emerg for emergency" >> ./conf/tracker.conf
echo "### alert" >> ./conf/tracker.conf
echo "### crit for critical" >> ./conf/tracker.conf
echo "### error" >> ./conf/tracker.conf
echo "### warn for warning" >> ./conf/tracker.conf
echo "### notice" >> ./conf/tracker.conf
echo "### info" >> ./conf/tracker.conf
echo "### debug" >> ./conf/tracker.conf
echo "log_level=info" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "#unix group name to run this program," >> ./conf/tracker.conf
echo "#not set (empty) means run by the group of current user" >> ./conf/tracker.conf
echo "run_by_group=" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "#unix username to run this program," >> ./conf/tracker.conf
echo "#not set (empty) means run by current user" >> ./conf/tracker.conf
echo "run_by_user=" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# allow_hosts can ocur more than once, host can be hostname or ip address," >> ./conf/tracker.conf
echo "# "*" (only one asterisk) means match all ip addresses" >> ./conf/tracker.conf
echo "# we can use CIDR ips like 192.168.5.64/26" >> ./conf/tracker.conf
echo "# and also use range like these: 10.0.1.[0-254] and host[01-08,20-25].domain.com" >> ./conf/tracker.conf
echo "# for example:" >> ./conf/tracker.conf
echo "# allow_hosts=10.0.1.[1-15,20]" >> ./conf/tracker.conf
echo "# allow_hosts=host[01-08,20-25].domain.com" >> ./conf/tracker.conf
echo "# allow_hosts=192.168.5.64/26" >> ./conf/tracker.conf
echo "allow_hosts=*" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# sync log buff to disk every interval seconds" >> ./conf/tracker.conf
echo "# default value is 10 seconds" >> ./conf/tracker.conf
echo "sync_log_buff_interval = 10" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# check storage server alive interval seconds" >> ./conf/tracker.conf
echo "check_active_interval = 120" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# thread stack size, should >= 64KB" >> ./conf/tracker.conf
echo "# default value is 64KB" >> ./conf/tracker.conf
echo "thread_stack_size = 64KB" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# auto adjust when the ip address of the storage server changed" >> ./conf/tracker.conf
echo "# default value is true" >> ./conf/tracker.conf
echo "storage_ip_changed_auto_adjust = true" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# storage sync file max delay seconds" >> ./conf/tracker.conf
echo "# default value is 86400 seconds (one day)" >> ./conf/tracker.conf
echo "# since V2.00" >> ./conf/tracker.conf
echo "storage_sync_file_max_delay = 86400" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# the max time of storage sync a file" >> ./conf/tracker.conf
echo "# default value is 300 seconds" >> ./conf/tracker.conf
echo "# since V2.00" >> ./conf/tracker.conf
echo "storage_sync_file_max_time = 300" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# if use a trunk file to store several small files" >> ./conf/tracker.conf
echo "# default value is false" >> ./conf/tracker.conf
echo "# since V3.00" >> ./conf/tracker.conf
echo "use_trunk_file = false" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# the min slot size, should <= 4KB" >> ./conf/tracker.conf
echo "# default value is 256 bytes" >> ./conf/tracker.conf
echo "# since V3.00" >> ./conf/tracker.conf
echo "slot_min_size = 256" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# the max slot size, should > slot_min_size" >> ./conf/tracker.conf
echo "# store the upload file to trunk file when it's size <= this value" >> ./conf/tracker.conf
echo "# default value is 16MB" >> ./conf/tracker.conf
echo "# since V3.00" >> ./conf/tracker.conf
echo "slot_max_size = 16MB" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# the trunk file size, should >= 4MB" >> ./conf/tracker.conf
echo "# default value is 64MB" >> ./conf/tracker.conf
echo "# since V3.00" >> ./conf/tracker.conf
echo "trunk_file_size = 64MB" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# if create trunk file advancely" >> ./conf/tracker.conf
echo "# default value is false" >> ./conf/tracker.conf
echo "# since V3.06" >> ./conf/tracker.conf
echo "trunk_create_file_advance = false" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# the time base to create trunk file" >> ./conf/tracker.conf
echo "# the time format: HH:MM" >> ./conf/tracker.conf
echo "# default value is 02:00" >> ./conf/tracker.conf
echo "# since V3.06" >> ./conf/tracker.conf
echo "trunk_create_file_time_base = 02:00" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# the interval of create trunk file, unit: second" >> ./conf/tracker.conf
echo "# default value is 38400 (one day)" >> ./conf/tracker.conf
echo "# since V3.06" >> ./conf/tracker.conf
echo "trunk_create_file_interval = 86400" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# the threshold to create trunk file" >> ./conf/tracker.conf
echo "# when the free trunk file size less than the threshold, will create" >> ./conf/tracker.conf
echo "# the trunk files" >> ./conf/tracker.conf
echo "# default value is 0" >> ./conf/tracker.conf
echo "# since V3.06" >> ./conf/tracker.conf
echo "trunk_create_file_space_threshold = 20G" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# if check trunk space occupying when loading trunk free spaces" >> ./conf/tracker.conf
echo "# the occupied spaces will be ignored" >> ./conf/tracker.conf
echo "# default value is false" >> ./conf/tracker.conf
echo "# since V3.09" >> ./conf/tracker.conf
echo "# NOTICE: set this parameter to true will slow the loading of trunk spaces" >> ./conf/tracker.conf
echo "# when startup. you should set this parameter to true when neccessary." >> ./conf/tracker.conf
echo "trunk_init_check_occupying = false" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# if ignore storage_trunk.dat, reload from trunk binlog" >> ./conf/tracker.conf
echo "# default value is false" >> ./conf/tracker.conf
echo "# since V3.10" >> ./conf/tracker.conf
echo "# set to true once for version upgrade when your version less than V3.10" >> ./conf/tracker.conf
echo "trunk_init_reload_from_binlog = false" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# the min interval for compressing the trunk binlog file" >> ./conf/tracker.conf
echo "# unit: second" >> ./conf/tracker.conf
echo "# default value is 0, 0 means never compress" >> ./conf/tracker.conf
echo "# FastDFS compress the trunk binlog when trunk init and trunk destroy" >> ./conf/tracker.conf
echo "# recommand to set this parameter to 86400 (one day)" >> ./conf/tracker.conf
echo "# since V5.01" >> ./conf/tracker.conf
echo "trunk_compress_binlog_min_interval = 0" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# if use storage ID instead of IP address" >> ./conf/tracker.conf
echo "# default value is false" >> ./conf/tracker.conf
echo "# since V4.00" >> ./conf/tracker.conf
echo "use_storage_id = false" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# specify storage ids filename, can use relative or absolute path" >> ./conf/tracker.conf
echo "# since V4.00" >> ./conf/tracker.conf
echo "storage_ids_filename = storage_ids.conf" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# id type of the storage server in the filename, values are:" >> ./conf/tracker.conf
echo "## ip: the ip address of the storage server" >> ./conf/tracker.conf
echo "## id: the server id of the storage server" >> ./conf/tracker.conf
echo "# this paramter is valid only when use_storage_id set to true" >> ./conf/tracker.conf
echo "# default value is ip" >> ./conf/tracker.conf
echo "# since V4.03" >> ./conf/tracker.conf
echo "id_type_in_filename = ip" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# if store slave file use symbol link" >> ./conf/tracker.conf
echo "# default value is false" >> ./conf/tracker.conf
echo "# since V4.01" >> ./conf/tracker.conf
echo "store_slave_file_use_link = false" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# if rotate the error log every day" >> ./conf/tracker.conf
echo "# default value is false" >> ./conf/tracker.conf
echo "# since V4.02" >> ./conf/tracker.conf
echo "rotate_error_log = false" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# rotate error log time base, time format: Hour:Minute" >> ./conf/tracker.conf
echo "# Hour from 0 to 23, Minute from 0 to 59" >> ./conf/tracker.conf
echo "# default value is 00:00" >> ./conf/tracker.conf
echo "# since V4.02" >> ./conf/tracker.conf
echo "error_log_rotate_time=00:00" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# rotate error log when the log file exceeds this size" >> ./conf/tracker.conf
echo "# 0 means never rotates log file by log file size" >> ./conf/tracker.conf
echo "# default value is 0" >> ./conf/tracker.conf
echo "# since V4.02" >> ./conf/tracker.conf
echo "rotate_error_log_size = 0" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# keep days of the log files" >> ./conf/tracker.conf
echo "# 0 means do not delete old log files" >> ./conf/tracker.conf
echo "# default value is 0" >> ./conf/tracker.conf
echo "log_file_keep_days = 0" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# if use connection pool" >> ./conf/tracker.conf
echo "# default value is false" >> ./conf/tracker.conf
echo "# since V4.05" >> ./conf/tracker.conf
echo "use_connection_pool = false" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# connections whose the idle time exceeds this time will be closed" >> ./conf/tracker.conf
echo "# unit: second" >> ./conf/tracker.conf
echo "# default value is 3600" >> ./conf/tracker.conf
echo "# since V4.05" >> ./conf/tracker.conf
echo "connection_pool_max_idle_time = 3600" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# HTTP port on this tracker server" >> ./conf/tracker.conf
echo "http.server_port=8080" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# check storage HTTP server alive interval seconds" >> ./conf/tracker.conf
echo "# <= 0 for never check" >> ./conf/tracker.conf
echo "# default value is 30" >> ./conf/tracker.conf
echo "http.check_alive_interval=30" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# check storage HTTP server alive type, values are:" >> ./conf/tracker.conf
echo "# tcp : connect to the storge server with HTTP port only," >> ./conf/tracker.conf
echo "# do not request and get response" >> ./conf/tracker.conf
echo "# http: storage check alive url must return http status 200" >> ./conf/tracker.conf
echo "# default value is tcp" >> ./conf/tracker.conf
echo "http.check_alive_type=tcp" >> ./conf/tracker.conf
echo "" >> ./conf/tracker.conf
echo "# check storage HTTP server alive uri/url" >> ./conf/tracker.conf
echo "# NOTE: storage embed HTTP server support uri: /status.html" >> ./conf/tracker.conf
echo "http.check_alive_uri=/status.html" >> ./conf/tracker.conf
# 移动 配置文件
cat ./conf/tracker.conf > /etc/fdfs/tracker.conf
mkdir -p /home/dfs/logs
echo 'start tracker ' > /home/dfs/logs/trackerd.log
# start
/etc/init.d/fdfs_trackerd start
# cat log
tail -f /home/dfs/logs/trackerd.log

View File

@ -1,42 +0,0 @@
# centos 7
FROM centos
# 添加配置文件
# add profiles
ADD conf/client.conf /etc/fdfs/
ADD conf/http.conf /etc/fdfs/
ADD conf/mime.types /etc/fdfs/
ADD conf/storage.conf /etc/fdfs/
ADD conf/tracker.conf /etc/fdfs/
ADD fastdfs.sh /home
ADD conf/nginx.conf /etc/fdfs/
ADD conf/mod_fastdfs.conf /etc/fdfs
# 添加源文件
# add source code
ADD source/libfastcommon.tar.gz /usr/local/src/
ADD source/fastdfs.tar.gz /usr/local/src/
ADD source/fastdfs-nginx-module.tar.gz /usr/local/src/
ADD source/nginx-1.15.4.tar.gz /usr/local/src/
# Run
RUN yum install git gcc gcc-c ++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y \
&& mkdir /home/dfs \
&& cd /usr/local/src/ \
&& cd libfastcommon/ \
&& ./make.sh && ./make.sh install \
&& cd ../ \
&& cd fastdfs/ \
&& ./make.sh && ./make.sh install \
&& cd ../ \
&& cd nginx-1.15.4/ \
&& ./configure --add-module=/usr/local/src/fastdfs-nginx-module/src/ \
&& make && make install \
&& chmod +x /home/fastdfs.sh
# export config
VOLUME /etc/fdfs
EXPOSE 22122 23000 8888 80
ENTRYPOINT ["/home/fastdfs.sh"]

View File

@ -1,49 +0,0 @@
# FastDFS Dockerfile local (本地版本)
## 声明
其实并没什么区别 教程是在上一位huayanYu(小锅盖)和 Wiki的作者 的基础上进行了一些修改本质上还是huayanYu(小锅盖) 和 Wiki 上的作者写的教程
## 目录介绍
### conf
Dockerfile 所需要的一些配置文件
当然你也可以对这些文件进行一些修改 比如 storage.conf 里面的 bast_path 等相关
### source
FastDFS 所需要的一些需要从网上下载的包(包括 FastDFS 本身) ,因为天朝网络原因 导致 build 镜像的时候各种出错
所以干脆提前下载下来了 .
## 使用方法
需要注意的是 你需要在运行容器的时候制定宿主机的ip 用参数 FASTDFS_IPADDR 来指定
下面有一条docker run 的示例指令
```
docker run -d -e FASTDFS_IPADDR=192.168.1.234 -p 8888:8888 -p 22122:22122 -p 23000:23000 -p 8011:80 --name test-fast 镜像id/镜像名称
```
## 后记
本质上 local 版本与 network 版本无区别
## Statement
In fact, there is no difference between the tutorials written by Huayan Yu and Wiki on the basis of their previous authors. In essence, they are also tutorials written by the authors of Huayan Yu and Wiki.
## Catalogue introduction
### conf
Dockerfile Some configuration files needed
Of course, you can also make some modifications to these files, such as bast_path in storage. conf, etc.
### source
FastDFS Some of the packages that need to be downloaded from the Internet (including FastDFS itself) are due to various errors in building mirrors due to the Tianchao network
So I downloaded it in advance.
## Usage method
Note that you need to specify the host IP when running the container with the parameter FASTDFS_IPADDR
Here's a sample docker run instruction
```
docker run -d -e FASTDFS_IPADDR=192.168.1.234 -p 8888:8888 -p 22122:22122 -p 23000:23000 -p 8011:80 --name test-fast 镜像id/镜像名称
```
## Epilogue
Essentially, there is no difference between the local version and the network version.

View File

@ -1,62 +0,0 @@
# 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/dfs
# tracker_server can ocur more than once, and tracker_server format is
# "host:port", host can be hostname or ip address
tracker_server=com.ikingtech.ch116221: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

View File

@ -1,29 +0,0 @@
# HTTP default content type
http.default_content_type = application/octet-stream
# MIME types mapping filename
# MIME types file format: MIME_type extensions
# such as: image/jpeg jpeg jpg jpe
# you can use apache's MIME file: mime.types
http.mime_types_filename=mime.types
# if use token to anti-steal
# default value is false (0)
http.anti_steal.check_token=false
# token TTL (time to live), seconds
# default value is 600
http.anti_steal.token_ttl=900
# secret key to generate anti-steal token
# this parameter must be set when http.anti_steal.check_token set to true
# the length of the secret key should not exceed 128 bytes
http.anti_steal.secret_key=FastDFS1234567890
# return the content of the file when check token fail
# default value is empty (no file sepecified)
http.anti_steal.token_check_fail=/home/yuqing/fastdfs/conf/anti-steal.jpg
# if support multi regions for HTTP Range
# default value is true
http.multi_range.enabed = true

File diff suppressed because it is too large Load Diff

View File

@ -1,133 +0,0 @@
# 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=/tmp
# 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=com.ikingtech.ch116221: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/dfs
#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 on this storage server
# set to 0 for single group only
# groups settings section as [group1], [group2], ..., [groupN]
# default value is 0
# since v1.14
group_count = 0
# group settings for group #1
# since v1.14
# when support multi-group on this storage server, uncomment following section
#[group1]
#group_name=group1
#storage_server_port=23000
#store_path_count=2
#store_path0=/home/yuqing/fastdfs
#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

View File

@ -1,127 +0,0 @@
#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;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
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;
#}
}
server {
listen 8888;
server_name localhost;
location ~/group[0-9]/ {
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
# 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;
# }
#}
}

View File

@ -1,287 +0,0 @@
# is this config file disabled
# false for enabled
# true for disabled
disabled=false
# the name of the group this storage server belongs to
#
# comment or remove this item for fetching from tracker server,
# in this case, use_storage_id must set to true in tracker.conf,
# and storage_ids.conf must be configed correctly.
group_name=group1
# bind an address of this host
# empty for bind all addresses of this host
bind_addr=
# 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=10
# 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/dfs
# max concurrent connections the server supported
# default value is 256
# more max_connections means more memory will be used
# you should set this parameter larger, eg. 10240
max_connections=1024
# 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/dfs
#store_path1=/home/dfs2
# 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=com.ikingtech.ch116221: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,
# "*" (only one asterisk) means match all ip addresses
# we can use CIDR ips like 192.168.5.64/26
# and also use range like these: 10.0.1.[0-254] and 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=192.168.5.64/26
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
# keep days of the log files
# 0 means do not delete old log files
# default value is 0
log_file_keep_days = 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

View File

@ -1,278 +0,0 @@
# 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=
# the tracker server port
port=22122
# connect timeout in seconds
# default value is 30s
connect_timeout=10
# network timeout in seconds
# default value is 30s
network_timeout=60
# the base path to store data and log files
base_path=/home/dfs
# max concurrent connections this server supported
# you should set this parameter larger, eg. 102400
max_connections=1024
# 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
# min buff size
# default value 8KB
min_buff_size = 8KB
# max buff size
# default value 128KB
max_buff_size = 128KB
# 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=2
# which group to upload file
# when store_lookup set to 1, must set store_group to the group name
store_group=group2
# 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)
# Note: if use_trunk_file set to true, must set store_server to 1 or 2
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 = 1%
#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,
# "*" (only one asterisk) means match all ip addresses
# we can use CIDR ips like 192.168.5.64/26
# and also use range like these: 10.0.1.[0-254] and 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=192.168.5.64/26
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 = false
# 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
# keep days of the log files
# 0 means do not delete old log files
# default value is 0
log_file_keep_days = 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
# 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

View File

@ -1,26 +0,0 @@
#!/bin/bash
new_val=$FASTDFS_IPADDR
old="com.ikingtech.ch116221"
sed -i "s/$old/$new_val/g" /etc/fdfs/client.conf
sed -i "s/$old/$new_val/g" /etc/fdfs/storage.conf
sed -i "s/$old/$new_val/g" /etc/fdfs/mod_fastdfs.conf
cat /etc/fdfs/client.conf > /etc/fdfs/client.txt
cat /etc/fdfs/storage.conf > /etc/fdfs/storage.txt
cat /etc/fdfs/mod_fastdfs.conf > /etc/fdfs/mod_fastdfs.txt
mv /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.t
cp /etc/fdfs/nginx.conf /usr/local/nginx/conf
echo "start trackerd"
/etc/init.d/fdfs_trackerd start
echo "start storage"
/etc/init.d/fdfs_storaged start
echo "start nginx"
/usr/local/nginx/sbin/nginx
tail -f /dev/null

View File

@ -1,8 +1,10 @@
# FastDFS Dockerfile network (网络版本)
# FastDFS Docker Simple
## 声明
其实并没什么区别 教程是在上一位huayanYu(小锅盖)和 Wiki的作者 的基础上进行了一些修改本质上还是huayanYu(小锅盖) 和 Wiki 上的作者写的教程
## 概述
适用于开发环境的 轻量级 Docker 镜像
## 目录介绍
### conf