fastdfs+nginx的安装部署

原理图:

fastdfs适用场景:

  fastdfs特别适合海量 中小文件(建议范围:4KB< file_size <500MB)为载体的在线服务。

安装系统介绍:

  CentOS6.6

安装准备软件包:

一、安装fastdfs:

[[email protected] fxh]# pwd
/home/fxh
[[email protected] fxh]# tar xf libevent-2.0.19-stable.tar.gz
[[email protected] fxh]# cd libevent-2.0.19-stable
[[email protected] libevent-2.0.19-stable]# ./configure --prefix=/usr/local/libevent
[[email protected] libevent-2.0.19-stable]# make
[[email protected] libevent-2.0.19-stable]# make install

[[email protected] ~]# cd /home/fxh/
[[email protected] fxh]# tar xf FastDFS_4.06.tar.gz
[[email protected] fxh]# tar xf FastDFS_4.06.tar.gz
[[email protected] fxh]# cd FastDFS
[[email protected] FastDFS]# ./make.sh C_INCLUDE_PATH=/usr/local/libevent/include LIBRARY_PATH=/usr/local/libevent/lib
[[email protected] FastDFS]# ./make.sh install

配置文件路径:/etc/fdfs/
tracker.conf//负责均衡调度服务器配置文件
client.conf//客户端上传配置文件
http.conf//http服务器配置文件
storage.conf//文件存储服务器配置文件
mime.types//文件类型配置文件

tracker配置文件:
[[email protected] ~]# egrep -v "^#|^$" /etc/fdfs/tracker.conf
disabled=false
bind_addr=
port=22122
connect_timeout=30
network_timeout=60
base_path=/home/data #设置base_path
max_connections=1000
work_threads=4
store_lookup=2
store_group=group1
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
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
use_connection_pool = false
connection_pool_max_idle_time = 3600
http.server_port=8080 #http 端口
http.check_alive_interval=30
http.check_alive_type=tcp
http.check_alive_uri=/status.html

创建目录:
mkdir /home/data #启动可能会报错,哪个目录没创建,看日志就好了

添加iptables规则:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT

启动tracker:
/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf

检查端口22122:
[[email protected] ~]# lsof -i :22122
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
fdfs_trac 1605 root 5u IPv4 13569 0t0 TCP *:22122 (LISTEN)
fdfs_trac 1605 root 25u IPv4 13666 0t0 TCP 10.10.168.104:22122->10.10.168.104:46410 (ESTABLISHED)
fdfs_trac 1605 root 26u IPv4 13699 0t0 TCP 10.10.168.104:22122->10.10.168.105:filenet-rmi (ESTABLISHED)
fdfs_trac 1605 root 27u IPv4 13705 0t0 TCP 10.10.168.104:22122->10.10.168.105:32781 (ESTABLISHED)
fdfs_stor 1631 root 26u IPv4 135680 0t0 TCP 10.10.168.104:41466->10.10.168.105:22122 (SYN_SENT)
fdfs_stor 1631 root 27u IPv4 13685 0t0 TCP 10.10.168.104:46410->10.10.168.104:22122 (ESTABLISHED)

storage配置文件:
[[email protected] ~]# egrep -v "^#|^$" /etc/fdfs/storage.conf
disabled=false
group_name=group1
bind_addr=
client_bind=true
port=23000
connect_timeout=30
network_timeout=60
heart_beat_interval=30
stat_report_interval=60
base_path=/home/data
max_connections=1000
buff_size = 256KB
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_count=1
store_path0=/home/data/storage
subdir_count_per_path=256
tracker_server=10.10.168.104:22122
tracker_server=10.10.168.105: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
file_sync_skip_invalid_record=false
use_connection_pool = false
connection_pool_max_idle_time = 3600
http.domain_name=
http.server_port=8888

iptables规则:
-A INPUT -m state --state NEW -m tcp -p tcp --dport23000 -j ACCEPT

启动stroage:
/usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf
#启动时会看到屏幕创建一叠的目录。

