FastDFS-27集群架构Tracker整合Nginx

  • 配置列表清单
    主机名IP地址用途
    tracker_group1192.168.47.203tracker服务器group1
    tracker_group2192.168.47.204tracker服务器group2
ngx_cache_purge作用
安装Nginx
  • 创建用户www来启动执行nginx进程

    useradd www
    
  • 安装编译所需的依赖包

    yum install gcc gcc-c++ make automake autoconf libtool pcre* zlib openssl openssl-devel
    
  • nginx编译添加ngx_cache_purge模块
    cd nginx-1.17.1

     ./configure     --user=www    --group=www     --prefix=/application/nginx-1.15.2     --with-http_ssl_module     --with-http_gzip_static_module  --with-http_stub_status_module  --add-module=/root/ngx_cache_purge-master
    

    编译参数可根据实际情况而配置,只需要在编译的时候添加ngx_cache_purge module模块即可

  • 安装

    make && make install
    
  • 软链接

    ln -s /application/nginx-1.15.2   /application/nginx 
    
  • 配置nginx负载均衡和缓存

    user  root;
    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;
    	use epoll;
    }
    
    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  65;
    
    	#gzip  on;
    	server_names_hash_bucket_size 128;
    	client_header_buffer_size 32k;
    	large_client_header_buffers 4 32k;
    	client_max_body_size 300m;
    
    	proxy_redirect off;
    	proxy_set_header Host $http_host;
    	proxy_set_header X-Real-IP $remote_addr;
    	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    	proxy_connect_timeout 90;
    	proxy_send_timeout 90;
    	proxy_read_timeout 90;
    	proxy_buffer_size 16k;
    	proxy_buffers 4 64k;
    	proxy_busy_buffers_size 128k;
    	proxy_temp_file_write_size 128k;
    	proxy_cache_path /fastdfs/cache/nginx/proxy_cache levels=1:2
    	keys_zone=http-cache:200m max_size=1g inactive=30d;
    	proxy_temp_path /fastdfs/cache/nginx/proxy_cache/tmp;
    
    	upstream fdfs_group1 {
        	server 192.168.47.205:8888 weight=1 max_fails=2 fail_timeout=30s;
         	server 192.168.47.206:8888 weight=1 max_fails=2 fail_timeout=30s;
    	}
     
    	upstream fdfs_group2 {
         	server 192.168.47.207:8888 weight=1 max_fails=2 fail_timeout=30s;
         	server 192.168.47.208:8888 weight=1 max_fails=2 fail_timeout=30s;
    	}
    
    	server {
        	listen       8000;
        	server_name  localhost;
    
        	#charset koi8-r;
    
        	#access_log  logs/host.access.log  main;
    
        	location /group1/M00 {
            	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://fdfs_group1;
            	expires 30d;
        	}
         
        	location /group2/M00 {
            	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://fdfs_group2;
            	expires 30d;
        	}
    	
        	location ~/purge(/.*) {
            	allow 127.0.0.1;
            	allow 192.168.47.0/24;
            	deny all;
            	proxy_cache_purge http-cache $1$is_args$args;
        	}    
    
        	#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;
        	}
    	}
    }
    
  • 创建缓存使用目录

    mkdir -p /fastdfs/cache/nginx/proxy_cache
    mkdir -p /fastdfs/cache/nginx/proxy_cache/tmp
    
  • 防火墙开启8000端口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BT中的Tracker 是指运行于服务器上的一个程序,这个程序能够追踪到底有多少人同时在下载同一个文件。 客户端连上tracker服务器,就会获得一个下载人员的名单,根据这个,BT会自动连上别人的机器进行下载。它是提供bt的服务器。把文件用bt发布出来的人需要知道该使用哪个服务器来为要发布的文件提供tracker。由于不指定服务器,BitTorrent采用BT文件来确定下载源。 BT中的Tracker 是指运行于服务器上的一个程序,这个程序能够追踪到底有多少人同时在下载同一个文件。 客户端连上tracker服务器,就会获得一个下载人员的名单,根据这个,BT会自动连上别人的机器进行下载。它是提供bt的服务器。把文件用bt发布出来的人需要知道该使用哪个服务器来为要发布的文件提供tracker。由于不指定服务器,BitTorrent采用BT文件来确定下载源。 tracker服务器是BT下载中必须的角色。一个BTclient在下载开始以及下载进行的过程中,要不停的与tracker服务器进行通信,以报告自己的信息,并获取其它下载client的信息。这种通信是通过HTTP协议进行的,又被称为tracker HTTP协议,它的过程是这样的: client向tracker发一个HTTP的GET请求,并把它自己的信息放在GET的参数中;这个请求的大致意思是:我是xxx(一个唯一的id),我想下载yyy文件,我的ip是aaa,我用的端口是bbb。。。 tracker对所有下载者的信息进行维护,当它收到一个请求后,首先把对方的信息记录下来(如果已经记录在案,那么就检查是否需要更新),然后将一部分(并非全部,根据设置的参数已经下载者的请求)参与下载同一个文件(一个tracker服务器可能同时维护多个文件的下载)的下载者的信息返回给对方。 Client在收到tracker的响应后,就能获取其它下载者的信息,那么它就可以根据这些信息,与其它下载者建立连接,从它们那里下载文件片断。 tracker服务器架设 BitTorrent Tracker是一个高性能增强型BitTorrent服务器。BitTorrent Tracker同时支持HTTP和UDP的Tracker协议,采用高性能服务器技术, 支持多端口同时监听,数据更新插件。BitTorrent Tracker通过了8万个文件和80万个在线用户的高强度测试。用户可根据需要自行改写数据库通信插件, 打造属于自己的服务器, 配合服务器端脚本可实现一个功能完备的BT服务器。   架设好后,您的tracker服务器地址格式为   外网ip:端口/announce

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值