Nginx 详解
·
📌 一、什么是 Nginx?
✅ Nginx(engine x)是一个 高性能、高并发、轻量级 的 Web 服务器 和 反向代理服务器
✅ 同时支持:HTTP 服务器、反向代理、负载均衡、缓存、动静分离等功能
典型应用场景:
- 网站服务器(如静态页面、图片、视频服务)
- 反向代理(隐藏真实服务器)
- 负载均衡(分发请求)
- 接口限流、黑白名单
- HTTPS 终端、SSL卸载
📌 二、Nginx 核心模块组成
| 模块 | 作用 |
|---|---|
| http | 处理 HTTP 请求,支持反向代理、缓存、访问控制等 |
| server | 定义虚拟主机,监听端口和域名 |
| location | 匹配具体请求路径,做转发、代理或直接返回 |
| upstream | 配置后端服务器集群,实现负载均衡 |
| events | 控制连接数、IO模型(epoll/kqueue)等性能参数 |
📌 三、核心配置结构(实战级)
worker_processes 4; # 工作进程数(CPU核数)
events {
worker_connections 1024; # 每个进程最大连接数
}
http {
include mime.types;
default_type application/octet-stream;
upstream backend {
server 127.0.0.1:8081 weight=3;
server 127.0.0.1:8082;
}
server {
listen 80;
server_name www.example.com;
location /static/ {
root /var/www/html;
}
location /api/ {
proxy_pass http://backend;
}
}
}
📌 四、反向代理(经典)
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
✅ 作用:客户端请求先到 Nginx,由 Nginx 转发给后端服务器
📌 五、负载均衡策略(面试重点)
upstream backend {
server 192.168.1.10 weight=3;
server 192.168.1.11 weight=1;
}
支持算法:
| 算法 | 作用 |
|---|---|
| 轮询(默认) | 顺序分配请求 |
| weight 权重 | 权重大者分配多 |
| ip_hash | 同一IP固定访问同一后端 |
| least_conn | 连接数最少的优先 |
📌 六、动静分离(高性能优化)
location ~* \.(jpg|png|css|js|ico)$ {
root /usr/share/nginx/html/static;
expires 30d; # 强缓存
}
location / {
proxy_pass http://backend;
}
✅ 静态资源 Nginx 直接返回,动态请求转发后端,减轻服务器压力
📌 七、Nginx 限流/防刷(实战超经典)
limit_req_zone $binary_remote_addr zone=limitZone:10m rate=10r/s;
server {
location /api/ {
limit_req zone=limitZone burst=5 nodelay;
proxy_pass http://backend;
}
}
✅ 限流效果:同一 IP 每秒最多 10 个请求,超出进入排队
📌 八、Nginx 支持 HTTPS(SSL配置)
server {
listen 443 ssl;
server_name www.example.com;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/cert.key;
location / {
proxy_pass http://backend;
}
}
✅ 作用:
- 数据加密传输
- 防止中间人攻击
- 配置简单,性能好
📌 九、Nginx 热部署 & 日志
nginx -s reload # 热加载配置
nginx -s stop # 停止Nginx
# 日志路径
access_log logs/access.log;
error_log logs/error.log;
📌 🔥 十、面试必问核心总结
| 知识点 | 快速回答 |
|---|---|
| Nginx 为什么高性能? | IO 多路复用(epoll),异步非阻塞,单线程高并发 |
| 负载均衡策略有哪些? | 轮询、权重、ip_hash、least_conn |
| 动静分离怎么做? | 静态资源 Nginx 直接处理,动态交后端 |
| Nginx 限流怎么做? | limit_req 限 IP 请求速率 |
| Nginx 怎么实现 HTTPS? | ssl_certificate、ssl_certificate_key |
📌 十一、Nginx 应用场景总结
✅ 网站服务器(部署静态文件)
✅ 网关(API 反向代理、接口聚合)
✅ 负载均衡(高并发转发、后端集群)
✅ 安全防护(限流、防刷、IP 过滤)
✅ 图片/视频 CDN 服务器
✅ 接入 HTTPS,安全加密传输
📌 十二、总结一句话:
Nginx = 高性能反向代理 + 负载均衡 + 静态服务器 + 安全防护神器,互联网架构必备!
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)