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;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/66438.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python编程与在线医疗平台数据挖掘与数据应用交互性研究

一、引言 1.1 研究背景与意义 在互联网技术飞速发展的当下,在线医疗平台如雨后春笋般涌现,为人们的就医方式带来了重大变革。这些平台打破了传统医疗服务在时间和空间上的限制,使患者能够更加便捷地获取医疗资源。据相关报告显示,中国基于互联网的医疗保健行业已进入新的…

Linux网络_套接字_UDP网络_TCP网络

一.UDP网络 1.socket()创建套接字 #include<sys/socket.h> int socket(int domain, int type, int protocol);domain (地址族): AF_INET网络 AF_UNIX本地 AF_INET&#xff1a;IPv4 地址族&#xff0c;适用于 IPv4 协议。用于网络通信AF_INET6&#xff1a;IPv6 地址族&a…

1 行命令引发的 Go 应用崩溃

一、前言 不久前&#xff0c;阿里云 ARMS 团队、编译器团队、MSE 团队携手合作&#xff0c;共同发布并开源了 Go 语言的编译时自动插桩技术。该技术以其零侵入的特性&#xff0c;为 Go 应用提供了与 Java 监控能力相媲美的解决方案。开发者只需将 go build 替换为新编译命令 o…

R语言的并发编程

R语言的并发编程 引言 在现代计算中&#xff0c;如何有效地利用计算资源进行数据处理和分析已成为一个重要的研究方向。尤其在大数据时代&#xff0c;数据量的急剧增加让单线程处理方式显得力不从心。为了解决这一问题&#xff0c;各种编程语言都开展了并发编程的研究和应用。…

Flink(十):DataStream API (七) 状态

1. 状态的定义 在 Apache Flink 中&#xff0c;状态&#xff08;State&#xff09; 是指在数据流处理过程中需要持久化和追踪的中间数据&#xff0c;它允许 Flink 在处理事件时保持上下文信息&#xff0c;从而支持复杂的流式计算任务&#xff0c;如聚合、窗口计算、联接等。状…

C#项目生成时提示缺少引用

问题描述 刚从git或svn拉取下来的C#项目&#xff0c;在VS生成时提示缺少引用 解决方案 1、从“管理NuGet程序包”中下载并安装缺少的引用&#xff0c;如果引用较多逐个下载安装会比较麻烦&#xff0c;建议采用下面第2种方案处理 2、通过命令对所有缺少引用进行安装 &#…

EAMM: 通过基于音频的情感感知运动模型实现的一次性情感对话人脸合成

EAMM: 通过基于音频的情感感知运动模型实现的一次性情感对话人脸合成 1所有的材料都可以在EAMM: One-Shot Emotional Talking Face via Audio-Based Emotion-Aware Motion Model网站上找到。 摘要 尽管音频驱动的对话人脸生成技术已取得显著进展&#xff0c;但现有方法要么忽…

BeanFactory 是什么?它与 ApplicationContext 有什么区别?

谈到Spring&#xff0c;那势必要讲讲容器 BeanFactory 和 ApplicationContext。 BeanFactory是什么&#xff1f; BeanFactory&#xff0c;其实就是 Spring 容器&#xff0c;用于管理和操作 Spring 容器中的 Bean。可能此时又有初学的小伙伴会问&#xff1a;Bean 是什么&#x…

【深度学习】Huber Loss详解

文章目录 1. Huber Loss 原理详解2. Pytorch 代码详解3.与 MSELoss、MAELoss 区别及各自优缺点3.1 MSELoss 均方误差损失3.2 MAELoss 平均绝对误差损失3.3 Huber Loss 4. 总结4.1 优化平滑4.2 梯度较好4.3 为什么说 MSE 是平滑的 1. Huber Loss 原理详解 Huber Loss 是一种结合…

python实现pdf转word和excel

一、引言   在办公中&#xff0c;我们经常遇收到pdf文件格式&#xff0c;因为pdf格式文件不易修改&#xff0c;当我们需要编辑这些pdf文件时&#xff0c;经常需要开通会员或收费功能才能使用编辑功能。今天&#xff0c;我要和大家分享的&#xff0c;是如何使用python编程实现…

【PyCharm】连接Jupyter Notebook

