【Web 集群实战】19_Nginx 反向代理与负载均衡
标签(空格分隔): Web集群实战
文章目录
1. 集群简介
1.1 集群特点
- 高性能
- 价格有效性
- 可伸缩性(Scalability)
- 高可用性(Availability)
- 透明性(Transparency)
- 可管理性(Manageability)
- 可编程性(Programmability)
1.2 集群的常见分类
- 负载均衡集群(Load Balancing clusters),简称 LBC 或 LB
- 高可用性集群(High-availability(HA) clusters),简称 HAC
- 高性能计算集群(High-performance(HP) clusters),简称 HPC
- 网格计算(Grid computing)集群
2. Nginx 负载均衡集群
2.1 反向代理与负载均衡概念简介
-
严格地说,Nginx 仅仅是作为 Nginx Proxy 反向代理使用的,因为这个反向代理功能表现的效果是负载均衡集群的效果,所以称为 Nginx 负载均衡。
-
普通的负载均衡软件,如 LVS,其实现的功能只是对请求数据包的转发(也可能会改写数据包)、传递,其中 DR 模式从负载均衡下面的节点服务器来看,接收到的请求还是来自访问负载均衡器的客户端的真实用户,而反向代理接收访问用户的请求后,会代理用户重新发起请求代理下的节点服务器,最后把数据返回给客户端用户,在节点服务器看来,访问的节点服务器的客户端用户就是反向代理服务器了,而非真实的网站访问用户。
-
简单的说,LVS 等的负载均衡是转发用户请求的数据包,而 Nginx 反向代理是接收用户的请求然后重新发起请求去请求其后面的节点。
2.2 实现 Nginx 负载均衡的组件
Nginx http 功能模块 | 模块说明 |
---|---|
ngx_http_proxy_module | proxy 代理模块,用于把请求后抛给服务器节点或 upstream 服务器池 |
ngx_http_upstream_module | 负载均衡模块,可实现网站的负载均衡功能及节点的健康检查 |
2.3 快速实践 Nginx 负载均衡准备
- 硬件准备
HOSTNAME | IP | 说明 |
---|---|---|
lb001 | 192.168.2.147 | Nginx 主负载均衡器 |
lb002 | 192.168.2.148 | Nginx 辅负载均衡器 |
web001 | 192.168.2.145 | web001 服务器 |
web002 | 192.168.2.146 | web002 服务器 |
web003 | 192.168.2.150 | web003 服务器 |
- 安装 Nginx 软件
- Nginx web001 和 web002 的配置如下:
[root@web002 conf]# cat nginx.conf
worker_processes 1;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
include extra/bbs.conf;
include extra/www.conf;
}
[roo