Nginx 静态文件、反向代理、负载均衡、缓存、SSL/TLS 加密、gzip 压缩 等等
Nginx的功能
- 1. 静态文件服务器
- 2. 反向代理服务器
- 3. 负载均衡
- 4. 缓存
- 5. SSL/TLS 加密
- 6. URL 重写
- 7. HTTP/2
- 8. WebSocket
- 9. 反向代理缓存
- 10. 安全限制
- 11. gzip 压缩
- 12. 请求限速
- 13. 日志记录
- 14. SSL 证书续订
Nginx 是一个高性能的开源 Web 服务器和反向代理服务器,它具有丰富的功能和灵活的配置选项。本文将介绍 Nginx 的各种作用,并提供相应的示例。

1. 静态文件服务器
Nginx 可以作为静态文件服务器,快速地提供静态文件的访问。以下是一个示例配置:
server {listen 80;server_name your_domain.com;location /static {root /path/to/static/files;}
}
2. 反向代理服务器
Nginx 是一款出色的反向代理服务器,可以代理后端服务器的请求,并提供负载均衡和高可用性。以下是一个示例配置:
server {listen 80;server_name your_domain.com;location / {proxy_pass http://backend_server;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}# 配置多个代理location /blog1 {proxy_pass http://blog1_backend_address;}location /blog2 {proxy_pass http://blog2_backend_address;}location /blog3 {proxy_pass http://blog3_backend_address;}
}
3. 负载均衡
Nginx 的负载均衡功能可以将请求均匀地分发给多个后端服务器,提高系统的性能和可扩展性。以下是一个示例配置:
http {upstream backend {server backend1.example.com;server backend2.example.com;server backend3.example.com;}server {listen 80;server_name your_domain.com;location / {proxy_pass http://backend;}}
}
4. 缓存
Nginx 的缓存功能可以缓存静态内容或动态页面,提高网站的响应速度和性能。以下是一个示例配置:
http {proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m;server {listen 80;server_name your_domain.com;location / {proxy_cache my_cache;proxy_pass http://backend_server;}}
}
5. SSL/TLS 加密
Nginx 可以配置 SSL/TLS 加密,确保通过 HTTPS 进行安全的通信。以下是一个示例配置:
server {listen 443 ssl;server_name your_domain.com;ssl_certificate /path/to/certificate.crt;ssl_certificate_key /path/to/private.key;location / {proxy_pass http://backend_server;}
}
6. URL 重写
Nginx 支持 URL 重写功能,可以修改请求的 URL 地址。以下是一个示例配置:
server {listen 80;server_name your_domain.com;location /old-url {rewrite /old-url/(.*) /new-url/$1 permanent;}location / {proxy_pass http://backend_server;}
}
7. HTTP/2
Nginx 支持 HTTP/2 协议,提供更快的网站加载速度和性能。以下是一个示例配置:
server {listen 443 ssl http2;server_name your_domain.com;ssl_certificate /path/to/certificate.crt;ssl_certificate_key /path/to/private.key;location / {proxy_pass http://backend_server;}
}
8. WebSocket
Nginx 支持 WebSocket 协议,可以实现实时通信和双向数据传输。以下是一个示例配置:
server {listen 80;server_name your_domain.com;location /websocket {proxy_pass http://backend_server;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "Upgrade";}
}
9. 反向代理缓存
Nginx 的反向代理缓存功能可以缓存后端服务器返回的动态内容,提高响应速度和减轻后端服务器负载。以下是一个示例配置:
http {proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m;server {listen 80;server_name your_domain.com;location / {proxy_cache my_cache;proxy_pass http://backend_server;}}
}
10. 安全限制
Nginx 可以通过配置安全限制来保护 Web 应用程序免受恶意攻击和未经授权的访问。以下是一个示例配置:
server {listen 80;server_name your_domain.com;# 限制ip地址location / {allow 192.168.1.0/24;deny all;proxy_pass http://backend_server;}
}
11. gzip 压缩
Nginx 可以启用 gzip 压缩,减小传输内容的大小,提高网站的加载速度。以下是一个示例配置:
http {gzip on;gzip_types text/plain text/css application/javascript;server {listen 80;server_name your_domain.com;location / {proxy_pass http://backend_server;}}
}
12. 请求限速
Nginx 可以限制每个客户端的请求速率,以保护服务器免受过多的请求影响。以下是一个示例配置:
http {limit_req_zone $binary_remote_addr zone=my_zone:10m rate=1r/s;server {listen 80;server_name your_domain.com;location / {limit_req zone=my_zone burst=5;proxy_pass http://backend_server;}}
}
13. 日志记录
Nginx 可以记录访问日志和错误日志,方便进行故障排查和性能分析。以下是一个示例配置:
http {access_log /var/log/nginx/access.log;error_log /var/log/nginx/error.log;server {listen 80;server_name your_domain.com;location / {proxy_pass http://backend_server;}}
}
14. SSL 证书续订
Nginx 支持 SSL 证书的续订,确保持续的安全通信。以下是一个示例配置:
server {listen 443 ssl;server_name your_domain.com;ssl_certificate /path/to/certificate.crt;ssl_certificate_key /path/to/private.key;ssl_certificate_renewal 30 days;location / {proxy_pass http://backend_server;}
}
以上示例展示了 Nginx 的各种功能和配置选项。通过适当的配置,你可以根据自己的需求和环境使用这些功能来构建高性能、安全可靠的 Web 服务。
请注意,在将上述示例用于生产环境之前,请仔细阅读 Nginx 的官方文档和相关指南,并进行适当的测试和调试。确保你的配置符合最佳实践,并遵循安全标准和性能优化建议。
相关文章:
Nginx 静态文件、反向代理、负载均衡、缓存、SSL/TLS 加密、gzip 压缩 等等
Nginx的功能 1. 静态文件服务器2. 反向代理服务器3. 负载均衡4. 缓存5. SSL/TLS 加密6. URL 重写7. HTTP/28. WebSocket9. 反向代理缓存10. 安全限制11. gzip 压缩12. 请求限速13. 日志记录14. SSL 证书续订 Nginx 是一个高性能的开源 Web 服务器和反向代理服务器,它…...
Linux设备驱动模型(一)
一、sysfs文件系统 sysfs是一个虚拟文件系统,将内核总的设备对象的链接关系,以文件目录的方式表示出来,并提对设备提供读写接口。 二、kobject kobject是内核中对象表示的基类,可以认为所有的内核对象都是一个kobject kobject单…...
【Python入门篇】——Python基础语法(标识符与运算符)
作者简介: 辭七七,目前大一,正在学习C/C,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: Python入门,本专栏主要内容为Python的基础语法,Python中的选择循环语句…...
扩展 VirtualBox 已分配磁盘的方法
扩展 VirtualBox 已分配磁盘的方法 第一步:用VirtualBox命令行调整已分配磁盘的大小第二步:用windows磁盘管理工具扩展磁盘空间其他无关配置如何选择虚拟机的芯片组 注意:扩展操作只支持 vdi 格式的磁盘,就是VirtualBox自己的磁盘…...
【LeetCode】646. 最长数对链
646. 最长数对链(中等) 思路 这道题和 300. 最长递增子序列 类似,我们可以定义 dp 数组,其中 dp[i] 表示以 i 结尾的子序列的性质。在处理好每个位置后,统计一遍各个位置的结果即可得到题目要求的结果。 但是题目中强…...
Makefile教程(Makefile的结构)
文章目录 前言一、Makefile的结构二、深入案例三、Makefile中的一些技巧总结 前言 一、Makefile的结构 Makefile 通常由一系列规则组成,每条规则定义了如何从源文件生成目标文件。每个规则又由目标、依赖和命令三部分组成。 下面是 Makefile 规则的基本结构&…...
SpringMVC(后)SSM整合
10、文件上传和下载 10.1、文件下载 ResponseEntity用于控制器方法的返回值类型,该控制器方法的返回值就是响应到浏览器的响应报文 使用ResponseEntity实现下载文件的功能 RequestMapping("/testDown") public ResponseEntity<byte[]> testResp…...
【博弈论】【第一章】博弈论导论
博弈论导论 【例题】选择数字【例题】巴什博弈【例题】射手博弈博弈论的基本概念:参与人战略行动信息支付函数【例题】分100元 课程概述: 【例题】选择数字 两个参与人A和B,轮流选择[3,4,5,6,7,8,9]中的一个整数(可重复)。当累计…...
keil移植linux(makefile)
文章目录 运行环境:1.1 freeRTOS_LED工程移植1)修改cubeMX配置2)setting设置3)launch设置4)修改makefile5)修改代码6)实验效果 运行环境: ubuntu18.04.melodic 宏基暗影骑士笔记本 stm32f427IIH6 stlink 9-24v可调电源 robomaster A 板 1.1 freeRTOS_L…...
C++——类和对象(3)
作者:几冬雪来 时间:2023年5月6日 内容:C类和对象内容讲解 目录 前言: 1.运算符重载(续): 2.赋值重载: 结尾: 前言: 在上一篇博客中我们再一次讲解了…...
itop-3568开发板驱动学习笔记(24)设备树(三)时钟实例分析
《【北京迅为】itop-3568开发板驱动开发指南.pdf》 学习笔记 文章目录 生产者属性#clock-cells 属性clock-output-namesclock-frequencyassigned-clockclock-indicesassigned-clock-parents 消费者属性 设备树中的时钟信息以时钟树形式体现,时钟树包括时钟的属性和结…...
linux中使用docker部署微服务
目录 一、制作jar包(如果看一眼很简单,可以直接使用结尾的jar) 1.首先创建一个微服务 demo2 2.启动微服务(在DemoApplication上右键执行启动就行) 注意:其他操作导致的 可能遇到的报错 3.修改端口 4.新…...
操作系统考试复习—第三章 优先级倒置 死锁问题
当前OS广泛采用优先级调度算法和抢占方式,然而在系统中存在着影响进程运行的资源从而可能产生"优先级倒置"现象 具体解释为:在原本的调度算法设计中,高优先级进程可以抢占低优先级的CPU资源,先执行高优先级任务。但是存…...
OpenHarmony送显流程分析
OpenHarmony送显流程分析 引言 本文档主要记录OpenHarmony在渲染完成之后如何进行合成和送显流程的。这个过程牵涉的代码很多,而且流程也是比较繁琐的。所以我一定要坚持下来。千万不能半途而废,也不要想着一口气吃出一个胖子,路漫漫其修远兮…...
Java面试题字节流字符流
String 编码UTF-8 和GBK的区别 GBK编码:是指中国的中文字符,其实它包含了简体中文与繁体中文字符,另外还有一种字符 “gb2312”,这种字符仅能存储简体中文字符。 UTF-8编码:它是一种全国家通过的一种编码&#x…...
Self-Attention结构细节及计算过程
一、结构 上面那个图其实不是那么重要,只要知道将输入的x矩阵转换成三个矩阵进行计算即可。自注意力结构的输入为 输入矩阵的三个变形 Q(query矩阵)、K(key矩阵)、V(value矩阵)构成,…...
在Ubuntu18.04中安装uWebSockets库
目录 1.下载uWebSockets库2.下载uSockets3.安装openssl开发包4.编译首先说明这里使用的Ubuntu版本为18.04。 1.下载uWebSockets库 下载uWebSockets库有两种方式,一是终端,从Github中克隆uWebSockets库到Ubuntu本地文件夹,二是打开uWebSockets库下载链接自己下载到Windows,然…...
【Fluent】接着上一次计算的结果继续计算,利用计算过程中得到的物理场(温度、速度、压力等)插值Interpolate文件初始化模型的方法
一、问题背景 因为fluent中支持的初始化无非三种类型。 1、Standard initialization 标准初始化 2、Hybridinitialization 混合初始化 3、FMG initialization FMG初始化 另外,还可以用UDF通过坐标判断的方式予以初始化。 但是这些初始化方法都没办法利用以前计算过…...
第二十九章 使用消息订阅发布实现组件通信
PubSubJS库介绍 如果你想在React中使用第三方库来实现Pub/Sub机制,PubSubJS是一个不错的选择。它是一个轻量级的库,可以在浏览器和Node.js环境中使用。 PubSubJS提供了一个简单的API,可以让你在应用程序中订阅和发布消息。你可以使用npm来安…...
Transformer的位置编码
1. 什么是位置编码,为什么要使用位置编码 简单来说位置编码就是给一个句子中的每个token一个位置信息,通过位置编码可以明确token的前后顺序关系。 对任何语言来说,句子中词汇的顺序和位置都是非常重要的。它们定义了语法,从而定…...
龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...
人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
FFmpeg avformat_open_input函数分析
函数内部的总体流程如下: avformat_open_input 精简后的代码如下: int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...
算法打卡第18天
从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder [9,3,15,20,7…...
