nginx使用详解
文章目录
- 一、前言
- 二、nginx使用详解
- 2.1、nginx特点
- 2.2 静态文件处理
- 2.3 反向代理
- 2.4 负载均衡
- 2.5 高级用法
- 2.5.1 正则表达式匹配
- 2.5.2 重定向
- 三、总结
一、前言
本文将详细介绍nginx的各个功能使用,主要包括
二、nginx使用详解
2.1、nginx特点
-
高性能:Nginx被设计成具有出色的性能。它采用事件驱动的异步架构,能够处理大量并发连接,高效地分发请求和响应。这使得Nginx非常适合用作反向代理、负载均衡器和Web服务器。
-
轻量级:Nginx的内存占用非常低,资源消耗较小。这使得它能够在资源有限的环境中运行,如嵌入式设备和虚拟私有服务器(VPS)。
-
高可用性:Nginx支持热部署和无缝升级,可以确保服务的高可用性。它还提供了健康检查和故障转移功能,以防止单点故障。
-
反向代理和负载均衡:Nginx可以作为反向代理服务器,将客户端请求分发给多个后端服务器,实现负载均衡。这有助于提高应用程序的可伸缩性和性能。
-
静态文件服务:Nginx能够高效地提供静态文件,如HTML、CSS、JavaScript和图像。它还支持文件缓存和浏览器缓存控制,以减少带宽消耗和提高网站速度。
2.2 静态文件处理
Nginx非常适合处理静态文件,如HTML、CSS、JavaScript、图像等。静态文件处理是通过配置Nginx来指定Web服务器从文件系统中提供这些文件。
配置示例:
server {listen 80;server_name example.com;location /static/ {alias /path/to/static/files/;}location / {# 其他配置,例如反向代理或动态内容处理}
}
location /static/指定了一个URL路径,如/static/,Nginx将会从/path/to/static/files/目录中提供静态文件。alias指令用于指定文件存储路径。
2.3 反向代理
说到反向代理就要先说正向代理:
正向代理最大的特点是:客户端非常明确要访问的服务器地址,服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端,正向代理模式屏蔽或者隐藏了真实客户端信息。
例如:在大陆访问www.google.com,我们需要一个代理服务器,我们通过代理服务器去访问谷歌,这个过程就是正向代理。下面是一个正向代理的图示:

反向代理,客户端堆代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器。

由于反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。
Nginx可以用作反向代理服务器,将客户端请求转发到后端服务器,并将后端服务器的响应返回给客户端。这对于隐藏后端服务器、负载均衡、加速应用程序等非常有用。
配置示例:
server {listen 80;server_name example.com;location / {proxy_pass http://backend_server;}
}upstream backend_server {server backend1.example.com;server backend2.example.com;
}
proxy_pass指令将请求代理到名为backend_server的上游服务器池,其中包括多个后端服务器。upstream块定义了后端服务器池,可以包括多个后端服务器。
2.4 负载均衡
Nginx可以实现负载均衡,将客户端请求均匀地分发到多个后端服务器上,提高系统的可伸缩性和性能。
配置示例:
upstream backend_servers {server backend1.example.com;server backend2.example.com;server backend3.example.com;
}server {listen 80;server_name example.com;location / {proxy_pass http://backend_servers;proxy_set_header Host $host;}
}
upstream块定义了包含多个后端服务器的服务器池。proxy_pass指令将请求代理到backend_servers上游服务器池,实现负载均衡。
2.5 高级用法
2.5.1 正则表达式匹配
Nginx支持正则表达式匹配,可以根据复杂的URL匹配规则来定制请求处理。
示例:
server {listen 80;server_name example.com;location ~ ^/blog/post/\d+ {# 匹配像 /blog/post/123 的URL# 进行特定处理}location ~* \.(jpg|png|gif)$ {# 匹配图片文件扩展名的URL# 进行缓存或其他处理}
}
~和~*修饰符用于正则表达式匹配。- 第一个
location块匹配像/blog/post/123这样的URL。 - 第二个
location块匹配以.jpg、.png或.gif结尾的URL。
2.5.2 重定向
Nginx允许对请求进行重定向,可以将请求从一个URL重定向到另一个URL。
示例:
server {listen 80;server_name example.com;location /old-url {return 301 /new-url;}location /external-link {return 302 http://external-website.com;}
}
return 301和return 302指令用于执行永久重定向和临时重定向。- 第一个
location块将/old-url重定向到/new-url。 - 第二个
location块将/external-link重定向到外部网站http://external-website.com。
三、总结
这些是Nginx的一些高级用法示例,Nginx非常强大和灵活,可以根据具体需求配置各种复杂的规则和行为。
如果本篇博客对您有一定的帮助,大家记得留言+点赞+收藏哦。
相关文章:
nginx使用详解
文章目录 一、前言二、nginx使用详解2.1、nginx特点2.2 静态文件处理2.3 反向代理2.4 负载均衡2.5 高级用法2.5.1 正则表达式匹配2.5.2 重定向 三、总结 一、前言 本文将详细介绍nginx的各个功能使用,主要包括 二、nginx使用详解 2.1、nginx特点 高性能ÿ…...
YOLOV7 添加 CBAM 注意力机制
用于学习记录 文章目录 前言一、CBAM1.1 models/common.py1.2 models/yolo.py1.3 yolov7/cfg/training/CBAM.yaml2.4 CBAM 训练结果图 前言 一、CBAM CBAM: Convolutional Block Attention Module 1.1 models/common.py class ChannelAttention(nn.Module):def __init__(sel…...
【SpringSecurity】七、SpringSecurity集成thymeleaf
文章目录 1、thymeleaf2、依赖部分3、定义Controller4、创建静态页面5、WebSecurityConfigurerAdapter6、权限相关7、当用户没有某权限时,页面不展示该按钮 1、thymeleaf 查了下读音,leaf/li:f/,叶子,前面的单词发音和时间time一…...
Go语言中的数组、切片和映射解析
目录 数组数组的声明数组循环 切片切片声明切片元素循环 映射Map的声明及初始化Map的遍历 数组 数组存放的是固定长度、相同类型的数据,而且这些存放的元素是连续的。 数组的声明 例如声明一个整形数组: array : [3]int{1, 2, 3}在类型名前加 [] 中括…...
MySql学习笔记03——DQL(数据查询)基本命令
DQL 导入数据 首先使用use database进入数据库中,然后使用命令 source D:\mysql_learning\mysql_learning\document\bjpowernode.sql注意文件名不能有双引号,命令结尾没有分号。 SQL脚本 .sql文件是SQL脚本文件,它里面的内容都是SQL语句…...
操作系统的四大特性
一、并发性 指操作系统同时运行着多个程序,这些程序宏观上是同时运行的,但微观上其实是交替运行的 补充1:并发性区别于并行性 并发是指两个或多个事件在同一时间间隔内发生,事件宏观上是同时进行的,围观上市交替进行的…...
旅游攻略APP外包开发功能
旅游攻略APP是帮助旅行者计划和享受旅行的工具,下面列出了一些常见的旅游攻略APP功能,以及在上线这类应用时需要注意的问题,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 常见…...
Apollo在Java中的使用
本节主要讲解在普通的 Java 项目和 Spring Boot 中如何使用 Apollo。 普通 Java 项目中使用 加入 Apollo Client 的 Maven 依赖,代码如下所示。 <dependency><groupId>com.ctrip.framework.apollo</groupId><artifactId>apollo-client<…...
Elasticsearch 全文搜索引擎 ---- IK分词器
原理:分词的原理:二叉树 首先讲一下为什么要出这个文章,前面我们讲过分词方法:中文分词搜索 pscws(感兴趣的同学可以去爬楼看一下),那为什么要讲IK分词?最主要的原因是&…...
Layer 2盛夏已至,StarkNet如何实现价值跃迁?
作者|Jason Jiang Layer 2概念在2023年夏天迎来爆发。Coinbase、ConsenSys等加密巨头纷纷下场,其部署的原生L2解决方案Base、Linea在过去两个月内相继完成主网上线;被誉为L2 四大天王之一的StarkNet也在夏天顺利完成“量子跃迁”升级&#x…...
KaiwuDB 受邀亮相 2023 中国国际“软博会”
8月31日,第二十五届中国国际软件博览会(以下简称“软博会”)在天津盛大开幕。KaiwuDB 受邀亮相展会,围绕“塑造软件新生态,赋能发展新变革”主题,重点展示自研分布式多模数据库及各大行业解决方案ÿ…...
RS-485/RS-422收发器电路 DP3085 国产低成本替代MAX3085
DP3085是5V、半双工、15kV ESD 保护的 RS-485/RS-422 收发器电路,电路内部包含一路驱动器和一路接收器。 DP3085具有增强的摆率限制,助于降低输出 EMI 以及不匹配的终端连接引起的反射,实现 500kbps 的无误码数据传输。 DP3085芯片接收器输入…...
R-which函数(带有arr.ind参数)
目录 一、which()函数 二、元素位置 一、which()函数 which()函数是R语言中的一个基础函数,用于返回满足指定条件的元素的位置或索引。 语法:which(x, arr.ind FALSE, useNames TRUE) 参数: - x:一个向量、数组或矩阵&#x…...
单片机通用学习-什么是时钟?
什么是时钟? 时钟是同步单片机系统各个部件工作时序的最小时间单位,时钟通过 CPU 控制,产生其他与时钟保持一定关系的同步控制信号,协调各部件的工作时序,没有时钟系统就崩溃了。 如 CPU 与存储器(RAM&am…...
PCL入门(二):初识点云数据
目录 1. 点云数据2. 对点云数据的简单操作3. 结果 1. 点云数据 在pcl里面,定义了很多点云数据类型,比如PointXYZ、PointXYZI、PointXYZRGBA等等,每一个都可以看做是点云的一个点的数据。而整个点云的数据类型被定义为PointCloud。 以pcl::P…...
LeetCode 面试题 03.01. 三合一
文章目录 一、题目二、C# 题解 一、题目 三合一。描述如何只用一个数组来实现三个栈。 你应该实现push(stackNum, value)、pop(stackNum)、isEmpty(stackNum)、peek(stackNum)方法。stackNum表示栈下标,value表示压入的值。 构造函数会传入一个stackSize参数&#x…...
【WebSocketIndexedDB】node+WebSocketIndexedDB开发简易聊天室
序幕介绍: WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。 讲人话就是说:WebSocket 使得客户端和服务器之间的数据交换变得更加简单,在 WebSocket API 中,浏览器和服务器只需要完成一次握手&#x…...
【01】弄懂共识机制PoW
基于工作量证明机制的共识机制PoW(Proof of Work) 特点就是多劳多特 共识过程 一个区块链系统中,交易历经多个步骤才能得以上链,并且需要经过多个节点的验证。以下是这些步骤的详细叙述: 交易进入交易池(内…...
QT C++ 基于TCP通信的网络聊天室
一、基本原理及流程 1)知识回顾(C语言中的TCP流程) 2)QT中的服务器端/客户端的操作流程 二、代码实现 1)服务器 .ui .pro 在pro文件中添加network库 .h #ifndef WIDGET_H #define WIDGET_H#include <QWidget>…...
SpringMVC入门详细介绍
一. SpringMVC简介 Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发&a…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...
