nginx的负载均衡
Nginx的语法:
syntax:upstreamname{...}
default:—
context:http
Upstream对负载均衡的定义
Name标记为备份服务器
Definesagroupofservers.Serverscanlistenondifferentports.Inaddition,serverslisteningonTCPandUNIX-domainsocketscanbemixed.
Example:
upstreambackend{
serverbackend1.example.comweight=5;
server127.0.0.1:8080max_fails=3fail_timeout=30s;
serverunix:/tmp/backend3;
}
ExampleConfiguration
upstreambackend{
serverbackend1.example.comweight=5;
serverbackend2.example.com:8080;
serverunix:/tmp/backend3;
serverbackup1.example.com:8080backup;
serverbackup2.example.com:8080backup;
}
server{
location/{
proxy_passhttp://backend;
}
}
weight=number
设定服务器的权重,默认是1。
max_fails=number
设定Nginx与服务器通信的尝试失败的次数。在fail_timeout参数定义的时间段内,如果失败的次数达到此值,Nginx就认为服务器不可用。在下一个fail_timeout时间段,服务器不会再被尝试。失败的尝试次数默认是1。设为0就会停止统计尝试次数,认为服务器是一直可用的。你可以通过指令proxy_next_upstream、fastcgi_next_upstream和memcached_next_upstream来配置什么是失败的尝试。默认配置时,http_404状态不被认为是失败的尝试。
fail_timeout=time
设定
统计失败尝试次数的时间段。在这段时间中,服务器失败次数达到指定的尝试次数,服务器就被认为不可用。
服务器被认为不可用的时间段。
默认情况下,该超时时间是10秒。
backup
标记为备用服务器。当主服务器不可用以后,请求会被传给这些服务器。
举例:
Nginx作为代理服务器,为后方的两台apache服务器负载均衡,它的的前端ip地址是192.168.20.200后端ip地址192.168.30.200,server1为apache服务器ip地址为192.168.30.100它的权重为1,。Server2为apache服务器它的ip地址为192,.168.30.101,权重为2.
upstreambackend{
server192.168.30.100weight=1;
server192.168.30.101weight=2;
}
server{
location/{
proxy_passhttp://backend;
}
}
如图所示:
Server1的站点主目录下的inndex.php的内容是myweight=1
Server2的站点主目录下的inndex.php的内容是myweight=2
当访问nginx的前端地址192.168.20.200,将会被代理到server1和server2,server的权重是1,所以当用户第一次请求连接nginx时,显示的页面将是sever1站点主目录下首页的内容。Server2的权重是2,当用户第二和第三次请求连接nginx时,显示的页面将是sever,2站点主目录下首页的内容。