可曾听闻Nginx?

目录

一.简介

二.Nginx的优点

三.反向代理

四.负载均衡

五.动静分离

六.总结

说起Nginx,耳边好像经常听到,但是不知道用来干嘛的。最近用到了,所以我就大概总结了基本知识,它经常与一个词出现在一起——反向代理。那接下来就让我们来看看Nginx到底是干嘛用的。

一.简介

官网是这样说的:

        nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server, originally written by Igor Sysoev.

翻译:nginx(发音:engine x) 是一个HTTP以及反向代理的服务器,一个邮件代理服务器,和一个通用TCP/UDP代理服务器,最初由lgor Sysoev编写。

Ok,我们知道,Nginx是一个服务器,服务器大家都知道是什么吧,Nginx就相当于在你的机器上运行的一个能帮我们托管代码的服务器,那我们举个例子,整体理解下:就比如说,我现在想搭建一个博客站,源码能在你本机上运行成功,但是你没公网IP,别人不能访问到你的网站,就算通过一些手段能访问成功了,很少有人把自己的电脑作为服务器呀,这个时候云服务器厂商出现了,他们可以提供给我们云服务器,有独立公网IP,但是也不是下载IDE然后跑代码(当然我也不信有人会这样做),我们在我们的云服务器上安装上Nginx,之前不是说了嘛,Nginx就是一个服务器,在云服务器上运行nginx,然后代理我们的源码,成功后,只要通过你的公网IP加你指定的端口,那么任何人都能访问你的网站了,到此,博客站就搭建好了。

当然如果说,只是简单的把它作为一个服务器也就小瞧它了,如果你的网站访问量很高,并发操作多,那nginx就是很好的选择了。

高性能,能处理高并发事件是它的优点,在传统的并发请求不高的网站中,它或许不起眼,但是正因为它的优点让它广泛应用在一些大型Web项目中。

According to Netcraft, nginx served or proxied 20.71% busiest sites in January 2024.

翻译:根据 Netcraft 的数据,2024 年 1 月,nginx 服务或代理了 20.71% 的最繁忙网站。

二.Nginx的优点

Nginx优点:

  1. 高性能: Nginx以其出色的性能而著称。它采用事件驱动的架构,能够高效地处理大量并发连接,适用于高流量的网站和应用。

  2. 低资源消耗: 相比一些传统的Web服务器,Nginx占用更少的系统资源。这使得它在资源受限的环境中表现得更加出色。

  3. 反向代理和负载均衡: Nginx可以作为反向代理服务器,接收客户端请求并将其转发给后端服务器。同时,它支持负载均衡,能够将请求分发到多个后端服务器,提高系统的性能和可用性。

  4. 静态文件服务: Nginx在提供静态文件服务方面表现出色,能够高效地处理和传输图片、CSS、JavaScript等静态资源。

  5. 灵活的配置: Nginx的配置文件结构简单而灵活,允许用户根据需要进行定制。支持模块化架构,可以通过添加或删除模块来扩展或精简功能。

  6. HTTP和HTTPS支持: Nginx提供对HTTP和HTTPS的全面支持,能够处理安全的加密连接,保障数据传输的安全性。

  7. 简单的负载均衡策略: Nginx支持多种负载均衡算法,包括轮询、IP哈希、最小连接数等。这使得可以根据具体需求选择适当的负载均衡策略。

  8. 热部署: Nginx支持热部署,即在不停止服务的情况下重新加载配置文件,使得系统升级和配置更改更加方便。

  9. 活跃的社区和支持: Nginx有一个庞大而活跃的社区,用户可以获取来自社区的支持、插件和模块,以满足各种需求。

现在,我们对nginx已经有了一定的了解,接下来,就是详细介绍它的三大功能了。

三.反向代理

说到反向代理那么就要先聊聊正向代理,以一个具体的场景来理解:你访问CSDN来看我的博客进行学习,而我发表的博客已经存储在CSDN的服务器上了,那你觉得你打开我的博客,你是直接访问的主体服务器,还是有个代理服务器替你访问,然后又返回给你。答案是后者,原因等会解释。

代理服务器作为中介,服务器端收到的请求并不是真正的用户,这在一定程度上保护了用户的身份,当然代理服务器也决定了你所能访问的网站。比如校园网,学校的一些网站,为什么只能连接了校园网才能访问,因为学校的服务器只允许学校设定的代理服务器访问资源,而这个代理服务器呢,又只代理连接了校园网的用户。

接下来讲反向代理:

反向代理是不是看着和正向代理差不多。但是呢,反向代理服是由服务器端来控制的,举个栗子,在开头说了,我租了云服务器,为了能让大家访问,我用反向代理来托管我的网站,重点!是我用反向代理,就是云服务器上开了反向代理,让大家的访问请求,重定向到这个反向代理服务器上去,然后反向代理服务器向服务器发送请求,接收请求。这不仅保护了服务器的安全,用户看不到本体,让傀儡(代理服务器)出面接收我们的请求。这么好的东西,谁不用呢,你说对不对?

