用Nginx做反向代理实现负载均衡

相对于LVS来说,Nginx做反向代理工作在网络更高层(7层),但对于一般的负载均衡场合已足够应付。若访问量非常大或稳定性要求非常高的场合,选择LVS还是有必要的。

本文力求用最简的例子来演示如何使用Nginx做反向代理实现负载均衡。

实现目标:用Nginx的80端口负载均衡本机8001和8002两个http服务。

开始:

1、安装Nginx。

不多说了,直接进入下一步,配置Nginx。

2、配置Nginx

修改nginx.conf配置文件

 
  1. ……  
  2. upstream http_server_pool{  
  3.         server 127.0.0.1:8001;   
  4.         server 127.0.0.1:8002;  
  5. }  
  6. server {  
  7.         listen       80;  
  8.         server_name  localhost;  
  9.   
  10.         location / {  
  11.             proxy_pass http://http_server_pool;  
  12.             proxy_set_header Host localhost;  
  13.             proxy_set_header X-Forwarded-For $remote_addr;  
  14.         }  
  15.         ……  
  16. }  

3、创建8001服务

这里为了便捷,使用Python自带的SimpleHTTPServer来实现HTTP服务。

为了方便看出效果,新建一个a目录,创建一个index.html文件,直接输出“This is 8001!”。

在a目录下执行 

  1. python -m SimpleHTTPServer 8001  

4、创建8002服务

(参照上一步)

5、运行Nginx

6、轮询效果测试

访问localhost,多刷几次页面,会发现有时输出“This is 8001!”,有时是“This is 8002!”。

7、故障测试

手动分别把8001或8002服务停掉,访问localhost会被引导到能够正常工作的那一个服务上。

只要8001和8002没有全停,服务均能通过80端口正常对外提供。

更多关于Nginx的详细信息,或者下载地址请点这里

相关推荐