Nginx最简单的负载均衡实验

上周末利用现有的2台美国vps,一台香港vps做了些实验,记录下关键的流程步骤

1.什么是反向代理?
反向代理就是当用户访问web的时,web负载均衡器去请求后端的web服务器集群,按照规则和算法,去请求其中一台,返回数据结果给均衡器,呈现给用户
用户不知道访问的是哪台web服务器。
2.什么是正向代理?
用户通过VPN或者SOCKET5代理或者通过某种途径代理上网去访问web,web服务器不知道用户的真实IP
3.配置Nginx负载均衡(全配)
组织架构如下:
192.168.1.10:80 (主Nginx)
192.168.1.11:80 (server1)
192.168.1.12:80 (server2)
为了统一环境全部使用centos5.8 final版 + lnmp1.0
假设环境都已经安装完毕

  1. 配置主Nginx
  2. vi /usr/local/nginx/conf/nginx.conf 
  3. #在http段添加,两台后端nginx
  4. upstream nginx.chenjie.info {
  5.    server 192.168.1.11:80;
  6.    server 192.168.1.12:80;
  7. }
  8. #修改主配置文件的server 
  9. server_name nginx.chenjie.info;
  10. server下添加一个location
  11. location / {
  12. proxy_pass http://nginx.chenjie.info;
  13. proxy_set_header Host $host;
  14. proxy_set_header XReal_IP $remote_addr;
  15. proxy_set_header XForwardedFor $proxy_add_x_forwarded_for;
  16.  }
  17. #保存重启nginx
  18. /etc/init.d/nginx reload #平滑重启
  19. #后端nginx配置如下
  20. 只要把server_name解析到nginx.chenjie.info 即可;
  21. #修改从Nginx配置
  22. vi /path/to/nginx/conf/nginx.conf
  23. server{
  24.               listen       80;
  25.               server_name nginx.chenjie.info; #主要修改server_name
  26.               index index.html index.htm index.php;
  27.               root  /home/wwwroot/default;
  28.  }
  29.  #其他机器安装此配置。重启nginx即可
  30.  #域名解析:只要把域名解析到主Nginx的IP地址即可,(如果是内网搭建测试可以采用修改host)

 

如何测试nginx是否负载均衡成功?
ping 域名?
No。负载均衡采用ping是看不出的,前端nginx做调度根据规则选择后端机器,后端机器相应然后回传数据给前端nginx,前端nginx把页面显示给用户,所以用户是看不到哪台机器回传数据的。所以ping域名一直是第一台主nginx服务器地址
查看Nginx日志,去查看每台机器的访问日志.
可以为不同的web服务器放不同的页面去观察。

===================陈捷华丽的补充线=================

上面配置的是一台主负载到多台从nginx。此时主服务器只承担分发效果,他的80已经用来分发,如果你想利用主服务器也来作为内容响应,需要主服务器里增加一个上面从服务器的配置并且修改里面的80修改成其他端口比如8080,这样就可以充分使用主服务器了。另外在使用过程中如果有一台从服务器宕机,nginx是可以识别的响应到其他正常的服务器的。

上面的配置都是nginx默认的负载均衡策略,基本是一个随机的策略,如果需要其他策略比如根据真实负载来均衡分发那就需要在ngnix编译的编译进对应的策略模块,大家可以自行搜索解决方案,在此不再赘述。

发表回复

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据