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的前后顺序关系。 对任何语言来说,句子中词汇的顺序和位置都是非常重要的。它们定义了语法,从而定…...

Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...

高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...

【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...
Webpack性能优化:构建速度与体积优化策略
一、构建速度优化 1、升级Webpack和Node.js 优化效果:Webpack 4比Webpack 3构建时间降低60%-98%。原因: V8引擎优化(for of替代forEach、Map/Set替代Object)。默认使用更快的md4哈希算法。AST直接从Loa…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...
python爬虫——气象数据爬取
一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用: 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests:发送 …...