Nginx负载均衡实战

时间:5年前   阅读:6230

前面介绍了Nginx搭建flv、mp4流媒体服务器,随着流量的上升,单台服务器已经无法支撑,所以就用到了负载均衡。

系统环境:
Centos 6.5 x86_64
Nginx 1.7.7

均衡负载服务器: 209.141.54.64:80
Web1: 209.141.54.65:80
Web2: 209.141.54.66:80
Web3: 209.141.54.64:8080

Web1 Web2 和 Web3 都是已经搭建好的流媒体服务器,Web3同时做为负载均衡和Web服务器使用,负载均衡使用的端口是80,Web服务使用的是8080端口。 <!--more-->

Nginx配置文件示例:

user www www;
worker_processes auto;
error_log /dev/null;
pid /usr/local/nginx/logs/nginx.pid;

events {
    use epoll;
    worker_connections 65535;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    
    access_log off;
    sendfile on;

    keepalive_timeout 65;
    gzip on;
    
    upstream homeway {
        # ip hash主要是对ip处理下,让下次访问时候,还是访问当前服务器,这样就不会导致session丢失
        ip_hash;
        # weight权重,配置访问概率
        server 209.141.54.65:80 weight=10;
        server 209.141.54.66:80 weight=5;
        server 209.141.54.64:8080 weight=5;
    }
    server {
        listen 8080;
        server_name 209.141.54.64;
        index index.html index.htm;
        root /home/html;
        limit_rate_after 10m;
        limit_rate 100k;
        charset utf-8;
        
        location ~ \.flv {
            flv;
            valid_referers none blocked www.qiquanji.com; 
              if ($invalid_referer) {
                  return 403;
             }
             expires      365d;
        }

        location ~ \.mp4$ {
                 mp4;
                 valid_referers none blocked www.qiquanji.com; 
              if ($invalid_referer) {
                  return 403;
             }
             expires      365d;
        }
    }
    server {
        listen       80;
        server_name  209.141.54.64;
        
        location / {
            proxy_pass http://homeway;
            proxy_redirect off;    
            proxy_set_header Host $host;    
            proxy_set_header X-Real-IP $remote_addr;    
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    
            client_max_body_size 10m;    
            client_body_buffer_size 128k;    
            proxy_connect_timeout 90;    
            proxy_send_timeout 90;    
            proxy_read_timeout 90;    
            proxy_buffer_size 4k;    
            proxy_buffers 4 32k;    
            proxy_busy_buffers_size 64k;    
            proxy_temp_file_write_size 64k;
        }
    }
}

搞定了,确定WEB1,WEB2,WEB3可以正常访问就行了。

这样,假设,我在WEB1的web目录下放一个 qiquanji.txt, WEB2不放,那么。当我访问http://209.141.54.64 的时候,多次刷新,有时就会404,有时候返回正常页面,这就表示成功了。

本站声明:网站内容来源于网络,如有侵权,请联系我们https://www.qiquanji.com,我们将及时处理。

微信扫码关注

更新实时通知

上一篇:Crontab每隔5分钟执行一次任务的写法

下一篇:nginx限制总带宽之nginx_limit_speed_module

网友评论

请先 登录 再评论,若不是会员请先 注册