检查端口:
[[email protected] ~]# lsof -i :23000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
fdfs_stor 1631 root 5u IPv4 13670 0t0 TCP *:inovaport1 (LISTEN)
fdfs_stor 1631 root 29u IPv4 13701 0t0 TCP 10.10.168.104:inovaport1->10.10.168.105:39237 (ESTABLISHED)

如果报错libevent库找不到:
解决方法1:
find / -name libevent-2.0.so.5
ln -s /usr/local/libevent/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5
解决方法2:
find / -name libevent-2.0.so.5
[[email protected] ~]# tail -1 /etc/profile
export LD_LIBRARY_PATH=/usr/local/lib/
[[email protected] ~]# source /etc/profile

二、安装配置nginx结合fastdfs:
[[email protected] fxh]# tar xf fastdfs-nginx-module_v1.16.tar.gz
[[email protected] fxh]# tar xf nginx-1.2.0.tar.gz
[[email protected] fxh]# yum install -y pcre-devel zlib-devel
[[email protected] fxh]# cd nginx-1.2.0
[[email protected] nginx-1.2.0]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --add-module=/home/fxh/fastdfs-nginx-module/src --with-http_ssl_module
[[email protected] nginx-1.2.0]# make
[[email protected] nginx-1.2.0]# make install

修改配置文件mod_fastdfs:
[[email protected] nginx-1.2.0]# cp /home/fxh/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
[[email protected] nginx-1.2.0]# egrep -v "^#|^$" /etc/fdfs/mod_fastdfs.conf
connect_timeout=2 #
network_timeout=30
base_path=/home/data
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.10.168.104:22122
tracker_server=10.10.168.105:22122
storage_server_port=23000
group_name=group1
url_have_group_name = true
store_path_count=1
store_path0=/home/data/storage
log_level=info
log_filename=
response_mode=proxy
if_alias_prefix=
flv_support = true
flv_extension = flv
group_count = 0
/usr/local/nginx/sbin/nginx

进行文件上传测试:

修改client配置文件:
[[email protected] ~]# egrep -v "^#|^$" /etc/fdfs/client.conf
connect_timeout=30
network_timeout=60
base_path=/home/data
tracker_server=10.10.168.104:22122
tracker_server=10.10.168.105:22122
log_level=info
use_connection_pool = false
connection_pool_max_idle_time = 3600
load_fdfs_parameters_from_tracker=false
use_storage_id = false
storage_ids_filename = storage_ids.conf
http.tracker_server_port=8080

修改nginx配置文件:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
server {
listen 80;
  server_name localhost;
  #charset koi8-r;
  #access_log logs/host.access.log main;
  location /group1/M00 {
  #alias /home/data/storage/data;
  root /home/data/storage/data;
  ngx_fastdfs_module;
   }
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
    }
  }
}

修改iptables配置:
-A INPUT -m state --state NEW -m tcp -p tcp --dport80 -j ACCEPT

启动ngnx:
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx

进行测试:
[[email protected] ~]# echo "test" > test.txt
[[email protected] ~]# /usr/local/bin/fdfs_upload_file /etc/fdfs/client.conf ./test.txt
group1/M00/00/00/CgqoaFixY6SAb2xYAAAABelE2rQ054.txt
[[email protected] ~]# curl http://10.10.168.104/group1/M00/00/00/CgqoaFixY6SAb2xYAAAABelE2rQ054.txt
test

上传个图片测试:
[[email protected] 00]# pwd
/home/data/storage/data/00/00
[[email protected] 00]# ls
Cgoel1c0YxqAcDLvAAB5mpJABlg563.jpg CgqoaFixY6SAb2xYAAAABelE2rQ054.txt

时间: 2024-08-05 02:48:01

fastdfs+nginx的安装部署的相关文章

中间件-FastDFS 02软件安装部署调试,及和Nginx的集成

一.软件安装准备 由于公司统一使用ubuntu 16.04,所以一下软件安装语法和环境都是以ubuntu 为准. 软件下载需要下载 fastdfs-master.zip libfastcommon-master.zip fastdfs-nginx-module-master.zip nginx-1.8.1.tar.gz openssl-1.1.0e.tar.gz pcre-8.00.tar.gz zlib-1.2.11.tar.gz 一.FastDFS安装 前置:需要提前安装所需依赖包 apt-

