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

NGINX常用功能—笔记

NGINX 是一款高性能的开源 Web 服务器和反向代理服务器,常用于处理高并发场景,其功能丰富且灵活。以下是 NGINX 的常用功能及详细说明:
一、静态资源服务器
功能说明:直接处理 HTML、CSS、JavaScript、图片、视频等静态文件请求,无需通过后端应用服务器,提升响应速度。
应用场景:
• 托管网站静态资源(如博客、企业官网)。
• 分离动态与静态资源,减轻后端压力。
配置示例:
 

location /static/ {root /var/www/html;  # 静态资源存放路径index index.html;    # 默认索引文件autoindex on;        # 开启目录浏览(测试环境使用,生产环境建议关闭)expires 30d;         # 设置缓存过期时间(减少重复请求)
}



二、反向代理
功能说明:作为客户端和后端服务器之间的中间层,将客户端请求转发到不同的后端服务器(如 Tomcat、Node.js、Django 等),隐藏真实服务器地址,提高安全性。
应用场景:
• 负载均衡:将请求分发到多个后端服务器,避免单点故障。
• 跨域请求处理:通过代理转发解决浏览器跨域限制。
配置示例:
 

server {listen 80;server_name example.com;location / {proxy_pass http://backend_server;  # 转发到后端服务器(如 http://127.0.0.1:8080)proxy_set_header Host $host;        # 传递客户端真实域名proxy_set_header X-Real-IP $remote_addr;  # 传递客户端真实 IP}
}



三、负载均衡
功能说明:通过算法将请求均匀分配到多个后端服务器,提升系统吞吐量和可用性。
常用负载均衡算法:
1. 轮询(默认):依次将请求分配到各个服务器。
2. 加权轮询:为不同性能的服务器设置权重(weight),权重越高分配请求越多。
3. IP 哈希:根据客户端 IP 地址进行哈希计算,确保同一客户端始终访问同一服务器(用于保持会话状态)。
4. 最少连接:将请求分配给当前连接数最少的服务器。
配置示例(加权轮询):
 

upstream backend {server 192.168.1.1 weight=3;  # 高配置服务器权重设为 3server 192.168.1.2 weight=1;  # 低配置服务器权重设为 1
}server {location / {proxy_pass http://backend;}
}



四、HTTP 缓存
功能说明:通过配置 expires、Cache-Control 等响应头,控制客户端(浏览器)或代理服务器对资源的缓存策略,减少重复请求和带宽消耗。
核心指令:
• expires:设置资源过期时间(如 expires 7d 表示 7 天后过期)。
• proxy_cache:配置代理缓存(用于缓存后端服务器响应结果,减少后端压力)。
应用场景:
• 缓存不常更新的静态资源(如图片、CSS、JS)。
• 降低动态请求的重复处理(需结合后端逻辑)

http://www.lryc.cn/news/2383285.html

相关文章:

  • JVM 性能问题排查实战10连击
  • 【jvm第8集】jvm调优工具(图形化工具)
  • Python测试单例模式
  • 多技术栈 iOS 项目的性能调试实战:从 Flutter 到 Unity(含 KeyMob 工具实测)
  • STM32简易计算机设计
  • GUI实验
  • 量子计算 | 量子密码学的挑战和机遇
  • linux系统查看硬盘序列号
  • 分享一些多模态文档解析思路
  • CSS 选择器入门
  • 【Django】Django DRF 中如何手动调用分页器返回分页数据(APIView,action场景)
  • AI知识梳理——RAG、Agent、ReAct、LangChain、LangGraph、MCP、Function Calling、JSON-RPC
  • Vue组件通信方式及最佳实践
  • 【实用教程】如何快速搭建一套私有的埋点系统?
  • 深入解析 Uniswap:自动做市商模型的数学推导与智能合约架构
  • spring配置并使用rabbitmq
  • Android开发——不同布局的定位属性 与 通用属性
  • React 19版本refs也支持清理函数了。
  • Python高效网络爬虫开发指南
  • Python爬虫实战:获取国家统计网最新消费数据并分析,为从业者做参考
  • Python中使用uv创建环境及原理详解
  • 阿尔泰科技助力电厂——520为爱发电!
  • 【Golang笔记02】函数、方法、泛型、接口学习笔记
  • C#语法篇 :基类子类转换,成员变化情况
  • 【漫话机器学习系列】264.内距(又称四分位差)Interquartile Range
  • 海外盲盒系统开发:重构全球消费体验的科技引擎
  • 高噪声下扩展边缘检测算子对检测边缘的影响
  • vuejs处理后端返回数字类型精度丢失问题
  • mysql数据库-中间件MyCat
  • 手搓四人麻将程序