Nginx负载均衡实战
前面介绍了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端口。
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.2dan.cc;
if ($invalid_referer) {
return 403;
}
expires 365d;
}
location ~ \.mp4$ {
mp4;
valid_referers none blocked www.2dan.cc;
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 Range $http_range;
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目录下放一个 2dan.txt, WEB2不放,那么。当我访问http://209.141.54.64 的时候,多次刷新,有时就会404,有时候返回正常页面,这就表示成功了。
这个能运用到window平台吗?
可以的,nginx配置文件是一样的