不管反向代理还是负载均衡,nginx都是很好的选择,因其使用方便,简单易用,从http://nginx.org/en/download.html下载一个windows的版本,解压之后,在cmd命令行定位到解压后找到nginx.exe直接使用:
start nginx
如果报错,先尝试看下IIS的80端口是不是被某个站点用了,停掉这个站点。
使用一下常用的命令方便使用:
1)重新加载配置
nginx.exe -s reload
2) 重新加载配置无效,那么杀掉nginx进程 ,再重启。
taskkill /f /t /im nginx.exe
下面我们模拟,用户请求的时候,随机访问IIS的81,82,83端口的站点,打开nginx.conf,
1) 在http节点加入:
upstream mysvr { server 127.0.0.1:81; server 127.0.0.1:82; server 127.0.0.1:83; }
#nginx 的 upstream 支持 几 种方式的分配
#1)、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
#2)、weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 跟上面样,指定了权重。
#3)、ip_hash 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
#4)、fair
#5)、url_hash #Urlhash
所以还可以这么设置:
upstream mysvr { ip_hash; #weigth参数表示权值,权值越高被分配到的几率越大 #1.down 表示单前的server暂时不参与负载 #2.weight 默认为1.weight越大,负载的权重就越大。 #3.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。 #server 127.0.0.1 down; #server 127.0.0.1 backup; server 127.0.0.1:81 weight=1; server 127.0.0.1:82 weight=2; }
这里的mysvr是与server节点的location中的proxy_pass对应,如下:
location / { proxy_pass ; root html; index index.html index.htm; }