Nginx负载均衡入门:高性能与低成本的七层解决方案

需积分: 10 4 下载量 119 浏览量 更新于2024-07-23 收藏 1.26MB PDF 举报
Nginx负载均衡入门讲解由张宴分享,这是一份关于Nginx安装、配置、服务管理和日志管理的PPT资料。Nginx是由俄罗斯开发者Igor Sysoev开发的一款高效且流行的HTTP和反向代理服务器,因其高并发连接能力、低内存消耗、简洁的配置文件、开源免费、支持Rewrite重写规则、健康检查功能、带宽节省和高稳定性等特点,使得它在众多大型互联网企业中广泛应用,如新浪博客、网易新闻、六间房等。 Nginx的优势体现在: 1. 高并发处理:官方测试表明,Nginx能支持5万并发连接,实际应用中可达到2-3万,适合高流量场景。 2. 资源效率:即使在高并发情况下,10个Nginx进程占用的内存仅为150MB,这意味着在同等条件下,Nginx能更有效地利用系统资源。 3. 易于配置:Nginx的配置文件结构清晰,易于理解和维护。 4. 成本效益:作为开源软件,Nginx无需高昂的许可费用,相比之下,商业负载均衡设备如F5 BIG-IP或NetScaler的价格较高。 5. 功能强大:Nginx支持Rewrite规则,可以根据请求的不同属性灵活路由到不同的后端服务器。 6. 健康检查:内置健康检查机制,确保当后端Web服务器出现问题时,前端用户仍能正常访问,提高了系统的可用性。 7. 带宽优化:通过GZIP压缩,Nginx可以减少数据传输量,节省网络带宽,并支持浏览器缓存。 8. 高稳定性:Nginx用作反向代理时,其罕见的宕机率使其成为可靠的负载均衡选择。 这份PPT还可能涵盖了Nginx的安装步骤、基本配置示例、负载均衡策略(如轮询、最少连接、哈希等)、以及如何在NetScaler和Nginx之间进行性能和成本的比较。通过五分钟的快速学习,读者可以掌握如何在实际环境中部署和使用Nginx作为负载均衡解决方案。
794 浏览量
Sticky是nginx的一个模块,它是基于cookie的一种nginx的负载均衡解决方案,通过分发和识别cookie,来使同一个客户端的请求落在同一台服务器上,默认标识名为route (a)客户端首次发起访问请求,nginx接收后,发现请求头没有cookie,则以轮询方式将请求分发给后端服务器。 (b)后端服务器处理完请求,将响应数据返回给nginx。 (c)此时nginx生成带route的cookie,返回给客户端。route的值与后端服务器对应,可能是明文,也可能是md5、sha1等Hash值 (d)客户端接收请求,并保存带route的cookie。 (e)当客户端下一次发送请求时,会带上route,nginx根据接收到的cookie中的route值,转发给对应的后端服务器。 其他需要注意的 (a)同一客户端的请求,有可能落在不同的后端服务器上。如果客户端启动时同时发起多个请求。由于这些请求都没带cookie,所以服务器会随机选择后端服务器,返回不同的cookie。当这些请求中的最后一个请求返回时,客户端的cookie才会稳定下来,值以最后返回的cookie为准。 (b)cookie不一定生效。由于cookie最初由服务器端下发,如果客户端禁用cookie,则cookie不会生效。 (c)客户端可能不带cookie。Android客户端发送请求时,一般不会带上所有的cookie,需要明确指定哪些cookie会带上。如果希望用sticky做负载均衡,请对Android开发说加上cookie。 (d)cookie名称不要和业务使用的cookie重名。Sticky默认的cookie名称是route,可以改成任何值。 (e)客户端发的第一个请求是不带cookie的。服务器下发的cookie,在客户端下一次请求时才能生效。 (f)Nginx sticky模块不能与ip_hash同时使用 sticky [name=route] [domain=.foo.bar] [path=/] [expires=1h] [hash=index|md5|sha1] [no_fallback] [secure] [httponly]; [name=route] 设置用来记录会话的cookie名称 [domain=.foo.bar] 设置cookie作用的域名 [path=/] 设置cookie作用的URL路径,默认根目录 [expires=1h] 设置cookie的生存期,默认不设置,浏览器关闭即失效,需要是大于1秒的值 [hash=index|md5|sha1] 设置cookie中服务器的标识是用明文还是使用md5值,默认使用md5 [no_fallback] 设置该项,当sticky的后端机器挂了以后,nginx返回502 (Bad Gateway or Proxy Error) ,而不转发到其他服务器,不建议设置 [secure] 设置启用安全的cookie,需要HTTPS支持 [httponly] 允许cookie不通过JS泄漏,没用过