25.4 nginx 四层代理和负载均衡
nginx 四层代理和负载均衡

新版的 nginx 除了代理 http 服务外,还可以基于 stream 模块来实现四层协议的转发、代理或者负载均衡等等。与 LVS 不同的是,nginx 的四层代理依然工作在用户空间,“一手拖两家”,一边作为服务器接收用户请求,另一边作为客户端向后端服务器发送请求。四层的反代和负载均衡配置与 http 的反代和负载均衡基本类似。
nginx 四层代理和负载均衡

新版的 nginx 除了代理 http 服务外,还可以基于 stream 模块来实现四层协议的转发、代理或者负载均衡等等。与 LVS 不同的是,nginx 的四层代理依然工作在用户空间,“一手拖两家”,一边作为服务器接收用户请求,另一边作为客户端向后端服务器发送请求。四层的反代和负载均衡配置与 http 的反代和负载均衡基本类似。
nginx负载均衡器

nginx http 的负载均衡功能主要由 ngx_http_upstream_module 提供,其作用是将后端服务器定义为 nginx 中的服务器组,然后将服务器组作为反向代理的目标。在反代请求时,服务器组首先通过配置的调度算法选择一个后端服务器,然后向其转发请求。因此服务器组是 nginx 负载均衡功能的核心组件。
nginx反向代理facgi

在讲解 httpd 的时候,我们说过通过 php 搭建一个 动态站点时,httpd 与 php 有三种结合方式
nginx 与 php 结合的话则只能通过 fpm,将 php 运行为独立的应用程序服务器,nginx 通过反代的模式与 fpm 结合起来。nignx 基于 ngx_http_fastcgi_module 模块就能作为 fastcgi 协议的客户端与 fpm 通信。本节我们就来详解 nignx fastcgi 反向代理的相关配置。
nginx反向代理http

26 章我们讲解了 nginx 作为 web 服务的应用,除了 web 服务功能,nginx 还能作为七层的反向代理实现负载均衡功能。本章我们就来讲解 nginx 的另两项主要功能:
LVS 高可用

前面我们搭建的负载均衡集群,一旦调度器发生故障,整个服务将不可用,我们需要对其进行高可用。keepalived 是 LVS 高可用最简单有效的解决方案,但是本节我们先不会讲解 keepalived,后面有一个章的内容专门讲解。本节的目的是通过对 LVS 高可用的讲解,让大家理解高可用集群中的重要概念,特别是健康状态检测。
防火墙标记和LVS持久链接

前面我们演示了如何使用 LVS 创建一个负载均衡服务,然而在生产环境中,我们可能要同时调度两个及以上的集群服务。典型的情景是,同时部署了 http,https 服务,用户浏览网页的时候使用的 http 服务,当用户登陆或支付时因为 http 是明文的不安全,此时必需切换成 https。如果这个两个服务是单独调度,很有可能用户登陆之后被重新调度到其他服务器上,这样用户原有的缓存就会丢失。所以我们必需将 http,https 作为一组服务进行同一调度,这就需要使用到防火墙标记。我们本节我们就来演示如何使用LVS 统一调度 http,https 服务。