1. 是什么?
- 高性能: Web 服务器、反向代理、负载均衡器。
- 事件驱动架构:轻量级,支持高并发(如每秒数万请求)。
- 开源免费:广泛用于生产环境(如 Netflix、GitHub、WordPress)。
2. 核心功能
| 功能 | 说明 |
|---|---|
| 静态服务 | 快速托管 HTML、图片、视频等静态资源。 |
| 反向代理 | 将请求转发到后端服务(如 Node.js、Java),隐藏真实服务器。 |
| 负载均衡 | 分发流量到多个后端,避免单点过载(支持轮询、IP哈希等策略)。 |
| SSL 终止 | 集中处理 HTTPS 加密/解密,降低后端压力。 |
| 缓存加速 | 缓存响应内容,减少重复计算或数据库查询。 |
3. 核心配置文件
默认路径:/etc/nginx/nginx.conf
结构示例:
events {
worker_connections 1024; # 每个工作进程的并发连接数
}
http {
server {
listen 80;
server_name example.com;
location / {
root /var/www/html; # 静态文件目录
}
location /api {
proxy_pass http://localhost:3000; # 反向代理到本地Node.js应用
}
}
}
4. 常用命令
# 启动
nginx
# 重载配置(不中断服务)
nginx -s reload
# 停止
nginx -s stop
# 检查配置语法
nginx -t
5. 典型应用场景
- 静态网站:直接托管
index.html和静态资源。 - API 网关:将
/api路径代理到后端微服务。 - 负载均衡:在多个服务器间分配流量:
upstream backend {
server 192.168.1.1:8000 weight=3; # 权重3
server 192.168.1.2:8000; # 权重1
}
server {
location / {
proxy_pass http://backend;
}
}
6. 性能优化技巧
# 启用 Gzip 压缩:减少传输体积。
gzip on;
gzip_types text/css application/json;
# 缓存静态文件:降低磁盘 I/O。
location ~* \.(jpg|css|js)$ {
expires 30d;
}
# 限制并发:防止资源耗尽。
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
7. 日志分析
# 访问日志:记录客户端请求(路径、IP、状态码等)
access_log /var/log/nginx/access.log;
# 错误日志:排查问题
error_log /var/log/nginx/error.log warn
8. 安全建议
# 禁用 Server 头:避免暴露版本信息
server_tokens off;
# 限制 HTTP 方法:只允许 GET/POST
if ($request_method !~ ^(GET|POST)$ ) {
return 405;
}
9.总结
Nginx 以简洁、高效著称,适合作为 Web 服务的入口层。掌握其配置和优化技巧,能显著提升系统性能和可靠性。遇到问题时,可通过 nginx -t 检查配置,或查阅日志快速定位原因。
学习了!谢谢
很好的文章!