当前位置: 首页 > news >正文

Nginx(1)

文章目录

  • 概述
    • 基本的HTTP服务器功能
    • 其他 HTTP 服务器功能
    • 邮件代理服务器功能
    • TCP/UDP代理服务器功能
    • 架构和可扩展性
  • Nginx特性
    • web服务器
    • 负载均衡
    • 邮件代理服务器
  • 小结

概述

Nginx是http和反向代理服务器,邮件代理服务器,以及lgor Sysoev最初编写的通用TCP/UDP 代理服务器。

基本的HTTP服务器功能

  • 提供静态和索引文件,自动索引; 打开文件描述符缓存;
  • 加速反向代理和缓存;负载均衡和容错;
  • 通过缓存fastcgi, uwsgi, scgi和memcached服务器来加速支持;负载均衡和容错;
  • 模块化架构。过滤器包括gzip,字节范围,分块相应,xslt,ssi和图像变换过滤器。如果由代理或fastcgi/uwsgi/scgi服务器处理,则单页内的多个ssi包含可以并行处理;
  • SSL和TLS SNI支持。
  • 支持具有加权和依赖关系优先级的HTTP/2.

其他 HTTP 服务器功能

  • 基于名称和基于 IP 的虚拟服务器;
  • 保持活动和管道连接的支持;
  • 访问日志格式,缓冲日志写入,快速日志轮换和 syslog 日志记录;
  • 3xx-5xx 错误代码重定向;
  • 重写模块:使用正则表达式更改 URI;
  • 根据客户端地址执行不同的功能;
  • 根据客户端 IP 地址,密码(HTTP Basic 认证)和子请求结果进行访问控制;
  • HTTP 引用的验证
  • PUT,DELETE,MKCOL,COPY 和 MOVE 方法;
  • FLV 和 MP4 流媒体;
  • 响应速度限制;
  • 限制来自一个地址的同时连接或请求的数量;
  • 基于 IP 的地理定位;
  • A/B测试;
  • 嵌入式Perl
  • nginScript。

邮件代理服务器功能

  • 使用外部 HTTP 认证服务器将用户重定向到 IMAP 或 POP3 服务器;
  • 使用外部 HTTP 认证服务器进行用户认证,并将连接重定向到内部 SMTP 服务器;
  • 认证方式:
  • POP3:USER / PASS,APOP,AUTH LOGIN / PLAIN / CRAM-MD5;
  • IMAP:LOGIN,AUTH LOGIN / PLAIN / CRAM-MD5;
  • SMTP:AUTH LOGIN / PLAIN / CRAM-MD5;
  • SSL 支持;
  • STARTTLS 和 STLS 支持。

TCP/UDP代理服务器功能

  • TCP 和 UDP 的通用代理;
  • SSL 和 TLS SNI 支持 TCP;
  • 负载均衡和容错;
  • 基于客户地址的访问控制;
  • 根据客户端地址执行不同的功能;
  • 限制来自一个地址的同时连接数;
  • 访问日志格式,缓冲日志写入,快速日志轮换和 syslog 日志记录;
  • 基于 IP 的地理定位;
  • A/B 测试;

架构和可扩展性

一个主和几个工作进程; 工作进程在非特权用户下运行;

  • 灵活配置;
  • 重新配置和升级可执行文件,而不会中断客户端服务;
  • 支持 kqueue(FreeBSD 4.1+),epoll(Linux 2.6+),/ dev / poll(Solaris 7 11/99 +),事件端口
    (Solaris 10),select 和 poll;
  • 支持各种 kqueue 功能,包括 EV_CLEAR,EV_DISABLE(临时禁用事件),NOTE_LOWAT,
    EV_EOF,可用数据数,错误代码;
  • 支持各种 epoll 功能,包括 EPOLLRDHUP(Linux 2.6.17+,glibc 2.8+)和 EPOLLEXCLUSIVE(Linux
    4.5+,glibc 2.24+);
    King 老师 QQ:3147964070
  • 支持 sendfile(FreeBSD 3.1+,Linux 2.2+,macOS 10.5+),sendfile64(Linux 2.4.21+)和
    sendfilev(Solaris 8 7/01 +);
  • 文件 AIO(FreeBSD 4.3+,Linux 2.6.22+);
  • DIRECTIO(FreeBSD 4.4+,Linux 2.4+,Solaris 2.6+,macOS);
  • 接受过滤器(FreeBSD 4.1+,NetBSD 5.0+)和TCP_DEFER_ACCEPT(Linux 2.4+)支持;
  • 10,000 个不活动的 HTTP 保持连接大约需要 2.5M 内存;
  • 数据复制操作保持最小。

Nginx特性

NGINX 有什么不同? NGINX 使用可扩展的事件驱动架构,而不是更传统的过程驱动架构。这需要更低的内存占用,并且当并发连接扩大时,使内存使用更可预测。在传统的 Web 服务器体系结构中,每个客户端连接作为一个单独的进程或线程处理,随着网站的流行度增加,并发连接数量的增加,Web 服务器减慢,延迟了对用户的响应。从技术的角度来看,产生一个单独的进程/线程需要将 CPU 切换到新的任务并创建一个新的运行时上下文,消耗额外的内存和 CPU 时间,从而对性能产生负面影响。NGINX 开发的目标是实现 10 倍以上的性能,优化服务器资源的使用,同时也能够扩展和支持网站的动态增长。 因此,NGINX 成为最知名的模块化,事件驱动,异步,单线程 Web 服务器和 Web 代理之一。

Nginx 是一个高性能的 Web 和反向代理服务器, 它具有很多非常优越的特性:

web服务器

相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx尤其受到虚拟主机提供商的欢迎。能够支持高达 50,000 个并发连接数的响应,感谢 Nginx为我们选择了 epoll and kqueue 作为开发模型。

负载均衡

Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP 代理服务器 对外进行服务。Nginx 用 C 编写, 不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好的多。

邮件代理服务器

Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。Nginx 安装非常的简单,配置文件 非常简洁(还能够支持 perl 语法),Bugs 非常少的服务器:Nginx 启动特别容易,并且几乎可以做到 7*24 不间断运行,即使运行数个月也不需要重新启动。你还能够在 不间断服务的情况下进行软件版本的升级。

小结

本篇主要写了nginx的基本特性和一些代理服务器,比如HTTP服务器,Web服务器代理,邮件代理服务器,TCP/UDP代理服务器等等。通过本篇的学习,可以了解nginx的一些通用功能,在我们需要的时候,很快的选择使用它。感兴趣,一起来学习学习。OK,结束。

相关文章:

Nginx(1)

文章目录 概述基本的HTTP服务器功能其他 HTTP 服务器功能邮件代理服务器功能TCP/UDP代理服务器功能架构和可扩展性 Nginx特性web服务器负载均衡邮件代理服务器 小结 概述 Nginx是http和反向代理服务器,邮件代理服务器,以及lgor Sysoev最初编写的通用TCP…...

C# 构建观测者模式(或者为订阅者模型)

前言: 观测者模型的基本理念,就是,我有一个公共的事件,定义好他的事件的触发、数据接口。然后,通过增加订阅者(实例)来订阅这个事件的,或者说观察这个事件。如果事件发生&#xff0…...

MyBatis入门如何使用操作数据库及常见错误(yml配置)

一,什么是MyBatis 是一款优秀的持久层框架,用于简化jdbc的开发 持久层:指的就是持久化操作的层,通常也就是数据访问层(dao),也就是用来操作数据库。 也就是MyBatis是让你更加简单完成程序与数…...

大数据信用查询什么样的平台比较靠谱?

随着互联网的发展和普及,大数据技术逐渐应用到各行各业中,其中之一就是信用查询领域,大数据信用查询平台能够为用户提供全面、准确的大数据信用评估,然而,由于市场上出现了许多不同的大数据信用查询平台,我…...

后端程序员常犯的错误-本地缓存相关bug和技术思考

1 springboot集成本地缓存基本常识: SpringBoot集成本地缓存性能之王Caffeine示例详解 SpringBoot 缓存之 Cacheable介绍 2 线上问题 2.1 发现过程 接口内的rpc调用报错,error级别的日志被监控平台报警。 2.2 故障排查 2.2.1 代码 Cacheable(cach…...

【收集表单数据】

07 【收集表单数据】 在 React 里&#xff0c;HTML 表单元素的工作方式和其他的 DOM 元素有些不同&#xff0c;这是因为表单元素通常会保持一些内部的 state。例如这个纯 HTML 表单只接受一个名称&#xff1a; <form><label>名字:<input type"text"…...

【前端面试】九、框架

目录 1 Vue2 实现方式 2 Vue3 实现方式 3 React 实现方式 4 Angular 实现方式 1 Vue2 实现方式 Vue2 是目前仍被广泛使用的前端框架之一&#xff0c;其特点包括响应式数据绑定、组件化开发等。 响应式系统&#xff1a;Vue2 使用 Object.defineProperty 来实现数据的响应式。…...

水泥电阻在电源电路中的作用

水泥电阻是将电阻线绕在无碱性耐热瓷件上&#xff0c;外面加上耐热、耐湿及耐腐蚀之材料保护固定并把绕线电阻体放入方形瓷器框内&#xff0c;用特殊不燃性耐热水泥充填密封而成。水泥电阻的外侧主要是陶瓷材质&#xff08;一般可分为高铝瓷和长石瓷&#xff09;。 水泥电阻器…...

报销管理软件怎么选?主流的10款对比

国内外排名前十的报销软件大对比&#xff1a;合思、Zoho Expense、金蝶财务报销系统、每刻报销、慧算账、Expensify、齐业成、汇联易、分贝通、QuickBooks Online。 在小型企业中&#xff0c;报销管理可能还可以由财务人员手工完成。然而&#xff0c;对于中到大型企业和快速发展…...

人工智能对就业产生怎样的影响?

在这个飞速发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;如同一股不可阻挡的潮流&#xff0c;深刻地影响着我们的工作方式和生活模式。它既是技术革命的产物&#xff0c;也是推动社会进步的重要力量。然而&#xff0c;随着AI技术的普及和应用&#xff0c;关于其对…...

Vue Router 路由守卫详解

Vue Router 的路由守卫功能使我们能够在路由导航的不同阶段执行代码,提供了极大的灵活性和控制力。路由守卫可以帮助我们在用户导航到特定路由之前、之后或取消导航时执行逻辑,例如权限验证、数据获取或取消操作等。 路由守卫类型 Vue Router 提供了以下几种类型的路由守卫…...

Android 10.0 Launcher 启动流程

在前面SystemUI启动流程中说到&#xff0c;在SystemServer中会去启动各种系统服务&#xff0c;这里的launcher也是启动的其中一个服务ActivityManagerService去启动的。在android10之前&#xff0c;系统四大组件的启动都是在ActivityManagerService中&#xff0c;在android10中…...

OPenCV高级编程——OpenCV视频读写及录制技术详解

目录 引言 一、视频读取技术 VideoCapture 类 构造函数 常用方法 二、视频写入技术 VideoWriter 类 构造函数 常用方法 三、视频录制技术 1. 包含OpenCV头文件 2. 初始化VideoCapture对象 3. 设置视频编码器 4. 读取和写入视频帧 5. 释放资源 6. 编码格式选择 …...

jenkins获取sonarqube质量门禁结果

前景 在使用 Jenkins 集成 SonarQube 时&#xff0c;获取质量门禁&#xff08;Quality Gate&#xff09;结果非常重要。SonarQube 的质量门禁是一种质量控制机制&#xff0c;用于评估代码质量是否符合预设的标准。以下是获取质量门禁结果的意义和作用&#xff1a; 评估代码质量…...

【AI-12】浅显易懂地说一下损失函数

什么是损失函数&#xff1f; 咱们可以把损失函数想象成一个衡量你做的事情“好不好”的尺子。 比如说你在预测明天的天气&#xff0c;你给出的预测结果和实际的天气情况之间会有差别。损失函数就是用来计算这个差别有多大的。 如果你的预测结果和实际情况非常接近&#xff0c;…...

Python和java中super的使用用法(有点小语法上的差距,老忘就在这里置顶了)

文章目录 1 在 Java 中&#xff1a;2 在 Python 中&#xff1a; 在 Java 和 Python 中&#xff0c;子类调用父类方法的语法略有不同&#xff1a; 1 在 Java 中&#xff1a; 使用 super 关键字&#xff1a;在子类中&#xff0c;可以使用 super 关键字来调用父类的方法。super …...

在 QML 中使用 C++ 类和对象

1.实现 C 类&#xff0c;从 QObject 或 QObject 的派生类继承 类中第一行添加 Q_OBJECT 宏 2.修饰成员函数或属性 Q_INVOKABLE 宏用来定义可通过元对象系统访问的方法 Q_PROPERTY 宏用来定义可通过元对象系统访问的属性 信号或者槽&#xff0c;都可以直接在 QML 中访问 3. 在…...

什么是接口?

在前后端开发的语境中&#xff0c;接口&#xff08;Interface&#xff09;是一个非常重要的概念&#xff0c;它充当了前端&#xff08;通常是浏览器端或移动端应用&#xff09;与后端&#xff08;通常是服务器端的应用程序&#xff09;之间进行数据交换的桥梁。接口定义了双方交…...

传统自然语言处理(NLP)与大规模语言模型(LLM)详解

自然语言处理&#xff08;NLP&#xff09;和大规模语言模型&#xff08;LLM&#xff09;是理解和生成人类语言的两种主要方法。本文将介绍传统NLP和LLM的介绍、运行步骤以及它们之间的比较&#xff0c;帮助新手了解这两个领域的基础知识。 传统自然语言处理&#xff08;NLP&…...

实现Obsidian PC端和手机端(安卓)同步

步骤 1&#xff1a;在PC端设置Obsidian 安装Obsidian和Git&#xff1a;确保你的PC上已经安装了Obsidian和Git。你可以从Obsidian官网和Git官网下载并安装。 克隆GitHub代码库&#xff1a;在PC上打开命令行&#xff08;例如Windows的命令提示符或Mac/Linux的终端&#xff09;&a…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

深度学习水论文:mamba+图像增强

&#x1f9c0;当前视觉领域对高效长序列建模需求激增&#xff0c;对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模&#xff0c;以及动态计算优势&#xff0c;在图像质量提升和细节恢复方面有难以替代的作用。 &#x1f9c0;因此短时间内&#xff0c;就有不…...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障

关键领域软件测试的"安全密码"&#xff1a;Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力&#xff0c;从金融交易到交通管控&#xff0c;这些关乎国计民生的关键领域…...

LOOI机器人的技术实现解析:从手势识别到边缘检测

LOOI机器人作为一款创新的AI硬件产品&#xff0c;通过将智能手机转变为具有情感交互能力的桌面机器人&#xff0c;展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家&#xff0c;我将全面解析LOOI的技术实现架构&#xff0c;特别是其手势识别、物体识别和环境…...

数据结构:递归的种类(Types of Recursion)

目录 尾递归&#xff08;Tail Recursion&#xff09; 什么是 Loop&#xff08;循环&#xff09;&#xff1f; 复杂度分析 头递归&#xff08;Head Recursion&#xff09; 树形递归&#xff08;Tree Recursion&#xff09; 线性递归&#xff08;Linear Recursion&#xff09;…...