当然不止是这一个功能,接下来就看看负载均衡

四.负载均衡

负载均衡就是把服务器所负载的请求平均给每个服务器,或者一个服务器·性能比较高,那我们既可以让这台服务器负载多一点,争取让资源利用最大化。

既然要分配资源,但是也要有个具体的分法吧,是的,负载均衡算法有很多,列举一些常见的。

  1. 轮询:很好理解,就是将每个新的请求依次分配给服务器列表中的下一个服务器。这是最简单的负载均衡算法之一。
  2. 加权轮询:这个方法和轮询相比多一个权重,权重决定了一个请求有多大概率打到这台服务器上。权重越高的服务器分配到的请求越多。
  3. IP哈希:通过计算客户端的IP哈希值来分配服务器,这确保同一客户端的请求始终被分配到相同的服务器,适用于某些需要保持会话状态的应用。
  4. 最小连接数:这个分法是这样的,找到负载最少的服务器把请求分配给他,因为连接数少的服务器可能有更多的处理能力。
  5. 加权最小连接数(Weighted Least Connections): 类似于加权轮询,但是考虑了服务器的当前连接数,以便更好地分配负载。

五.动静分离

动静分离?,动指动态请求资源,静指静态资源,一般是前端Web页面,把两部分离开,不仅有利于服务器端减少请求压力,也能更快的把页面显示给用户。用Nginx缓存静态资源,当用户访问时能迅速把已经缓存好的页面响应给用户,极大了提高用户的体验。而动则是一个API,当用户进一步操作时,Nginx才会对指定API接口发送请求获取资源。

六.总结

最近在学着搭建服务器,用到了Nginx,去学了学,总结了上述内容,也算加强了记忆了,nginx一定要记住了三个点:反向代理,负载均衡,动静分离。

上述内容,如有错误,请指正,谢谢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/653612.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

配置华为交换机环路检测案例

知识改变命运,技术就是要分享,有问题随时联系,免费答疑,欢迎联系! 厦门微思网络​​​​​​https://www.xmws.cn 华为认证\华为HCIA-Datacom\华为HCIP-Datacom\华为HCIE-Datacom 思科认证\CCNA\CCNP\CCIE Linux\RHCE…

YOLOv5可视化热力图 | 支持自定义模型、置信度选择等功能(论文必备)

一、本文介绍 本文给大家带来的机制是的可视化热力图功能,热力图作为我们论文当中的必备一环,可以展示出我们呈现机制的有效性,本文的内容支持YOLOv5最新版本,同时支持视频讲解,本文的内容是根据检测头的输出内容,然后来绘图。 在开始之前给大家推荐一下我的专栏,本专…

Vue服务器端渲染(SSR)是不是技术的倒退?

一、什么是服务器端渲染,是不是技术退步? Vue服务器端渲染(Vue Server-Side Rendering,简称SSR)是一种将Vue组件在服务器端进行渲染,生成最终的HTML页面,然后将其发送给客户端的技术。 传统的V…

烧录软件(Renesas Flash Programmer)瑞萨RL78G12系列单片机下载工具(E2)的软件配置与硬件链接说明

一、单片机与仿真器连接 E1引脚接线图 RL78系列单片机的GND接仿真器的pin2、pin12、pin14 RL78系列单片机的VDD接仿真器的pin8 RL78系列单片机的Tool0接仿真器的pin5 RL78系列单片机的Reset接仿真器的pin10、pin13 二、确认接线完成后,开始烧录 1、打开RFPV软件…

C 练习实例50-使用Dev-C++创建项目(圆形体体积计算器)

项目展示 项目案例&#xff1a;圆形体体积计算器 vol.h文件 #include <stdio.h> #include <math.h> #define PI 3.141592654 void cal(int sel); //函数声明 double vol_ball(void); double vol_cylind(void); double vol_cone(void); main.c文件 #include &quo…

【数字通信】数字带通传输

数字调制和数字带通传输系统 数字调制解调 数字调制 用数字基带信号控制载波&#xff0c;把数字基带信号变换为数字带通信号的过程 目的&#xff1a;数字基带信号含大量低频分量&#xff0c;无法通过具有带通特性的信道传输。需对数字基带信号进行数字调制使信号与信道的特…

网际协议 IP、IP地址

目录 网际协议 IP 虚拟互连网络 使用中间设备进行互连 IP 地址 IP 地址及其表示方法 ​编辑 IP 地址采用 2 级结构 IP 地址的编址方法 分类的 IP 地址 各类 IP 地址的指派范围 一般不使用的特殊的 IP 地址 IPv4网络中的地址类型 分类的 IP 地址的优点和缺点 划分子网…

数字媒体技术基础之:声波及其测量

