什么是 NGINX
Web服务器和反向代理
NGINX是一个高性能的开源Web服务器、反向代理、负载均衡器和HTTP缓存。由Igor Sysoev于2004年创建,现归F5 Networks所有。
核心功能
- Web服务器 — 提供静态内容
- 反向代理 — 代理请求到后端服务器
- 负载均衡 — 在服务器之间分配流量
- SSL/TLS终止 — 处理HTTPS连接
- HTTP缓存 — 缓存上游服务器响应
优势
- 异步事件驱动架构
- 低内存消耗
- 高性能(10K+连接)
- 简单配置
- 模块化架构
典型用例
- 提供静态文件(HTML、CSS、JS、图片)
- Node.js、Python、PHP、Java的反向代理
- API网关
- Docker容器间负载均衡
- 微服务SSL卸载
基本配置
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
}
location /static/ {
root /var/www;
expires 30d;
}
}
NGINX vs Apache
| 参数 | NGINX | Apache | |------|-------|--------| | 架构 | 事件驱动 | 进程/线程 | | 静态文件 | 更快 | 更慢 | | .htaccess | 否 | 是 | | 配置 | 集中式 | 分布式 |
常用模块
- ngx_http_gzip_module — 响应压缩
- ngx_http_ssl_module — HTTPS
- ngx_http_proxy_module — 代理
- ngx_http_upstream_module — 负载均衡
- ngx_http_rewrite_module — URL重写