【nginx 第一篇章】认识一下 NGINX 服务器

news/2024/9/17 19:09:19/ 标签: nginx, 服务器, 运维

一、简介

Nginx (engine x) 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。由俄罗斯程序员 Igor Sysoev 开发,并在2004年首次公开发布。Nginx 以其高并发处理能力、低内存消耗、稳定性、丰富的功能集、简单的配置以及低学习曲线而广受欢迎。Nginx 通常被用作 Web 服务器来托管网站,但也可以有效地用作反向代理、负载均衡器和 HTTP 缓存。

二、Nginx 的主要特点

1、高性能:Nginx 采用了异步非阻塞的事件驱动模型,这使得它能够处理数以万计的并发连接,而无需为每个请求创建新的进程或线程。

2、稳定性:Nginx 的设计使其能够在高负载下保持稳定的性能,减少了崩溃和重启的需要。

3、丰富的功能集:除了基本的 HTTP 服务器功能外,Nginx 还支持 HTTPS、SSL/TLS、gzip 压缩、虚拟主机、URL 重写、负载均衡、缓存、HTTP/2 支持等。

4、配置简单:Nginx 的配置文件简洁明了,易于学习和使用。配置文件采用指令块的形式,支持丰富的变量和条件判断。

5、模块化设计:Nginx 的许多功能都是通过模块实现的,这些模块可以动态地加载和卸载,从而提供了高度的灵活性和可扩展性。

6、低内存消耗:Nginx 的内存占用非常低,这使得它能够在资源受限的环境中高效运行。

7、热部署:Nginx 支持在不中断服务的情况下升级和重新加载配置,这对于需要高可用性的生产环境尤为重要。

三、Nginx 的应用场景

  • 静态文件服务器:用于托管静态文件(如 HTML、CSS、JavaScript、图片等)。
  • 反向代理:作为后端服务器(如 Apache、Tomcat)的前端,接收客户端请求并转发给后端服务器,同时提供负载均衡和缓存功能。
  • 负载均衡器:将客户端请求分发到多个后端服务器上,以平衡负载并提高系统的整体性能。
  • HTTP 缓存:缓存静态内容以减少后端服务器的负载和响应时间。
  • 邮件代理服务器:作为 IMAP/POP3/SMTP 代理服务器,处理电子邮件的收发。

四、正向代理和反向代理

1、正向代理
如果用户直接访问谷歌服务器是访问不通的,如果想要访问到谷歌服务器需要加一台正向代理服务器,然后在客户端(浏览器)中配置代理服务器就行了。

在这里插入图片描述

2、反向代理
客户端对代理服务器是无感知的,因为客户端不用任何配置就可以访问,只用将请求发送到反向代理服务器上,由反向代理服务器去选择目标服务器,获取数据后,再返回给客户端用,此时,反向代理服务器和目标服务器对外就是一台服务器,暴露的是代理服务器的地址,隐藏了真实服务器的地址。

在这里插入图片描述

五、负载均衡

客户端将多个请求发送到服务器服务器处理请求,有一些可能要与数据库交互服务器处理完成后,再将结果返回给客户端。如果所有的请求都在一台服务器上访问,效率会大大的降低,这个时候就用 负载均衡 将多个请求通过代理服务器转发给不同的服务器上。效率会提升。

在这里插入图片描述

六、动静分离

为了加快网站的解析速度,可以把动态的页面和静态的页面由不同的服务器解析,加快速度,降低原来单个服务器的压力。

在这里插入图片描述


http://www.ppmy.cn/news/1507323.html

相关文章

【系统分析师】-综合知识-软件工程与项目管理

1、按照成本性态分类,可以分为固定成本、变动成本和混合成本。 (1)固定成本。管理人员的工资、办公费、固定资产折旧费、员工培训费、广告费、员工培训费、技术开发经费、办公场地及机器设备的折旧费、房屋及设备租金、管理人员的工资等。 …

LeetCode-day35-3131. 找出与数组相加的整数 I

LeetCode-day35-3131. 找出与数组相加的整数 I 题目描述示例示例1:示例2:示例3: 思路代码 题目描述 给你两个长度相等的数组 nums1 和 nums2。 数组 nums1 中的每个元素都与变量 x 所表示的整数相加。如果 x 为负数,则表现为元素…

提高组织绩效的战略方法 —— 目标管理(MBO)

注:机翻,未校。 Management by Objectives (MBO) 目标管理(MBO) A strategic approach to enhance the performance of an organization 提高组织绩效的战略方法 Written by CFI Team What is Management by Objectives (MBO)?…

vscode下新建 virtualenv

1. 先进入一个目录,该目录下建议该虚拟环境。 2. virtualenv env-name 建议env环境 3. 激活env环境 D:\2024> .\autogen-env\Scripts\activate 4. 安装环境 (autogen-env) PS D:\2024> pip install pyautogen 5. 在vscode中选择python interpreter 6. 退…

sql注入CMSeasy

一,实验环境 MySQL5.7.26及以上版本 PHP 5.6.9及以上版本 Apache2.4.39 Vscode phpstudy 二,实验步骤 代码审计,未授权访问 可以看到构造函数ip是通过X_FORWARDED_FOR来获取的,而这个刚好可以伪造,那我们再加着i…

C语言中常用的函数

