首页 > 代码库 > 利用Nginx做负载均衡

利用Nginx做负载均衡

最近正在研究Nginx,Nginx作为反向代理服务器,可以对Web服务器提供加速,并且具有负载均衡的功能。

     首先我要在官网下载Nginx(http://nginx.org/en/download.html),目前最新稳定的版本为1.0版本,Linux和Windows版本我都下下来了,在两台服务器上做网站负载均衡。

在Windows版本中,将压缩包进行解压,执行命令:

1
start nginx

这样就可以启动nginx服务了。而执行命令:

1
nginx -s stop

可以停止服务。

 

这是我在192.168.3.82的IIS服务器上,添加两个站点:

技术分享

这两个站点分别添加两个文件index.html,两个文件内容分别显示:“这是站点1”,“这是站点2”。

在nginx.conf的配置文件调整相关配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
upstream site {
server 192.168.3.82:8040;
server 192.168.3.82:8041;
}
 
server {
listen 8080;
server_name 192.168.3.82;
 
#charset koi8-r;
 
#access_log logs/host.access.log main;
 
location / {
root html;
index index.html index.htm;
proxy_pass http://site;
 
}
1
  
然后保存文件即可。

接着在运行一次start nginx,当你不断刷新页面的时候,浏览器上就会来回切换这两个站点。

技术分享

技术分享

可以发现这里切换是按照1:1的方式来回切换,通过配置文件你可以站点的权重:

1
2
3
4
upstream  site { 
     server   192.168.3.82:8040 weight=2;
     server   192.168.3.82:8041 weight=1;
}

weight即为对应网站的权重。 

 

在Linux中,安装Nginx比较麻烦一些,因为需附加安装一些包,如gzip,pcre等等。具体可以查看:http://www.cnblogs.com/yuanermen/archive/2011/03/31/2000993.html

 

可以在Linux上部署你的站点,比如站点3,如果你要把Windows服务器作为反向代理服务器,那么在upstream site添加一个新的站点:

 

1
2
3
4
5
upstream  site { 
     server   192.168.3.82:8040 weight=2;
     server   192.168.3.82:8041 weight=1;
     server   192.168.3.90:8080;
}


你还可以利用Nginx对反向代理服务器上对静态文件(如JPG,GIF,CSS,JS等等)进行缓存,这样当你需要从Web服务器去请求静态资源的时候,可以直接从反向代理服务器上取得本地的一个资源,这样减少了对Web服务器的压力。具体可以查看:http://www.cnblogs.com/daizhj/archive/2009/11/03/1595292.html

利用Nginx做负载均衡