windows下利用nginx 做IIS负载均衡

f627 9年前

如果网站流量变大,就想加服务器分担压力,当然就要用到负载均衡,在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上运行,性能会高一些,以后有时间继续研究。。。