windows下利用nginx 做IIS负载均衡

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


你可能感兴趣的:(windows下利用nginx 做IIS负载均衡)