nginx配置结构
Nginx 采用高度模块化的架构,核心功能由核心模块提供,而其他功能则通过各种模块实现。Nginx 的架构可以分为以下几个部分:
- Master 进程: 主进程负责管理子进程的启动、停止和重新加载配置等工作。
- Worker 进程: Worker 进程处理客户端的请求。每个 Worker 进程通常只处理一个客户端连接,这样可以提高并发性能。
- 事件模块: Nginx 使用事件驱动模型处理网络事件,例如接受新连接、读取数据、发送数据等。事件模块可以基于 select、poll、epoll、kqueue 等机制实现。
- HTTP 核心模块: 提供 HTTP 协议的基本功能,例如请求解析、响应生成、重定向、缓存等。
- HTTP 动态模块: 提供动态内容的支持,例如 FastCGI、uWSGI、SCGI 等协议的代理和转发。
- 反向代理模块: 提供反向代理功能,可以将请求转发给后端服务器。
- 负载均衡模块: 提供负载均衡功能,可以根据不同的算法将请求分发给多个后端服务器。
配置文件结构
Nginx 配置文件一般包含全局配置和特定块的配置。全局配置位于 http
块之外,用于配置全局的 Nginx 行为。特定块的配置位于 http
块内,用于配置特定的服务、虚拟主机等.
全局块:包含了影响 nginx 服务器整体运行的指令。通常包括配置文件的基础设置和全局参数的定义。
events 块:用于配置 nginx 处理连接的特性,如 worker 进程数和连接的限制等。
http 块:包含了 HTTP 服务器配置指令,是大多数 nginx 配置的核心部分。可以包括多个 server 块,每个 server 块定义一个虚拟主机。
1 | # 全局配置 |
可以使用 include
指令包含其他的配置文件,使配置文件更加模块化和可维护。例如:
1 | include /etc/nginx/conf.d/*.conf; |
常见配置指令
以下是一些常用的 Nginx 配置指令列表:
worker_processes
: 设置 Nginx 主进程的工作进程数量。worker_connections
: 设置每个工作进程允许的最大连接数。events
: 配置 Nginx 事件模块,如工作进程数和连接数。http
: 配置 HTTP 服务器模块。server
: 定义虚拟主机(服务器块)。location
: 定义 URI 匹配规则,处理请求的方式。listen
: 指定服务器监听的 IP 地址和端口号。root
: 指定服务器的根目录。index
: 指定默认文档。error_page
: 定义错误页面。access_log
: 配置访问日志。error_log
: 配置错误日志。include
: 包含其他配置文件。if
: 条件判断。rewrite
: URL 重写。proxy_pass
: 反向代理到后端服务器。proxy_set_header
: 设置请求头。proxy_cache
: 配置反向代理缓存。ssl_certificate
: 指定 SSL 证书文件路径。ssl_certificate_key
: 指定 SSL 证书的私钥文件路径。ssl_protocols
: 指定支持的 SSL 协议版本。ssl_ciphers
: 指定 SSL 加密算法。ssl_prefer_server_ciphers
: 指定是否优先使用服务器端的 SSL 加密算法。ssl_session_cache
: 配置 SSL 会话缓存。ssl_session_timeout
: 配置 SSL 会话超时时间。gzip
: 启用或禁用 Gzip 压缩。include
: 包含其他配置文件。load_module
: 加载动态模块。limit_req_zone
: 定义限制请求的区域。limit_conn_zone
: 定义限制连接数的区域
参考官方文档nginx指令查询
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 满杯是幸福 空杯是自由!
评论