HTTP Upstream 模块

回复 收藏
本帖最后由 乐橙306 于 2016-3-31 14:22 编辑
  1. 参考文档
  2. http://www.nginx.cn/doc/standard/httpupstream.html
  3. 这个模块提供一个简单方法来实现在轮询和客户端IP之间的后端服务器负荷平衡。
  4. 配置范例:
  5. 配置举例
  6. [root@wh-cnc-51 vhosts]# cat  81port.conf
  7. upstream  8070  {
  8.     server   10.1.1.51:8070;
  9.     server   10.1.1.51:8060 backup;
  10. }
  11. server
  12. {
  13.     listen 81;
  14.     server_name localhost;
  15.     index index.jsp index.html index.htm;
  16.             location / {
  17.                 proxy_pass      http://8070/;
  18.                 proxy_set_header Host   $host;
  19.                 proxy_set_header X-Real-IP      $remote_addr;
  20.                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  21.              }
  22. }
  23. [root@wh-cnc-51 vhosts]#

2016-03-13 10:25 举报
已邀请:
0

乐橙306

赞同来自:

本帖最后由 乐橙306 于 2016-3-31 14:23 编辑
  1. nginx的upstream目前支持6种方式的分配
  2. 1、轮询(默认)round robin
  3. 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
  4. 2、weight  (默认1 )
  5. 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
  6. 3、ip_hash
  7. 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
  8. 4、least_conn
  9. nginx将不会在负载很忙的服务器上增加请求,而是分发新的请求到不忙的服务器上面。
  10. 5、fair(第三方) github上的第三方作者提供   https://github.com/gnosek/nginx-upstream-fair
  11. 按后端服务器的响应时间来分配请求,响应时间短的优先分配。
  12. 6、url_hash(第三方)
  13. 按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效

  14. 每个设备的状态设置为:
  15. 1.down 表示单前的server暂时不参与负载
  16. 2.weight 默认为1.weight越大,负载的权重就越大。
  17. 3.max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
  18. 4.fail_timeout:max_fails次失败后,暂停的时间。
  19. 5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。


0

乐橙306

赞同来自:

  1. jvm_route $cookie_JSESSIONID|sessionid reverse;

  2. #jvm_route  :基于cookie中的JSESSIONID来决定将请求发送给后端的哪个server
  3. #通过jvm_route解决session不一致的问题

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: