FastDFS-分布式存储集群-部署


目录
  • 1、服务器信息(centos7.6)
  • 2、安装依赖
  • 3、准备FastDFS所需的各种安装包
  • 4、将所有包放在服务器指定位置
  • 5、编译
  • 6、FastDFS配置修改
  • 7、安装nginx
  • 8、DMZ区nginx配置

1、服务器信息(centos7.6)

主机 功能 IP
DMZ区Nginx 代理 10.22.86.201
FastDFS01 存储服务 10.22.86.49
FastDFS02 存储服务 10.22.86.50
  • 在FastDFS01与FastDFS02均需进行相同操作

2、安装依赖

yum -y install gcc
yum -y install libevent
yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel

3、准备FastDFS所需的各种安装包

libfastcommon-master.zip
FastDFS_v5.08.tar.gz
fastdfs-nginx-module_v1.16.tar.gz
nginx-1.16.1.tar.gz
百度网盘:https://pan.baidu.com/s/18zaQrrAPtJ9-R6VgB3ZVEQ
提取码:fdfs

4、将所有包放在服务器指定位置

[root@localhost file]# pwd
/data/file
[root@localhost file]# ls 
fastdfs-nginx-module_v1.16.tar.gz  FastDFS_v5.08.tar.gz    libfastcommon-master.zip  nginx-1.16.1.tar.gz

5、编译

cd /data/file
unzip libfastcommon-master.zip
cd libfastcommon-master
./make.sh 
./make.sh install
cd /data/file
tar -zxvf FastDFS_v5.08.tar.gz -C /data
cd /data/FastDFS
./make.sh 
./make.sh install
[root@FastDFS01 file]# ll /etc/init.d/ | grep fdfs
-rwxr-xr-x 1 root root   918 Nov 23 16:07 fdfs_storaged
-rwxr-xr-x 1 root root   920 Nov 23 16:07 fdfs_trackerd

6、FastDFS配置修改

cd /etc/fdfs/
cp tracker.conf.sample tracker.conf
[root@FastDFS01 file]# cat /etc/fdfs/tracker.conf | grep -v '#\|^$'
# 启用配置文件
disabled=false
bind_addr=
# tracker的端口号,一般采用 22122 这个默认端口
port=22122
connect_timeout=30
network_timeout=60
# tracker 的数据文件和日志目录
base_path=/data/fdfs
max_connections=256
accept_threads=1
work_threads=4
store_lookup=2
store_group=group2
store_server=0
store_path=0
download_server=0
reserved_storage_space = 10%
log_level=info
run_by_group=
run_by_user=
allow_hosts=*
sync_log_buff_interval = 10
check_active_interval = 120
thread_stack_size = 64KB
storage_ip_changed_auto_adjust = true
storage_sync_file_max_delay = 86400
storage_sync_file_max_time = 300
use_trunk_file = false 
slot_min_size = 256
slot_max_size = 16MB
trunk_file_size = 64MB
trunk_create_file_advance = false
trunk_create_file_time_base = 02:00
trunk_create_file_interval = 86400
trunk_create_file_space_threshold = 20G
trunk_init_check_occupying = false
trunk_init_reload_from_binlog = false
trunk_compress_binlog_min_interval = 0
use_storage_id = false
storage_ids_filename = storage_ids.conf
id_type_in_filename = ip
store_slave_file_use_link = false
rotate_error_log = false
error_log_rotate_time=00:00
rotate_error_log_size = 0
log_file_keep_days = 0
use_connection_pool = false
connection_pool_max_idle_time = 3600
http.server_port=8080
http.check_alive_interval=30
http.check_alive_type=tcp
http.check_alive_uri=/status.html
mkdir -p /data/fdfs
# 启动服务
/etc/init.d/fdfs_trackerd start
# 查询服务是否启动
lsof -i:22122
cd /etc/fdfs/
cp storage.conf.sample storage.conf
# 启用配置文件
disabled=false
# 组名(第一组为 group1,第二组为 group2)
group_name=group1
bind_addr=
client_bind=true
# storage 的端口号,同一个组的 storage 端口号必须相同
port=23000
connect_timeout=30
network_timeout=60
heart_beat_interval=30
stat_report_interval=60
# 设置 storage 的日志目录
base_path=/data/fdfs/upload
max_connections=256
buff_size = 256KB
accept_threads=1
work_threads=4
disk_rw_separated = true
disk_reader_threads = 1
disk_writer_threads = 1
sync_wait_msec=50
sync_interval=0
sync_start_time=00:00
sync_end_time=23:59
write_mark_file_freq=500
# 存储路径个数,需要和 store_path 个数匹配
store_path_count=1
# 存储路径
store_path0=/data/fdfs/upload
subdir_count_per_path=256
//tracker 服务器的 IP 地址和端口
tracker_server=10.22.86.50:22122
tracker_server=10.22.86.49:22122
log_level=info
run_by_group=
run_by_user=
allow_hosts=*
file_distribute_path_mode=0
file_distribute_rotate_count=100
fsync_after_written_bytes=0
sync_log_buff_interval=10
sync_binlog_buff_interval=10
sync_stat_file_interval=300
thread_stack_size=512KB
upload_priority=10
if_alias_prefix=
check_file_duplicate=0
file_signature_method=hash
key_namespace=FastDFS
keep_alive=0
use_access_log = false
rotate_access_log = false
access_log_rotate_time=00:00
rotate_error_log = false
error_log_rotate_time=00:00
rotate_access_log_size = 0
rotate_error_log_size = 0
log_file_keep_days = 0
file_sync_skip_invalid_record=false
use_connection_pool = false
connection_pool_max_idle_time = 3600
http.domain_name=
# 设置 http 端口号
http.server_port=8888
mkdir -p /data/fdfs/upload
# 启动服务
/etc/init.d/fdfs_storaged start
# 查询服务是否启动
lsof -i:23000

