nginx 的强大功能归功于其高度模块化的设计。不同的模块负责处理不同的任务,从核心的请求处理到复杂的负载均衡和安全控制。
- 内置与编译:大部分核心模块(如
http_core,log)是默认内置的。部分模块(如ssl,stream)在安装 nginx 时可能需要通过--with-http_ssl_module或--with-stream参数显式启用。 - 查看模块:你可以使用
nginx -v命令查看当前 nginx 版本已编译和加载的所有模块,避免配置了不支持的指令导致启动失败。 - 第三方模块:除了官方模块,nginx 还有强大的第三方模块生态(如
lua-nginx-module用于嵌入 lua 脚本),可以进一步扩展其功能。
核心与基础模块
这些模块是 nginx 运行的基石,负责处理最基本的连接和请求逻辑。
| 模块名称 | 核心功能 | 典型应用场景 |
|---|---|---|
| ngx_http_core_module | http 核心模块。处理 http 请求的基本逻辑,包括路由、uri 解析、location 匹配、虚拟主机配置等。 | 所有 nginx 配置的基础,定义 server 块和 location 块。 |
| ngx_http_log_module | 访问日志模块。负责记录客户端访问的详细信息。 | 生成 access.log,用于流量分析、故障排查和用户行为审计。 |
| ngx_http_static_module | 静态文件模块。用于直接服务静态文件(html, css, js, 图片等)。 | 搭建静态网站,或作为反向代理前的静态资源服务器。 |
| ngx_http_index_module | 首页模块。当请求目录时,自动查找并返回 index.html 等指定文件。 | 访问目录路径时自动显示默认首页。 |
| ngx_http_autoindex_module | 目录索引模块。当未找到索引文件时,自动生成目录列表页面。 | 简单的文件下载站或内部文件共享服务器。 |
代理与负载均衡模块
这是 nginx 作为反向代理和网关时的核心功能模块。
| 模块名称 | 核心功能 | 典型应用场景 |
|---|---|---|
| ngx_http_proxy_module | 反向代理模块。将客户端请求转发给上游服务器(upstream)。 | 隐藏后端架构、微服务路由、动静分离。 |
| ngx_http_upstream_module | 负载均衡模块。定义后端服务器组,支持轮询、权重、ip 哈希等策略。 | 将流量分发到多个后端应用服务器,提高系统吞吐量。 |
| ngx_http_fastcgi_module | fastcgi 模块。用于与 fastcgi 进程(如 php-fpm)交互。 | 运行 php 动态网站(如 wordpress)。 |
| ngx_stream_core_module | 四层流模块。处理 tcp/udp 流量转发(非 http 协议)。 | 数据库(mysql/redis)负载均衡、游戏服务器代理、ssh 跳板机。 |
安全与访问控制模块
用于保护服务免受未授权访问和恶意攻击。
| 模块名称 | 核心功能 | 典型应用场景 |
|---|---|---|
| ngx_http_ssl_module | ssl/tls 模块。支持 https 加密通信,管理证书和密钥。 | 网站 https 化,保障数据传输安全。 |
| ngx_http_access_module | 访问控制模块。基于 ip 地址允许或拒绝客户端访问。 | 限制后台管理页面仅内网访问,封禁恶意 ip 段。 |
| ngx_http_auth_basic_module | 基础认证模块。使用 http 基本认证协议验证用户名和密码。 | 为测试环境或敏感目录添加简单的密码验证。 |
| ngx_http_limit_req_module | 请求限流模块。通过设置限制条件控制请求频率。 | 防止 api 被刷、抵御 cc 攻击、削峰填谷。 |
| ngx_http_limit_conn_module | 连接限流模块。控制单个 ip 的并发连接数。 | 防止单个用户占用过多服务器资源(如多线程下载)。 |
性能优化与功能扩展模块
用于提升传输效率和用户体验。
| 模块名称 | 核心功能 | 典型应用场景 |
|---|---|---|
| ngx_http_gzip_module | gzip 压缩模块。对 http 响应内容进行实时压缩。 | 减少网络传输量,提高页面加载速度,节省带宽。 |
| ngx_http_rewrite_module | 重写模块。利用正则表达式修改请求 url。 | url 伪静态(seo 优化)、旧链接重定向、路径规范化。 |
| ngx_http_headers_module | 响应头模块。允许向响应中添加或修改 header 字段。 | 设置浏览器缓存策略(cache-control, expires)。 |
| ngx_http_stub_status_module | 状态监控模块。提供基本的 nginx 运行状态信息。 | 配合监控系统(如 zabbix, prometheus)监控 nginx 健康状况。 |
到此这篇关于nginx常用基础模块的文章就介绍到这了,更多相关nginx常用基础模块内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论