文章最后更新时间:
【免责声明:本文由AI辅助生成,内容仅供参考,不构成专业建议。】
Nginx实战完全指南:从基础配置到高可用架构的完整实践
Nginx是最流行的Web服务器和反向代理。本文分享Nginx从基础配置到高可用架构的完整实战经验。
Nginx核心概念
模块化架构:Nginx由核心模块和功能模块组成。模块按需加载,编译时确定。
事件驱动:基于事件驱动的异步架构。单个Worker处理大量并发连接。
进程模型:Master进程管理Worker进程。Worker进程处理实际请求。
配置语法:配置块(server/location)、指令、变量。
基础配置
静态文件服务:server { listen 80; server_name example.com; root /var/www/html; }
反向代理:location / { proxy_pass http://backend; proxy_set_header Host $host; }
负载均衡:upstream backend { server 127.0.0.1:8080; server 127.0.0.1:8081; }
https配置:SSL证书配置、HTTPS重定向、HSTS配置。
负载均衡策略
轮询(Round Robin):默认策略,每个请求依次分发。
最少连接(Least Connections):分发到连接数最少的服务器。
IP哈希(IP Hash):同一IP的请求分发到同一服务器。用于Session保持。
加权轮询(Weighted Round Robin):按权重比例分发。用于服务器性能不同时。
URL哈希(URL Hash):按URL哈希值分发。提高缓存命中率。
缓存配置
proxy_cache_path:定义缓存路径和参数。levels、keys_zone、max_size、inactive。
proxy_cache:启用缓存。指定使用的缓存区。
proxy_cache_valid:设置不同状态码的缓存时间。
proxy_cache_key:定义缓存Key的组成。默认包含$scheme$proxy_host$request_uri。
缓存清理:proxy_cache_purge模块或ngx_cache_purge。
安全配置
隐藏版本号:server_tokens off; 隐藏Nginx版本号。
限制请求方法:limit_except GET POST PUT DELETE { deny all; }
防止点击劫持:add_header X-Frame-Options “SAMEORIGIN”;
XSS防护:add_header X-XSS-Protection “1; mode=block”;
IP黑白名单:allow/deny指令设置IP访问控制。
性能优化
Worker进程数:worker_processes auto; 自动设置为CPU核心数。
Worker连接数:worker_connections 65535; 每个Worker的最大连接数。
Keepalive连接:upstream中配置keepalive连接数。减少连接建立开销。
Gzip压缩:gzip on; gzip_types text/plain application/json; 减少传输大小。
静态资源缓存:location ~* .(css|js|jpg|png)$ { expires 30d; } 浏览器缓存。
高可用架构
Keepalived:通过VRRP协议实现Nginx高可用。Master-Backup模式。
双机热备:两台Nginx服务器,一台Master一台Backup。VIP漂移实现故障切换。
健康检查:Nginx Plus或第三方模块实现健康检查。故障自动摘除。
应用层高可用:Nginx + upstream健康检查。无缝切换。
日志与监控
日志格式:定义JSON格式日志,便于ELK收集和分析。日志级别:error日志和access日志分离。监控:使用Prometheus exporter或Prometheus nginx指标采集。分析工具:GoAccess、AWStats等日志分析工具。
更多技术文章:https://blog.hanyucloud.com | 客服:400-880-3980

















暂无评论内容