一、在 tracker 服务器上安装 nginx
说明:在每个tracker上安装nginx的只要目的是做负载均衡及实现高可用,如果只有一台tracker服务器,则可以不配置nginx
二、在 storage 服务器上安装nginx
1、安装 fastdfs-nginx-module
(1)、上传 fastdfs-nginx-module_v1.16.tar.gz,并解压
(2)、修改 fastdfs-nginx-module\src 下的 config 文件,去掉local
(3)、将 fastdfs-nginx-module\src 下的mod_fastdfs.conf 拷贝至 /etc/fdfs下
[root@localhost src]# cp mod_fastdfs.conf /etc/fdfs/
(4)、修改mod_fastdfs.conf配置文件
# the base path to store log files
base_path=/usr/local/fastdfs/storage
# valid only when load_fdfs_parameters_from_tracker is true
tracker_server=192.168.200.132:22122
# url中是否包含group名称
url_have_group_name = true
# 指定文件存储路径,访问时使用该路径
store_path0=/usr/local/fastdfs/storage
(5)、将 libfdfsclient.so 拷贝至 /usr/lib 下
[root@localhost fdfs]# cp /usr/lib64/libfastcommon.so /usr/lib
(6)、创建 nginx/client 目录
[root@localhost fdfs]# cp /usr/lib64/libfastcommon.so /usr/lib
2、安装nginx
(1)、安装第三方软件包括:PCRE,ZLIB、OPENSSL (参考nginx学习笔记)
(2)、上传nginx-1.8.0.tar.gz,并解压缩
(3)、进入nginx-1.8.0目录,执行 configure 配置
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/root/fastdfs-nginx-module/src
(4)、编译安装
(5)、修改nginx.conf配置文件
说明:
location /group1/M00/:请求uri以 /group1/M00/ 开头的请求,才会正常使用 nginx 模块
ngx_fastdfs_module下载访问图片。
(6)、创建临时目录
[root@localhost conf]# mkdir /var/temp/nginx-p
(7)、启动nginx
三、tracker.conf详解
1、基本配置
disable
#key:配置是否生效
#valu:true、false
disable=false
bind_addr
#key:绑定IP
#valu:IP地址
bind_addr=192.168.6.102
port
#key:服务端口
#valu:端口整数值
port=22122
connect_timeout
#key:连接超时
#valu:秒单位正整数值
connect_timeout=30
network_timeout
#key:网络超时
#valu:秒单位正整数值
network_timeout=60
base_path
#key:Tracker数据/日志目录地址
#valu:路径
base_path=/home/michael/fdfs/base4tracker
max_connections
#key:最大连接数
#valu:正整数值
max_connections=256
work_threads
#key:线程数,通常设置CPU数
#valu:正整数值
work_threads=4
store_lookup
#key:上传文件的选组方式。
#valu:0、1或2。
# 0:表示轮询
# 1:表示指定组
# 2:表示存储负载均衡(选择剩余空间最大的组)
store_lookup=2
store_group
#key:指定上传的组,如果在应用层指定了具体的组,那么这个参数将不会起效。另外如果store_lookup如果是0或2,则此参数无效。
#valu:group1等
store_group=group1
store_server
#key:上传服务器的选择方式。(一个文件被上传后,这个storage server就相当于这个文件的storage server源,会对同组的storage server推送这个文件达到同步效果)
#valu:0、1或2
# 0: 轮询方式(默认)
# 1: 根据ip 地址进行排序选择第一个服务器(IP地址最小者)
# 2: 根据优先级进行排序(上传优先级由storage server来设置,参数名为upload_priority),优先级值越小优先级越高。
store_server=0
store_path
#key:上传路径的选择方式。storage server可以有多个存放文件的base path(可以理解为多个磁盘)。
#valu:
# 0: 轮流方式,多个目录依次存放文件
# 2: 存储负载均衡。选择剩余空间最大的目录存放文件(注意:剩余磁盘空间是动态的,因此存储到的目录或磁盘可能也是变化的)
store_path=0
download_server
#key:下载服务器的选择方式。
#valu:
# 0:轮询(默认)
# 1:IP最小者
# 2:优先级排序(值最小的,优先级最高。)
download_server=0
reserved_storage_space
#key:保留空间值。如果某个组中的某个服务器的剩余自由空间小于设定值,则文件不会被上传到这个组。
#valu:
# G or g for gigabyte
# M or m for megabyte
# K or k for kilobyte
reserved_storage_space=1GB
log_level
#key:日志级别
#valu:
# emerg for emergency
# alert
# crit for critical
# error
# warn for warning
# notice
# info for information
# debug for debugging
log_level=info
run_by_group / run_by_user
#key:指定运行该程序的用户组
#valu:用户组名或空
run_by_group=
#key:
#valu:
run_by_user=
allow_hosts
#key:可以连接到tracker server的ip范围。可设定多个值。
#valu
allow_hosts=
check_active_interval
#key:检测 storage server 存活的时间隔,单位为秒。
# storage server定期向tracker server 发心跳,
# 如果tracker server在一个check_active_interval内还没有收到storage server的一次心跳,
# 那边将认为该storage server已经下线。所以本参数值必须大于storage server配置的心跳时间间隔。
# 通常配置为storage server心跳时间间隔的2倍或3倍。
check_active_interval=120
thread_stack_size
#key:设定线程栈的大小。 线程栈越大,一个线程占用的系统资源就越多。
# 如果要启动更多的线程(V1.x对应的参数为max_connections,V2.0为work_threads),可以适当降低本参数值。
#valu:如64KB,默认值为64,tracker server线程栈不应小于64KB
thread_stack_size=64KB
storage_ip_changed_auto_adjust
#key:这个参数控制当storage server IP地址改变时,集群是否自动调整。注:只有在storage server进程重启时才完成自动调整。
#valu:true或false
storage_ip_changed_auto_adjust=true
2、同步