一、负载均衡高级策略
1. 加权轮询算法优化
通过为不同性能的服务器设置权重,使性能强劲的服务器承担更多请求:
upstream backend {
server server1 weight=3;
server server2 weight=1;
}
2. 会话保持机制
确保同一用户请求始终分配到同一后端服务器:
upstream backend {
ip_hash;
server server1;
server server2;
}
3. 最小连接数负载均衡
选择当前连接数最少的服务器处理请求:
upstream backend {
least_conn;
server server1;
server server2;
}
二、反向代理高级配置
1. 基于URL的精细化反向代理
针对不同URL路径设置不同代理目标:
location /api/ {
proxy_pass http://api_backend;
}
location /static/ {
proxy_pass http://static_backend;
}
2. 反向代理缓存控制
减轻后端服务器压力,加快响应速度:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=cache_zone:10m;
location / {
proxy_cache cache_zone;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
proxy_pass http://backend;
}
三、安全配置
1. IP白名单/黑名单
# IP白名单
location /admin {
allow 192.168.1.0/24;
deny all;
}
# IP黑名单
location / {
deny 192.168.1.100;
allow all;
}
2. 请求限制
location /api {
limit_except GET {
deny all;
}
}
3. User-Agent限制
if ($http_user_agent ~* "BadBot|Scrapy") {
return 403;
}
4. 安全HTTP头部配置
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
add_header X-XSS-Protection "1; mode=block";
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header Content-Security-Policy "default-src 'self'";
5. 隐藏Nginx版本信息
server_tokens off;
add_header Server "CustomServer";
四、高级性能优化
1. 全局优化配置
worker_processes auto;
worker_cpu_affinity 0001 0010 0100 1000; # 适用于4核CPU
events {
use epoll;
worker_connections 51200;
multi_accept on;
}
2. 连接处理优化
http {
proxy_connect_timeout 60s;
proxy_read_timeout 60s;
proxy_send_timeout 60s;
}
3. 限流配置
limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s;
location / {
limit_req zone=one burst=5;
}
五、高级应用场景
1. 静态资源代理
location /images/ {
root /var/www/static;
expires 30d;
add_header Cache-Control "public";
}
2. 解决前端跨域问题
location /api {
proxy_pass http://backend;
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
}
3. 作为下载服务器
location /download/ {
alias /var/www/downloads/;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}
六、Nginx可视化管理
Nginx-GUI使用案例
-
安装配置:
下载地址:
https://nginxui.com/zh_CN/guide/about.html
或https://github.com/onlyGuo/nginx-gui- 下载对应系统版本安装包
- 修改conf/conf.properties配置文件
- Linux需重命名lib/bin/java_vms为java_vms_nginx_gui
-
启动服务:
sudo chmod -R 777 nginx-gui/ nohup bash /root/web/nginx-gui/startup.sh > logs/nginx-gui.out & -
访问:默认地址
http://localhost:8889,用户名/密码:admin/admin
七、最佳实践总结
- 安全第一:始终隐藏Nginx版本信息,配置必要的安全HTTP头部
- 性能优化:根据服务器硬件配置合理的worker_processes和worker_connections
- 负载均衡策略:根据实际业务需求选择合适的负载均衡算法
- 缓存策略:合理配置反向代理缓存,减轻后端压力
- 监控与日志:启用状态页配置,定期分析访问日志
以上配置示例均基于Nginx 1.18+版本,可根据实际环境进行适当调整。在生产环境中使用前,建议在测试环境进行充分验证。
1万+

被折叠的 条评论
为什么被折叠?



