如果网站流量变大,就想加服务器分担压力,当然就要用到负载均衡,在windows 2003有自带的网络负载均衡,但配置还是挺麻烦的虽然有轮训和iphash的效果,但效果不算好.
nginx小巧,下载不到1m,容易配置,性能也很可观。简单说一下nginx的简单负载均衡。
1、下载nginx,http://nginx.org/,注意下载windows版本,解压
2、修改conf文件夹下面的nginx.conf文件,加入下面代码
upstream www.zds.name{
server 192.168.1.220:80;//要负载的机器列表
server 192.168.1.221:80;
}
server {//默认则有,可以修改端口,和运行nginx服务器ip,可以和web同一机器
listen 80;
server_name 192.168.1.250;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://www.zds.name;
proxy_redirect default;
}
3、运行nginx,最好在cmd下运行,先cd到nginx目录,然后支持nginx.exe,这样可以方便查看到启动的错误,当然也可以在log下查看,常常错误都是 [emerg] bind() to 0.0.0.0:80 failed (10013: An attempt was ma什么的,因为端口占用了(IIS),可以修改端口。
4、在上面要负载的机器上配置站点,主机头www.zds.name,到此就完成了。下面说一下负载的几种方式
nginx 的 upstream目前支持几种方式的分配
1)、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2)、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
2)、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定(同一ip)访问一个后端服务器,可以解决session的问题。可参考 asp.net多域名多服务器共享session,实现单点登陆
3)、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
上面只是最简单的用法,可以将做负载的nginx放在linux上运行,性能会高一些,以后有时间继续研究。。。