05 队列

先进者先出,这就是典型的"队列"。
1. 特性
我们知道,栈只支持两个基本操作:入栈 push(),出栈 pop(),队列与栈类似基本操作只有两个: 入队 enqueue() 向对尾添加一个数据,出队 dequeue() 从队列头部取出一个数据。

先进者先出,这就是典型的"队列"。
我们知道,栈只支持两个基本操作:入栈 push(),出栈 pop(),队列与栈类似基本操作只有两个: 入队 enqueue() 向对尾添加一个数据,出队 dequeue() 从队列头部取出一个数据。
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 反向代理的相关配置。