您的位置:首页 > 运维架构 > Nginx

FastDFS+Nginx+fastdfs-nginx-module集群搭建

2017-10-27 10:32 519 查看

一、实验环境说明 

  操作系统: Centos 6.6 x64   FastDFS 相关版本: fastdfs-5.05 fastdfs-nginx-module-v1.16 libfastcommon-v1.0.7   web 服务器软件: nginx-1.7.8   角色分配: 2 个 tracker, 地址分别为:10.1.1.243 10.1.1.244 两块磁盘   2个 group:   G1:10.1.1.245 10.1.1.246 三块磁盘   G2:10.1.1.247 10.1.1.248 三块磁盘   Client:10.1.1.249 目录规划:   /dev/sdb1 /data1 日志元数据目录   /dev/sdc1 /data2 数据目录   关闭selinux和iptables   做时间同步,最好添加定时任务   配置好yum源,推荐国内源   分区格式化磁盘并创建挂载目录进行挂载    

二、安装 libfastcommon 和 fastdfs(所有机器均安装)

1.下载所需软件(链接: https://pan.baidu.com/s/1eSvSRPg 密码: 7k66)
http {
include mime.types;
default_type application/octet-stream;
#设置主机名哈希表的表项长度默认 32|64|128
server_names_hash_bucket_size 128;
#设置请求缓冲区大小, 默认使用 client_header_buffer_size 来读取 header 值,
#如果 header 过大,会使用 large_client_header_buffers 来读取
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
#定义最大允许上传的文件大小
client_max_body_size 300m;
#开启高效文件传输模式, sendfile 指令指定 nginx 是否调用 sendfile 函数来输出文件,对于普通应用
设为 on,如果用来进行下载等应用磁盘 IO 重负载应用,可设置为 off,以平衡磁盘与网络 I/O 处理速度,
降低系统的负载。注意:如果图片显示不正常把这个改成 off
sendfile on;
# 防止网络堵塞
tcp_nopush on;
#长连接超时时间
keepalive_timeout 120;
#gzip 模块设置
gzip on; #开启 gzip 压缩输出
gzip_min_length 1k; #最小压缩文件大小
gzip_buffers 4 16k; #压缩缓冲区
gzip_http_version 1.0; #压缩版本(默认 1.1,前端如果是 squid2.5 请使用 1.0)
gzip_comp_level 2; #压缩等级(1~9)
gzip_types text/plain application/x-javascript text/css application/xml;
#压缩类型,默认就已经包含 text/html
gzip_vary on; #根据 HTTP 头来判断是否需要压缩
gzip_disable “MSIE[1-6].”#IE6 以下对 gzip 的支持不好, 在 IE6 下禁用 gzip
proxy_redirect off;
#当后端单台 web 服务器上也配置有多个虚拟主机时,需要使用该 Header 来区分反向代理哪个主
机名
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
#后端的 Web 服务器可以通过 X-Real-IP/X-Forwarded-For 获取用户真实 IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#后端服务器连接的超时时间(发起握手等候响应的超时时间)
proxy_connect_timeout 90;
#后端服务器数据回传时间(规定此时间内后端服务器必须传完所有数据)
proxy_send_timeout 90;
#等待后端服务器处理请求的时间
proxy_read_timeout 90;
#nginx 从被代理的服务器读取响应时,使用该缓冲区保存响应的开始部分,该值默认等于
proxy_buffers 设置的一块缓冲区大小,但可以被设置更小
proxy_buffer_size 16k;
#为每个连接设置缓冲区的数量为 number,每块缓冲区的大小为 size,用于保存从被
代理服务器读取的响应
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
#在开启缓冲后端服务器响应到临时文件的功能后,设置 nginx 每次写数据到临时文件的 size(大
小)限制
proxy_temp_file_write_size 128k;
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 /usr/local/nginx/access.log main;
#设置缓存存储路径、存储方式、分配内存大小、磁盘最大空间、缓存期限
proxy_cache_path /var/cache/nginx/proxy_cache levels=1:2 keys_zone=http-cache:500m
max_size=10g inactive=30d;
proxy_temp_path /var/cache/nginx/proxy_cache/tmp;
upstream group1 {
server 10.1.1.245:80;
server 10.1.1.246:80;
}
upstream group2 {
server 10.1.1.247:80;
server10.1.1.248:80;
}
server {
listen 80;
server_name 10.1.1.249;
location /G1/M00 { #设置 group1 的负载均衡参数
#如果后端的服务器返回 502、 504、执行超时等错误,自动将请求转发到 upstream 负载均衡池中
的另一台服务器,实现故障转移
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_cache http-cache;
proxy_cache_valid 200 304 12h;
proxy_cache_key $uri$is_args$args;
proxy_pass http://group1;
expires 30d;
}
location ~* /G2/(M00|M01) { #设置 group2 的负载均衡参数
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_cache http-cache;
proxy_cache_valid 200 304 12h;
proxy_cache_key $uri$is_args$args;
proxy_pass http://group2;
expires 30d;
}
}
View Code

 

 

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: