第三次课程笔记1
需积分: 0 71 浏览量
更新于2022-08-08
收藏 23KB DOCX 举报
【Nginx 知识点详解】
Nginx 是一款高性能的反向代理服务器,常用于网站的负载均衡和静态资源处理。本节课主要讲解了Nginx的基础配置、进程模型、HTTPS请求配置以及负载均衡策略。
1. **Nginx 反向代理和正向代理**
- 反向代理:Nginx 作为客户端与服务器之间的中间层,接收客户端请求并转发给后台真实服务器,对外隐藏了服务器的具体信息。
- 正向代理:代理客户端向目标服务器发起请求,主要用于访问受限制的网络资源或者匿名上网。
2. **Web 请求处理流程**
- 客户端发起HTTP/HTTPS请求。
- 请求到达Nginx反向代理服务器。
- Nginx根据配置决定转发请求到哪个后端服务器。
- 后端服务器处理请求并返回响应。
- Nginx将响应返回给客户端。
3. **Nginx 安装与配置**
- 使用`yum`命令安装必要的库,如`libnl`和`libnl-devel`。
- 编译安装Nginx:`make` 和 `make install`。
- 配置文件通常位于 `/etc/nginx/nginx.conf` 或 `/etc/nginx/conf.d/*.conf`。
- 配置虚拟主机、HTTPS请求、负载均衡等。
4. **Nginx 虚拟主机配置**
- 基于域名的虚拟主机配置,通过`server_name`指令。
- 基于端口的虚拟主机配置,通过监听不同端口的`listen`指令。
5. **Location 匹配规则**
- `location`指令用于处理请求的URL路径,可以使用正则表达式匹配。
6. **Rewrite 规则**
- `rewrite regex replacement [flag]`用于URL重写,`regex`是匹配模式,`replacement`是替换后的URL,`flag`是操作标志,如`break`、`last`等。
7. **Nginx 本地缓存和Gzip压缩**
- Nginx可以缓存静态资源,减少对后端服务器的压力。
- 使用Gzip压缩响应内容,减少网络传输的数据量。
8. **负载均衡策略**
- **轮询(默认)**:请求均匀分配到每个服务器。
- **ip_hash**:根据客户端IP的哈希值决定服务器,保持同一客户端请求始终分配到同一台服务器。
- **fair**:根据服务器实际处理能力动态分配请求。
- **url_hash**:基于请求URL的哈希结果分配服务器,适用于保持相同URL请求在同一服务器上。
- **weight**:为服务器分配不同的权重,处理能力更强的服务器接收到的请求更多。
9. **Nginx 进程模型**
- **Master 进程**:管理work进程,接收信号,平滑重启、加载配置、监控worker进程。
- **Worker 进程**:处理客户端请求,执行业务逻辑,数量一般设置为CPU核数。
10. **配置HTTPS请求**
- 需要SSL/TLS协议,使用非对称加密、对称加密和哈希算法保证通信安全。
- 生成服务器私钥、CSR(Certificate Signing Request)和证书。
- 证书文件包括`crt`(服务器证书)和`key`(服务器私钥)。
- 在Nginx配置文件中指定证书和私钥路径。
11. **Tomcat 配置HTTPS支持**
- Tomcat的Connector节点添加`redirectPort="443"`和`proxyName`、`proxyPort`配置,以支持HTTPS和Nginx代理。
通过上述内容的学习,我们可以掌握Nginx的基本操作和高级特性,将其应用于实际的项目中,提高服务器的性能和可靠性。