声音始于空气中的振动&#xff0c;如吉他弦、人的声带或扬声器纸盆产生的振动。 这些振动一起推动邻近的空气分子&#xff0c;从而轻微增加空气压力。 压力下的空气分子随后推动周围的空气分子&#xff0c;后者又推动下一组分子&#xff0c;依此类推。 高压区域穿过空气时&…

链表中倒数第k个结点

题目描述 输入一个链表&#xff0c;输出该链表中倒数第k个结点。 这道题首先按照普通的方法用一个栈来存放链表数据然后在取出第k的数就可以了,但是这种方法的时间复杂度是O(n),不提倡; 现在我介绍一种时间复杂度为O(n-k)的方法,老规矩-->先贴源码,在分析: /*public clas…

SpringSecurity笔记

SpringSecurity 本笔记来自三更草堂&#xff1a;https://www.bilibili.com/video/BV1mm4y1X7Hc/?spm_id_from333.337.search-card.all.click&#xff0c;仅供个人学习使用 简介 Spring Security是Spring家族中的一个安全管理框架。相比与另外一个安全框架Shiro&#xff0c;…

Leetcode刷题笔记题解(C++):1117. H2O 生成(多线程)

思路&#xff1a; 解法二&#xff1a;生产者-消费者解法 1.把 hydrogen 线程看作生产者&#xff0c;oxygen 线程看作消费者&#xff0c;缓冲队列大小为2。 2.hydrogen 把生成的氢放入队列&#xff1b;oxygen 线程每次从队列里消费两个氢元素。 3.生产者生产两个氢元素后会因为…

【极数系列】Linux环境搭建Flink1.18版本 (03)

文章目录 引言01 Linux部署JDK11版本1.下载Linux版本的JDK112.创建目录3.上传并解压4.配置环境变量5.刷新环境变量6.检查jdk安装是否成功 02 Linux部署Flink1.18.0版本1.下载Flink1.18.0版本包2.上传压缩包到服务器3.修改flink-config.yaml配置4.启动服务5.浏览器访问6.停止服务…

二叉树--199. 二叉树的右视图/medium 理解度C

199. 二叉树的右视图 1、题目2、题目分析3、复杂度最优解代码示例4、适用场景 1、题目 给定一个二叉树的 根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,null,5,null,4] 输出…

贪吃蛇项目(基于C语言和数据结构中的链表)

建立文件 首先先建立3个文件。 Snake.h 函数的声明 Snake.c 函数的定义 Test.c 贪吃蛇的测试 分析项目 我们分析这整个项目 建立节点 首先在我们实现游戏开始的部分之前&#xff0c;我们要先创建贪吃蛇的节点&#xff0c;再由此创建整个贪吃蛇所包含的一些信息&#…

基于对比学习的信息抽取

Label Refinement via Contrastive Learning for Distantly-Supervised Named Entity Recognition NAACL 2022&#xff1b;做的远程监督NER&#xff0c;通过知识库构建 伪标签&#xff0c;通过对比学习构建负样本&#xff0c;负样本是entity的多余部分或其他不相关部分。即对e…

【Vite+Vue3+TS】基于Vite+Vue3+TypeScript+ESLint+Prettier+Stylelint搭建项目(亲测超详细)

目 录 项目搭建步骤确定node版本使用Vite创建Vue3项目规范目录结构配置环境修改Vite配置文件集成路由工具Vue Router集成状态管理工具Pinia集成CSS预编译器Sassvite-plugin-svg-icons图标组件集成UI框架Element Plus集成HTTP 请求工具 Axios 项目代码规范集成ESLint配置集成Pre…

【HTML 基础】元素和标签

文章目录 1. <p> - 段落标签2. <h1> - <h6> - 标题标签3. <a> - 超链接标签4. <img> - 图片标签5. <ul>, <ol>, <li> - 列表标签无序列表有序列表 总结 HTML&#xff08;Hypertext Markup Language&#xff09;是构建 Web 页面…

【学网攻】 第(13)节 -- 动态路由(OSPF)

系列文章目录 目录 系列文章目录 文章目录 前言 一、动态路由是什么&#xff1f; 二、实验 1.引入 实验拓扑图 实验配置 实验验证 总结 文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻】 第(2)节 -- 交换机认识及使用【学网攻】 第(3)节 -- 交换机配置聚合端口【学…

鸿蒙 ArkTs初识

前提&#xff1a;基于官网3.1/4.0文档。参考官网文档 基于Android开发体系来进行比较和思考。&#xff08;或有偏颇&#xff0c;自行斟酌&#xff09; 吐槽&#xff1a;官网上的案例只有代码和文档解释&#xff0c;没有可以直接运行查看效果的模拟器&#xff0c;这一点上&#…

【C++修行之道】STL(初识list、stack)

目录 一、list 1.1list的定义和结构 以下是一个示例&#xff0c;展示如何使用list容器: 1.2list的常用函数 1.3list代码示例 二、stack 2.1stack的定义和结构 stack的常用定义 2.2常用函数 2.3stack代码示例 一、list 1.1list的定义和结构 list的使用频率不高&#…