当前位置: 首页 > news >正文

Nginx高级用法案例汇总

一、负载均衡高级策略

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核CPUevents {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使用案例

  1. 安装配置
    下载地址:
    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
  2. 启动服务

    sudo chmod -R 777 nginx-gui/
    nohup bash /root/web/nginx-gui/startup.sh > logs/nginx-gui.out &
    
  3. 访问:默认地址http://localhost:8889,用户名/密码:admin/admin

七、最佳实践总结

  1. 安全第一:始终隐藏Nginx版本信息,配置必要的安全HTTP头部
  2. 性能优化:根据服务器硬件配置合理的worker_processes和worker_connections
  3. 负载均衡策略:根据实际业务需求选择合适的负载均衡算法
  4. 缓存策略:合理配置反向代理缓存,减轻后端压力
  5. 监控与日志:启用状态页配置,定期分析访问日志

以上配置示例均基于Nginx 1.18+版本,可根据实际环境进行适当调整。在生产环境中使用前,建议在测试环境进行充分验证。

http://www.dtcms.com/a/394828.html

相关文章:

  • Python开发:使用FastAPI创建后端服务
  • Nginx配置中location和proxy_pass指令尾部是否带斜杠的区别
  • Nginx核心配置
  • 医院不良事件管理系统:提升医疗安全的智能化解决方案
  • 【$.post回调函数未被执行的原因分析】,第048篇
  • 远程连接服务器的远程重启办法shutdown -r -t 0
  • 【js】关于JWT的前端存储新思路
  • Unity官方Dots范例工程学习——Jobs101
  • 如何在SQLite中实现事务处理?
  • 广东省省考备考(第一百零四天9.22)——判断推理(强化训练)
  • k8s 常用命令
  • windows远程桌面服务安全加固的配置指南
  • datawhale玩转通义四大新模型 202509 第4次作业
  • MySQL 表约束实战指南:从概念到落地,守护数据完整性
  • 64位整型变量错误使用int类型对应的格式化符%d导致软件崩溃问题的排查与分析(借助deepseek辅助分析)
  • 【Linux操作系统】简学深悟启示录:Ext系列文件系统
  • 第8节-PostgreSQL数据类型-UUID
  • S2多维可视分析表格解析
  • 面经分享--百度开发一面
  • 第15讲 机器学习的数学
  • NestJS-身份验证JWT的使用以及登录注册
  • ChatGPT “影子泄露” 漏洞:黑客可隐秘窃取电子邮件数据
  • Coze Stdio模型配置
  • DSC 参数ARCH_HANG_FLAG对集群的影响
  • Android Jetpack Compose 从入门到精通
  • 【数据结构与算法-Day 31】图的遍历:深度优先搜索 (DFS) 详解,一条路走到黑的智慧
  • C#练习题——LinkedList 的进阶应用与测试
  • 手机CPU型号
  • jdbc相关知识
  • yolov12 导出onnx