当前位置: 首页 > news >正文

Nginx和Nginx+的比较(上)

Nginx和Nginx+的比较(上)

作者:chszs,未经博主允许不得转载。经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs

一、Nginx+介绍

Nginx和Nginx+都是Nginx官方的产品,两者的不同之处在于Nginx是开源的社区版,而Nginx+则是Nginx面向企业级的收费版。

Nginx+收费情况如下:对于单实例部署,每年缴费1900美元;而对于多实例的部署,则需要联系Nginx官方来协商报价。

Nginx+也提供了30天的免费试用,到期后仍需交费。

Nginx+只以二进制发行版提供,不提供源码。

Nginx+在Nginx开源社区版的基础上,增加了企业级的特性,比如:

  • 全功能的HTTP和TCP负载均衡
  • 高性能的反向代理
  • 静态内容和动态内容的缓存和卸载
  • 自适应流媒体教父音视频内容到任意设备
  • 对应用敏感的健康检查和高可用性
  • 提供仪表板或API方式的高级活动监控
  • 高级监控和管理,提供对开发者友好的工具来管理和实时的变更
  • 会话持久性
  • 咨询服务

二、Nginx和Nginx+的比较

Nginx+具有一些Nginx社区版不具备的特性,包括:

1、高级HTTP和TCP负载均衡

在负载均衡算法方面,Nginx+增加了“最少时间”(Least Time)的负载均衡算法。“最少时间”算法即请求被分发到拥有最快响应时间和最少活动连接的服务器节点。

2、会话持久性

HTTP是一个无状态协议,故通常很多应用程序在本地存储终端的状态,而没法在负载均衡环境中共享状态。因为在服务器节点间实现客户端的状态共享意味着速度很慢,实现也很麻烦,故最常见的做法是把同一个终端负载均衡到同一个节点,那么就无需在各节点间共享和同步其状态信息了。

Nginx+可以跟踪用户的会话,将终端用户的请求分发给正确的upstream服务器节点。Nginx+提供了三种方法来识别用户的会话:

  • 插入跟踪信息到请求数据中

采用sticky cookie指令:

upstream backend {
    server webserver1;
    server webserver2;

    sticky cookie srv_id expires=1h domain=.example.com path=/;
}
  • 在会话中检测请求

采用sticky learn指令:

upstream backend {
   server webserver1;
   server webserver2;

   sticky learn create=$upstream_cookie_sessionid
       lookup=$cookie_sessionid
       zone=client_sessions:1m
       timeout=1h;
}
  • 跟踪请求中的特定数据

采用sticky route指令:

upstream backend {
   server webserver1 route=a;
   server webserver2 route=b;

   # $var1 and $var2 are run-time variables, calculated for each request
   sticky route $var1 $var2;
}

 

http://blog.csdn.net/chszs/article/details/50439078

 

转载于:https://www.cnblogs.com/softidea/p/5716821.html

相关文章:

  • JDBC+Servlet+JSP整合开发之25.JSP动作元素
  • mysql基础(3)-高级查询
  • SpringMVC3.1.1+Spring3.1.1+Hibernate4+Velocity+EasyUI+ZTree实现RBAC基于角色的访问控制(二)...
  • 设置RMAN的备份路径
  • uboot移植(三)——uboot mkconfig脚本分析
  • .NET文档生成工具ADB使用图文教程
  • Java中Enum枚举的使用
  • 【解决数据中心网速慢的八个检查必备步骤】
  • Centos 5.6 下安装XEN虚拟机以及EMOS
  • UVA1339 UVALive3213 POJ2159 ZOJ2658 Ancient Cipher【密码】
  • UVALive 4660 A+B
  • 切割Nginx日志的脚本
  • pg 学习资料
  • Ntp配置文件详解
  • httpd 启动报错“”Permission denied: make_sock: could not bind to address [::]:80“”
  • JS 中的深拷贝与浅拷贝
  • @angular/forms 源码解析之双向绑定
  • javascript从右向左截取指定位数字符的3种方法
  • JAVA之继承和多态
  • Linux各目录及每个目录的详细介绍
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Spring Boot MyBatis配置多种数据库
  • TypeScript实现数据结构(一)栈,队列,链表
  • Vue实战(四)登录/注册页的实现
  • Web设计流程优化:网页效果图设计新思路
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 阿里云应用高可用服务公测发布
  • 计算机常识 - 收藏集 - 掘金
  • 聊聊redis的数据结构的应用
  • 物联网链路协议
  • 学习使用ExpressJS 4.0中的新Router
  • ionic异常记录
  • ​2021半年盘点,不想你错过的重磅新书
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • #define 用法
  • $.ajax()参数及用法
  • (0)Nginx 功能特性
  • (10)ATF MMU转换表
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • .net core使用ef 6
  • .net 反编译_.net反编译的相关问题
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .net程序集学习心得
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • @ConditionalOnProperty注解使用说明
  • @DependsOn:解析 Spring 中的依赖关系之艺术
  • [acm算法学习] 后缀数组SA
  • [AIGC] SQL中的数据添加和操作:数据类型介绍
  • [android] 手机卫士黑名单功能(ListView优化)
  • [Android]Android开发入门之HelloWorld
  • [C/C++]_[初级]_[关于编译时出现有符号-无符号不匹配的警告-sizeof使用注意事项]
  • [C++]C++基础知识概述