Nginx详细安装部署教程

一.Nginx简介 Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡,具体简介我就不介绍了百度一下有很多,下面直接进入安装步骤 二.Nginx安装 1.下载Nginx及相关组件 Linux系统是Centos 6.5 64位,我直接切换到root用户下安装 进入用户目录下载程序 下载相关组件 [[email protected] src]# wget http://nginx.org/download/nginx-1.10.2.tar.gz 省略安装内容.

Keepalived+ nginx的安装部署

主机:IP->10.252.3.160  nginx已安装OK(省略)备机:IP->10.252.3.161  nginx已安装OK(省略)VIP:10.252.3.162 第一步:主备一起安装keepalived    yum install -y keepalived 第二步:配置/etc/keepalived/keepalived.conf主机10.252.3.160配置如下:!Configuration File for keepalivedglobal_defs{  notifica

centos 系统下安装FastDFS+nginx+fastdfs-nginx-module安装配置

前言: 以前的项目上传的文件都是保存到本地或者是局域网内的共享文件夹下,由于数据量,服务器的负载均衡(分机的某些图片无法访问的问题处理)等因素的情况下,就想到用fastdfs来文件管理,花了几天时间硬着头皮去学习怎样安装配置,由于linux基础不好,安装配置起来感觉有点费力,不得不随时去查找一些资料,好在经过这几天的努力安装配置fastdfs最终还是搞定了,最终的付出并没有白费,以下是个人的见解,如有误差,请多多指导.不了解fastdfs的童鞋可以先去了解下,请看http://tech.uc.c

CentOS6环境单服务器FastDFS+Nginx+fastdfs-nginx-module 安装配置

但因公司内部的测试fastdfs服务器有变动,所以得重新搭建,以前没有搭建过,所以折腾了两天,在网上找了许多配置文档,但问题多.最后找到了一篇搭建成功的 . 安装fastdfs 和nginx 需要的插件 yum install gettext gettext-devel libXft libXft-devel libXpm libXpm-devel automake autoconf libXtst-devel gtk+-devel gcc gcc-c++zlib-devel libpng-de

nginx的安装部署

1.安装依赖包: yum install pcre-devel zlib zlib-devel 2.下载软件 wget http://nginx.org/download/nginx-1.6.3.tar.gz 3.添加用户 useradd nginx -s /sbin/nologin -M 4.编译安装 cd /tmp/nginx-1.6.3 ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx-1.6.3  --wit

分布式文件系统 FastDFS_V4.06 安装部署

FastDFS V4.06安装部署 1.系统环境说明 部署环境 ubuntu 12.0.4 server 32位or 64位,本文以64部署做说明. 最小化系统安装,除openssh-server服务外不安装任何服务,我们的client,tracker server,storage server 用同一台物理机,iP为192.168.0.22 2.分区设置 根据部署的服务要求选择合理的分区,根据公司现有生产环境的分区划分这里做一下分区. /boot200M /        1G Swap   

CentOS 下 FastDFS _ V4.06 安装部署

CentOS 下 FastDFS _ V4.06 安装部署 CentOS系统64位x86_64 GNU/Linux 软件准备 libevent-1.4.14b-stable.tar.gz FastDFS_v4.06.tar.gz nginx-1.3.9.tar.gz fastdfs-nginx-module_v1.15.tar.gz 安装libevent 下载并安装 #cd /usr/src wget https://github.com/downloads/libevent/libevent/

Ansible + shell 实现部署fastdfs+nginx 实现图片服务器并提供动态缩放功能;

因为公司阿里服务器变动几次,手动部署了好几次fastdfs+nginx,于是就想到了自动化部署,以下为脚本内容,由于只是想把着功能实现,并未有完完整的判断逻辑: 以下为ansible-playbook及shell及模板nginx-fastdfs及动态缩略图配置; 如有错误,请不吝赐教: --- - hosts: apollo # vars: # filedest: /usr/local/ tasks: - name: prepare fastdfs-nginx-module copy: src=