7、安装nginx

cd /data/soft/fastdfs
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz -C /data


cd /data/fastdfs-nginx-module/src/
sed -i 's#/usr/local/#/usr/#g' config
cp mod_fastdfs.conf /etc/fdfs/

[root@FastDFS01 fdfs]# cat /etc/fdfs/mod_fastdfs.conf | grep -v '#\|^$'
connect_timeout=2
network_timeout=30
base_path=/data/fdfs/module
load_fdfs_parameters_from_tracker=true
storage_sync_file_max_delay = 86400
use_storage_id = false
storage_ids_filename = storage_ids.conf
tracker_server=10.22.86.49:22122
tracker_server=10.22.86.45:22122
storage_server_port=23000
group_name=group1
url_have_group_name = true
store_path_count=1
store_path0=/data/fdfs/upload/
log_level=info
log_filename=
response_mode=proxy
if_alias_prefix=
flv_support = true
flv_extension = flv
group_count = 2
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/data/fdfs/upload
[group2]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/data/fdfs/upload
cd /data/FastDFS/conf/
cp http.conf mime.types /etc/fdfs/
cd /data/file
tar -xzvf nginx-1.16.1.tar.gz -C /usr/local/
cd /usr/local/nginx-1.16.1
useradd -s /sbin/nologin -M nginx
./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=/data/fastdfs-nginx-module/src
make &&  make install
ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
mkdir /usr/local/nginx/conf/conf.d
cd /usr/local/nginx/conf/
[root@FastDFS01 conf]# cat nginx.conf | grep -v '#\|^$'
user  nginx;
worker_processes  2;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/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"';
    client_header_timeout 60;
    client_body_timeout 75;
    send_timeout 60;
    keepalive_timeout 75;
    proxy_connect_timeout 60;
    proxy_send_timeout 60;
    proxy_read_timeout 60;
    fastcgi_read_timeout 1000000;
    fastcgi_buffers 8 128k;
    access_log  /var/log/nginx/access.log  main;
    include /usr/local/nginx/conf/conf.d/*.conf;
    sendfile        on;
}
[root@FastDFS01 conf]# cd conf.d/
[root@FastDFS01 conf.d]# cat fdfs.conf 
server {
          listen       8888;
          server_name  10.22.86.49;
        # 监听域名中带有group的,交给FastDFS模块处理
          location ~/group([0-9])/ {
              ngx_fastdfs_module;
          }
          location / {
              root   html;
              index  index.html index.htm;
          }
          error_page   500 502 503 504  /50x.html;
          location = /50x.html {
              root   html;
          }
      }

8、DMZ区nginx配置

cat fdfs.conf 
upstream abc {
ip_hash;
server 10.22.86.49:8888;
server 10.22.86.50:8888;
}
server {
	listen 8055;
	server_name 10.22.86.201;
	location / {
		proxy_pass http://abc;
}
}