接上一篇博客,上一篇成功解决nginx的启动问题
现在先发布网站
一切从简,选择.net asp 空网站
添加→web窗体
前台就这一段
<div>
服务器1
</div>
然后新建三个文件夹,将网站发布到这三个文件夹
然后将文件夹NGINX2和NGINX3的内容改成服务器2,服务器3以便区分
然后将这三个文件夹发布到IIS
接下来配置nginx.conf文件
这里有三个服务器,将worker_processes 1;改为worker_processes 3;
然后在server {…}前面加这一段,weight是权重,第一个服务器承担1/2的访问量
剩下两个服务器各承担1/4访问量,全改成1就是负载均衡
upstream ngintest{
server 10.167.66.17:8080 weight=2;
server 10.167.66.17:8082 weight=1;
server 10.167.66.17:8083 weight=1;
}
然后location / {}里面的内容改成这样,ngintest是上面upstream的名字
location / {
root html;
index Default.aspx;
proxy_pass http://ngintest;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
保存,重启nginx,在谷歌浏览器里运行http://127.0.0.1:70/default.aspx
不断刷新
然后,现在在IIS里把服务器1给关掉
接着刷新,会发生这样的状况,某一次刷新的时候,浏览器会卡顿,一直在加载,这是因为连接服务器1超时,大概过一分多钟之后,浏览器加载完毕,分流到2,3服务器.这是nginx默认有连接超时的时间,我们可以把连接超时的时间改短一点。
在配置文件里,加上这三句
proxy_connect_timeout 1;
proxy_read_timeout 1;
proxy_send_timeout 1;
然后重启nginx,刷新浏览器,再次进入服务器1只会卡顿1秒左右,nginx就会判定连接超时,分流给其他服务器