Nginx的应用场景
2025-04-14
4
参考资料
Nginx 应用场景及配置教程
1. 静态文件服务
应用场景
高效托管 HTML、CSS、JS、图片等静态资源
适用于 CDN、前端项目部署
配置示例
server { listen 80; server_name example.com; location / { root /var/www/html; # 静态文件目录 index index.html; # 默认首页 } }
2. 反向代理
应用场景
隐藏后端服务器(如 Node.js、Java、Python 应用)
提供缓存、负载均衡
配置示例
server { listen 80; server_name api.example.com; location / { proxy_pass http://127.0.0.1:3000; # 代理到后端服务 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
3. 负载均衡
应用场景
分发请求到多个后端服务器(如集群部署)
支持轮询、权重、IP 哈希等策略
配置示例
upstream backend_servers { server 192.168.1.10:8080 weight=3; # 权重 3 server 192.168.1.11:8080; # 默认权重 1 server 192.168.1.12:8080 backup; # 备用服务器 } server { listen 80; server_name loadbalancer.example.com; location / { proxy_pass http://backend_servers; } }
4. HTTPS 加密(SSL/TLS)
应用场景
加密 HTTP 流量,提升安全性
适用于 Web、API、支付等场景
配置示例
server { listen 443 ssl; server_name secure.example.com; ssl_certificate /etc/nginx/ssl/example.com.crt; ssl_certificate_key /etc/nginx/ssl/example.com.key; location / { proxy_pass http://127.0.0.1:3000; } } # 强制 HTTP 跳转 HTTPS server { listen 80; server_name secure.example.com; return 301 https://$host$request_uri; }
5. 缓存加速
应用场景
缓存动态内容(如 API 响应)
减少后端服务器压力
配置示例
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m; server { listen 80; server_name cache.example.com; location / { proxy_cache my_cache; proxy_pass http://127.0.0.1:3000; proxy_cache_valid 200 302 10m; # 缓存 200/302 响应 10 分钟 } }
6. 访问控制(IP 限制)
应用场景
限制特定 IP 访问(如管理后台)
防止恶意请求
配置示例
server { listen 80; server_name admin.example.com; location / { allow 192.168.1.100; # 允许的 IP deny all; # 拒绝其他所有 IP proxy_pass http://127.0.0.1:3000; } }
7. 日志管理
应用场景
记录访问日志、错误日志
分析流量、排查问题
配置示例
http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; error_log /var/log/nginx/error.log warn; }
8. 常用命令
# 启动 Nginx sudo systemctl start nginx # 停止 Nginx sudo systemctl stop nginx # 重新加载配置(不重启) sudo nginx -s reload # 测试配置语法 sudo nginx -t # 查看运行状态 sudo systemctl status nginx
总结
Nginx
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。