【PyCharm】相关链接 【PyCharm】连接 Git【PyCharm】连接Jupyter Notebook【PyCharm】快捷键使用【PyCharm】远程连接Linux服务器【PyCharm】设置为中文界面 【PyCharm】连接Jupyter Notebook PyCharm连接Jupyter Notebook的过程可以根据不同的需求分为 本地连接 和 远程连…

Java锁 公平锁和非公平锁 ReentrantLock() 深入源码解析

卖票问题 我们现在有五个售票员 五个线程分别卖票 卖票 ReentrantLock(); 运行后全是 a 对象获取 非公平锁缺点之一 容易出现锁饥饿 默认是使用的非公平锁 也可以传入一个 true 参数 使其变成公平锁 生活中排队讲求先来后到 视为公平 程序中的公平性也是符合请求锁的绝对…

「刘一哥GIS」系列专栏《GRASS GIS零基础入门实验教程(配套案例数据)》专栏上线了

「刘一哥GIS」系列专栏《GRASS GIS零基础入门实验教程》全新上线了&#xff0c;欢迎广大GISer朋友关注&#xff0c;一起探索GIS奥秘&#xff0c;分享GIS价值&#xff01; 本专栏以实战案例的形式&#xff0c;深入浅出地介绍了GRASS GIS的基本使用方法&#xff0c;用一个个实例讲…

企业级NoSQL数据库Redis

1.浏览器缓存过期机制 1.1 最后修改时间 last-modified 浏览器缓存机制是优化网页加载速度和减少服务器负载的重要手段。以下是关于浏览器缓存过期机制、Last-Modified 和 ETag 的详细讲解&#xff1a; 一、Last-Modified 头部 定义&#xff1a;Last-Modified 表示服务器上资源…

使用Flask和Pydantic实现参数验证

使用Flask和Pydantic实现参数验证 1 简介 Pydantic是一个用于数据验证和解析的 Python 库&#xff0c;版本2的性能有较大提升&#xff0c;很多框架使用Pydantic做数据校验。 # 官方参考文档 https://docs.pydantic.dev/latest/# Github地址 https://github.com/pydantic/pyd…

ScratchLLMStepByStep:训练自己的Tokenizer

1. 引言 分词器是每个大语言模型必不可少的组件&#xff0c;但每个大语言模型的分词器几乎都不相同。如果要训练自己的分词器&#xff0c;可以使用huggingface的tokenizers框架&#xff0c;tokenizers包含以下主要组件&#xff1a; Tokenizer: 分词器的核心组件&#xff0c;定…

C# OpenCvSharp 部署3D人脸重建3DDFA-V3

目录 说明 效果 模型信息 landmark.onnx net_recon.onnx net_recon_mbnet.onnx retinaface_resnet50.onnx 项目 代码 下载 参考 C# OpenCvSharp 部署3D人脸重建3DDFA-V3 说明 地址&#xff1a;https://github.com/wang-zidu/3DDFA-V3 3DDFA_V3 uses the geometri…

从零开始学数据库 day2 DML

从零开始学数据库&#xff1a;DML操作详解 在今天的数字化时代&#xff0c;数据库的使用已经成为了各行各业的必备技能。无论你是想开发一个简单的应用&#xff0c;还是想要管理复杂的数据&#xff0c;掌握数据库的基本操作都是至关重要的。在这篇博客中&#xff0c;我们将专注…

Java 8 Stream API

文章目录 Java 8 Stream API1. Stream2. Stream 的创建3. 常见的 Stream 操作3.1 中间操作3.2 终止操作 4. Stream 的并行操作 Java 8 Stream API Java 8 引入了 Stream API&#xff0c;使得对集合类&#xff08;如 List、Set 等&#xff09;的操作变得更加简洁和直观。Stream…

运行fastGPT 第五步 配置FastGPT和上传知识库 打造AI客服

运行fastGPT 第五步 配置FastGPT和上传知识库 打造AI客服 根据上一步的步骤&#xff0c;已经调试了ONE API的接口&#xff0c;下面&#xff0c;我们就登陆fastGPT吧 http://xxx.xxx.xxx.xxx:3000/ 这个就是你的fastGPT后台地址&#xff0c;可以在configer文件中找到。 账号是…