利用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