nginx常用配置 (含负载均衡、反向代理、限流、Gzip压缩、图片防盗链 等示例)
nginx的配置文件通常在 /etc/nginx/nginx.conf , /etc/nginx/conf.d/*.conf 中,
一般直接 改 conf.d目录下的 default.conf文件,
然后
先检测配置文件是否有错误
nginx -t
再重新加载配置文件 或 重启nginx,命令如下
nginx -s reload
或
systemctl restart nginx
1 入门
# 这是一个最基本的Nginx配置,监听80端口,并返回根目录下的index.html文件
server {listen 80; # 监听80端口server_name localhost; # 服务器名称为localhostlocation / {root /usr/share/nginx/html; # 设置根目录为/usr/share/nginx/htmlindex index.html; # 默认返回index.html文件}
}
2 配置多个server块,多域名,多端口都大同小异
# 配置多个server块,分别监听不同的域名
server {listen 80;server_name girl.taobao.com;location / {root /usr/share/nginx/html/aa; #看index index.html;}
}server {listen 80;server_name huwai.taobao.com;location / {root /usr/share/nginx/html/bb; #看index index.html;}
}
3 配置反向代理
# 配置Nginx作为反向代理,将请求转发到后端服务器
server {listen 80;server_name huwai.taobao.com;location / {proxy_pass http://localhost:9001; # 将请求转发到这里proxy_set_header Host $host; # 设置请求头proxy_set_header X-Real-IP $remote_addr; # 传递客户端真实IP}
}
4 配置负载均衡
# 配置Nginx作为负载均衡器,将请求分发到多个后端服务器
upstream backend {server 127.0.0.1:9001; # 后端服务器1server 127.0.0.1:9002; # 后端服务器2
}server {listen 80;server_name huwai.taobao.com;location / {proxy_pass http://backend; # 将请求转发到upstream定义的backend}
}
5 配置自定义错误页面,此示例中的404.html和50x.html位于/usr/share/nginx/html/ 目录 下
# 配置Nginx自定义错误页面
server {listen 80;server_name huwai.taobao.com;location / {root /usr/share/nginx/html;index index.html;}# 自定义404错误页面error_page 404 /404.html;location = /404.html {root /usr/share/nginx/html; # 看}# 自定义50x错误页面error_page 500 502 503 504 /50x.html;location = /50x.html {root /usr/share/nginx/html; # 看}
}
6 配置限流
# 定义一个限流区域,每秒允许1个请求
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;server {listen 80;server_name huwai.taobao.com;# 设置限流状态码为503,并通过error_page指向自定义页面error_page 503 /50x.html;location / {limit_req zone=one burst=5 nodelay; # 应用限流,允许突发5个请求,立即拒绝超出burst限制的请求root /usr/share/nginx/html;index index.html;# 当触发限流时返回503状态码limit_req_status 503;}# 配置50x错误页面的位置location = /50x.html {root /usr/share/nginx/html;}
}
7 负载均衡+限流
# 定义一个限流区域,每秒允许1个请求(您可以根据需要调整)
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;upstream backend {server 127.0.0.1:9001; # 后端服务器1server 127.0.0.1:9002; # 后端服务器2
}server {listen 80;server_name huwai.taobao.com;location / {# 应用限流规则,使用之前定义的限流区域,并设置突发请求数量为5limit_req zone=one burst=5 nodelay;# 设置限流状态码为503,并通过error_page指向自定义页面limit_req_status 503;# 当触发限流时返回到自定义的503错误页面error_page 503 /50x.html;proxy_pass http://backend; # 将请求转发到upstream定义的backend# 配置后端服务器响应头的调整等(可选)proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}# 配置50x错误页面的位置location = /50x.html {root /usr/share/nginx/html; # 假设您的50x.html位于此目录下}
}
8 配置Gzip压缩
# 配置Nginx启用Gzip压缩,减少传输数据量
server {listen 80;server_name huwai.taobao.com;gzip on; # 启用Gzip压缩gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; # 指定压缩的文件类型location / {root /usr/share/nginx/html;index index.html;}
}
9 静态资源服务器综合配置,此示例中的404.html和50x.html位于/usr/share/nginx/html/ 目录 下
server {listen 80;server_name huwai.taobao.com;# 设置根目录root /usr/share/nginx/html;# 启用Gzip压缩(适用于文本文件)gzip on;gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;# 图片缓存优化location ~* \.(jpg|jpeg|png|gif|ico|webp|svg)$ {expires 30d; # 设置缓存时间为30天add_header Cache-Control "public"; # 允许公共缓存add_header Pragma "public"; # 支持旧版HTTP客户端add_header Vary "Accept-Encoding"; # 根据Accept-Encoding头进行缓存# 图片防盗链配置valid_referers none blocked huwai.taobao.com *.huwai.taobao.com;if ($invalid_referer) {return 403; # 如果来源不在允许列表中,返回403 Forbidden}}# HTML、CSS、JS缓存优化location ~* \.(html|css|js)$ {expires 7d; # 设置缓存时间为7天add_header Cache-Control "public";add_header Pragma "public";add_header Vary "Accept-Encoding";}# 防止访问隐藏文件(如 .htaccess)location ~ /\. {deny all;}# 配置错误页面error_page 404 /404.html;location = /404.html {root /usr/share/nginx/html;}error_page 500 502 503 504 /50x.html;location = /50x.html {root /usr/share/nginx/html;}# 配置日志access_log /var/log/nginx/static_access.log;error_log /var/log/nginx/static_error.log;
}
相关文章:
nginx常用配置 (含负载均衡、反向代理、限流、Gzip压缩、图片防盗链 等示例)
nginx的配置文件通常在 /etc/nginx/nginx.conf , /etc/nginx/conf.d/*.conf 中, 一般直接 改 conf.d目录下的 default.conf文件, 然后 先检测配置文件是否有错误 nginx -t 再重新加载配置文件 或 重启nginx,命令如下 nginx -s reload 或…...
21.1、网络设备安全概述
目录 网络设备安全概况——交换机、路由器安全威胁 网络设备安全概况——交换机、路由器安全威胁 第一个是MAC地址泛洪,MAC地址表记录着交换机拥有的MAC地址跟端口的对应关系 MAC地址表主要是三个字段,MAC地址对应的端口号,也就表示主机是连…...
通过idea创建的springmvc工程需要的配置
在创建的spring mvc工程中,使用idea开发之前需要配置文件包括porm.xml、web.xml、springmvc.xml 1、porm.xml 工程以来的spring库,主要包括spring-aop、spring-web、spring-webmvc,示例配置如下: <project xmlns"http:/…...
Redis 持久化机制:RDB 和 AOF
Redis 持久化机制:RDB 和 AOF Redis 主要提供了两种持久化方式:**RDB(Redis Database)**和 AOF(Append-Only File)。它们各自的实现原理、优缺点以及适用场景如下。 1. RDB(Redis Database&…...
【博客之星评选】2024年度前端学习总结
故事的开端...始于2024年第一篇前端技术博客 那故事的终末...也该结束于陪伴了我一整年的前端知识了 踏入 2025 年,满心激动与自豪,我成功闯进了《2024 年度 CSDN 博客之星总评选》的 TOP300。作为一名刚接触技术写作不久的萌新,这次能走到这…...
将IDLE里面python环境pyqt5配置的vscode
首先安装pyqt5全套:pip install pyqt5-tools 打开Vscode: 安装第三方扩展:PYQT Integration 成功配置designer.exe的路径【个人安装pyqt5的执行路径】,便可直接打开UI文件,进行编辑。 配置pyuic,如果下图填写方法使用…...
【专题三:穷举vs暴搜vs深搜vs回溯vs剪枝】46. 全排列
1.题目解析 2.讲解算法原理 1.首先画出决策树,越详细越好 2.设计代码 全局变量 List<List<Integer>> retList<Integer> pathboolean[] check dfs函数 仅关心某一节点在干什么 细节问题回溯 干掉path最后一个元素修改check权限 剪枝 check中为…...
使用傅里叶变换进行图像边缘检测
使用傅里叶变换进行图像边缘检测 今天我们介绍通过傅里叶变换求得图像的边缘 什么是傅立叶变换? 简单来说,傅里叶变换是将输入的信号分解成指定样式的构造块。例如,首先通过叠加具有不同频率的两个或更多个正弦函数而生成信号f(x…...
DDD FAQs梳理
术语 领域:一种专门活动的范围、部类。 子域:一个领域细分出的多个子领域。 核心域:具备核心竞争力的子域。 通用域:同时被多个子域使用的通用功能子域,比如认证、权限。 支撑域:一些辅助性或后台功能组成…...
新星杯-ESP32智能硬件开发--SoC基础
本博文内容导读 1、当前嵌入式系统的发展情况,分析SoC作为物联网开发的重要技术,是未来物联网发展重要方向。 2、介绍SoC系统的组成和系统特点,了解SoC打下SoC基础。 3、介绍基于ESP32的SoC系列开发板,ESP32开发的系统功能进行总…...
WDM_OTN_基础知识_波分系统的网络位置
波分系统简介和OTU 在这节课的内容中,我们主要介绍,波分系统在整个通信网络中的位置,波分系统的构成和它的架构,波分设备的构成和信号图,以及OUT的功能和分类及波分系统的应用场景。 波分系统在整个通信网络中&#x…...
计算机网络 (46)简单网络管理协议SNMP
前言 简单网络管理协议(SNMP,Simple Network Management Protocol)是一种用于在计算机网络中管理网络节点的标准协议。 一、概述 SNMP是基于TCP/IP五层协议中的应用层协议,它使网络管理员能够管理网络效能,发现并解决网…...
Excel重新踩坑6:工作实战总结之根据筛选条件求平均成绩
一、前言: 这个博客的实战场景:给了一组学生数据,这些数据中,有全市20个社区,1-9年级的学生各科成绩。要求按照各社区统计1-9年级的所有学生各科平均值。下面首先介绍会用到的一些函数,然后再简单说明实战…...
使用 Java 和 FreeMarker 实现自动生成供货清单,动态生成 Word 文档,简化文档处理流程。
在上一篇博客中主要是使用SpringBootApache POI实现了BOM物料清单Excel表格导出,详见以下博客: Spring Boot Apache POI 实现 Exc()el 导出:BOM物料清单生成器(支持中文文件名、样式美化、数据合并&#…...
20250118拿掉荣品pro-rk3566开发板上Android13下在uboot和kernel启动阶段的Rockchip这个LOGO标识
20250118拿掉荣品pro-rk3566开发板上Android13下在uboot和kernel启动阶段的Rockchip这个LOGO标识 2025/1/18 15:12 缘起:做飞凌OK3588-C开发板/核心板【Linux R4】的时候,测试/生产要求没有开机LOGO【飞凌/Rockchip】 要求:黑屏或者中性界面。…...
《Hands_On_LLM》8.3: 检索增强生成-RAG技术概论
3.检索增强生成 (Retrieval-Augmented Generation (RAG)) LLM 的大规模应用很快导致人们向它们提问,并期望得到符合实际的答案。虽然这些模型可以正确回答一些问题,但它们也自信地回答了许多错误的问题。为了纠正这种行为,业界转而采用的主要…...
CSS中样式继承+优先级
继承属性和非继承属性 一、定义及分类 1、继承属性是指在父元素上设置了这些属性后,子元素会自动继承这些属性的值,除非子元素显式地设置了不同的值。 常见的继承属性: 字体 font 系列文本text-align text-ident line-height letter-spacing颜色 col…...
Vue进阶之旅:核心技术与页面应用实战(路由进阶)
文章目录 一、路由模块封装二、声明式导航(一)导航链接与高亮(二)声明式导航传参1. 查询参数传参2. 动态路由传参 三、路由重定向、404 与模式设置(一)路由重定向(二)路由 404&#…...
单片机存储器和C程序编译过程
1、 单片机存储器 只读存储器不是并列关系,是从ROM发展到FLASH的过程 RAM ROM 随机存储器 只读存储器 CPU直接存储和访问 只读可访问不可写 临时存数据,存的是CPU正在使用的数据 永久存数据,存的是操作系统启动程序或指令 断电易失 …...
Vue.js 动态设置表格最大高度的实现
概述 在现代 Web 开发中,响应式设计至关重要,尤其是在处理复杂的布局和数据表格时。表格通常会受到多种因素的影响,如分页、合计行或动态内容,这可能导致表格高度的变化。本文将介绍一个基于 Vue.js 的方法 setMaxHeight…...
引领交互新高度:探索Tornis——您的视口状态守护者
引领交互新高度:探索Tornis——您的视口状态守护者 【免费下载链接】tornis Tornis helps you watch and respond to changes in your browsers viewport 🌲 项目地址: https://gitcode.com/gh_mirrors/to/tornis Tornis是一款轻量级JavaScript库…...
【紧急预警】92%的AI产品团队正在用Web 2.0测试框架跑大模型实验!3步重构为AI-Native A/B框架(含Kubernetes-native部署清单)
第一章:AI原生软件研发A/B测试框架设计 2026奇点智能技术大会(https://ml-summit.org) AI原生软件的研发范式正从“模型即服务”转向“模型即构件”,其核心挑战在于如何科学评估模型变更对端到端业务指标的影响。传统Web A/B测试框架无法满足AI系统特有…...
基于MATLAB的MT-2型车钩缓冲器的列车纵向动力学仿真,牵引制动特性,车辆冲击试验
基于MATLAB的MT-2型车钩缓冲器的列车纵向动力学仿真,牵引制动特性,车辆冲击试验,线路模拟 根据MT-2型缓冲器的结构建立了详细的数学模型,并应用于列车纵向动力学仿真 (带程序使用说明和源代码,原文献&#…...
AgentCPM研报助手效果实测:生成高质量行业趋势分析
AgentCPM研报助手效果实测:生成高质量行业趋势分析 1. 引言:当AI遇见专业研报写作 在金融投资、市场研究和学术分析领域,撰写深度研究报告一直是一项耗时费力的工作。传统流程需要分析师花费数天时间收集数据、整理资料、分析趋势ÿ…...
大模型工程化成熟度测评指南(SITS2026官方适配版):12项指标自评表+3个高危信号预警+1次免费基准评估入口
第一章:SITS2026发布:大模型工程化成熟度模型 2026奇点智能技术大会(https://ml-summit.org) SITS2026(Software Intelligence & Trustworthiness Scale 2026)是首个面向大模型全生命周期的工程化成熟度评估框架,…...
OpenClaw从入门到应用——频道:Signal
通过OpenClaw实现副业收入:《OpenClaw赚钱实录:从“养龙虾“到可持续变现的实践指南》 Quick setup (beginner) 为机器人使用一个独立的 Signal 号码(推荐)。安装 signal-cli(如果使用 JVM 构建版,需要 J…...
如何通过wireshark抓取802.11无线网络的数据包
原文链接:https://wiki.wireshark.org/CaptureSetup/WLAN全文总结 本文围绕IEEE 802.11(WLAN)无线网络抓包环境搭建展开详细说明,核心讲解了在使用Wireshark、TShark等工具抓取无线流量时,不同抓包需求对应的配置方式、…...
为什么你的AI模型API文档总比代码慢3.2个迭代?揭秘头部AIGC公司正在封测的文档-代码双向绑定协议(RFC-AIDoc v0.9草案首曝)
第一章:AI原生软件研发自动化文档更新机制 2026奇点智能技术大会(https://ml-summit.org) AI原生软件研发范式正推动文档生命周期从“人工维护”跃迁至“语义驱动的实时同步”。其核心在于将代码、测试、API契约与自然语言描述统一建模为可推理的知识图谱ÿ…...
2026年AI人才市场预测:供不应求的领域
随着人工智能技术的飞速发展,2026年已成为AI深度融入产业的关键节点。软件测试从业者正站在变革的十字路口,传统测试模式加速向智能化转型,催生了一系列高价值的新兴岗位。本报告从专业视角出发,分析AI人才市场的供需失衡现象&…...
OBS背景移除插件:零绿幕实现专业级直播虚化的终极指南
OBS背景移除插件:零绿幕实现专业级直播虚化的终极指南 【免费下载链接】obs-backgroundremoval An OBS plugin for removing background in portrait images (video), making it easy to replace the background when recording or streaming. 项目地址: https://…...