处理字符串常用的函数 size_t strspn(const char *s, const char *accept); 函数参数说明: s是被查找的字符串 accepct是要匹配的字符串函数功能说明: 它返回s字符串起始部分中,完全由accept字符串中的字符组成的子字符串的长度函数返回值…

使用Gitlab实现monorepo多项目CICD

CI/CD是什么 CI/CD(Continuous Intergration/Continuous Delpoy),即持续集成/持续部署,或称为持续集成/持续交付,作为一套面向开发和运维团队的解决方案,CI/CD 主要解决集成新代码和向用户频繁交付应用的问…

【LeetCode 1991 找到数组的中间位置 / LeetCode 724 寻找数组的中心下标】中间索引问题

1991 题目描述 暴力解法1: 思路: 遍历下标,求出左边和和右边和比较两边是否相等相等直接返回值没有符合的返回 -1 class Solution {public int findMiddleIndex(int[] nums) {int lennums.length;//初始化一个变量 midIndex 为 -1&#xff…

学单片机怎么在3-5个月内找到工作?

每个初学者,都如履薄冰,10几年前,我自学单片机时,也一样。 想通过学习,找一份体面点的工作,又害怕辛辛苦苦学出来,找不到工作。 好在,当初执行力,还算可以,自…

Docker快速入门指南

🛠️ Docker 应用场景 Docker 是一个开源的平台,旨在简化应用程序的开发、部署和管理。它通过容器技术,将应用及其所有依赖打包在一个标准化的环境中,从而确保应用在不同环境中的一致性和可移植性。在 Python 爬虫的场景中&#…

【云原生】听说大家跟着学haproxy,都成大佬了(实验篇)

PS:想了解haproxy理论知识,请移步haproxy理论篇 一、实验环境 主机名角色IP地址haproxy172.25.254.100web1RS1172.25.254.10web2RS2172.25.254.20client客户机172.25.254.254 二、haproxy的基本部署 1、安装nginx服务(web1、web2&#xf…

PHP MySQL 读取数据

PHP MySQL 读取数据 PHP和MySQL是Web开发中的经典组合,广泛用于创建动态网站和应用程序。在PHP中读取MySQL数据库中的数据是一项基本技能,涉及到连接数据库、执行查询以及处理结果集。本文将详细介绍如何使用PHP从MySQL数据库中读取数据。 1. 环境准备 在开始之前,请确保…

虚拟机centos9搭建wordpress

目录 安装环境和搭建简介 1. 更换yum源更新系统软件包: 1.1备份yum源 1.1.1创建备份目录: 1.1.2移动现有仓库配置文件到备份目录: 1.1.3验证备份: 1.2更换yum源 1.2.1添加yum源 1.2.2删除和建立yum缓存 1.3更新系统软件…

《深入浅出WPF》学习笔记七.使用Prism实现点单系统

《深入浅出WPF》学习笔记七.使用Prism实现Mvvm点单系统 背景 深入浅出Wpf系列视频的最后一个demo,使用Prism、Mvvm实现点单系统。demo并不复杂,但是涉及的面广,方便更好的理解wpf。代码在下面自取。后续会把git地址补充上来。 代码 项目层级 command …

Multisim 用LM358 运放模拟线性稳压器 - 运放输出饱和 - 前馈电容

就是拿运放搭一个可调的LDO 稳压器,类似下面这个功能框图里的感觉。本来应该非常简单,没什么好说的,没想到遇到了两个问题。 原理 - 理想运放 我用PNP 三极管Q2 作为输出,运放输出电压升高时,流过PNP 三极管BE 的电流变…

云服务器部署Java+Vue前后端分离项目

1、申请一个云服务器 选择云服务器:阿里云、腾讯云、百度云、京东云、华为云等等,我使用的是阿里云服务器。 2、远程链接服务器 使用FinalShell工具或者其他远程工具,使用SSH链接,主机地址要填写阿里云服务的公网ip,如…

Redis的String类型常用命令总结

1. set 设置一个键的值。 set key value示例: set username "alice"2. get 获取一个键的值。 get key示例: get username3. getset 设置键的值,并返回键的旧值。 getset key value示例: getset username "…

for(char c:s),std::vector<int> numbers 和std::int numbers[],.size()和.sizeof()区别

在C中当需要对某个容器或数组进行遍历时我们可以使用以下语句,c将会被赋值为s中的元素 for(char c:s)://s可以是任何满足条件的容器或数组for(int c:s):for(double c:s):for(float c:s):在C中我们来区分std::vector numbers {1, 2, 3, 4, 5};和std::int numbers[] …

常见8种数据结构

常见的数据结构包括数组、链表、队列、栈、树、堆、哈希表和图,每种数据结构都有其特点,如下: 常见数据结构 1.数组2.链表3.队列4.栈5.树6.图7.哈希表8.堆 1.数组 特点: 固定大小的线性数据结构支持快速随机访问插入和删除效率…

徐州BGP机房与普通机房的区别有哪些?

BGP也被称为是边界网关协议,是运行在TCP上的一种自治系统的路由协议,能够用来处理因特网大小的网络协议,同时也是能够处理好不相关路由域之间的多路连接的协议,今天小编主要来聊一聊徐州BGP机房与普通机房之间的区别有哪些&#x…