Linux之Yum源与Nginx服务篇

1.Yum源知识理论总结概括

Yum源概述

Yum 源 即软件仓库的标识,里面承载着软件包集合

Yum源组成
包含模块

【OS】、【everything】、【EPOL】、【debuginfo】、【source】、【update-source】

  • 【os】:简称operator system 它内部包含操作系统的核心组件(内核、基础库、系统工具),是系统运行的最低依赖包结合
  • 【everything】:包含官方支持的软件包(开发工具、第三方包)
  • 【debuginfo]:存放着调试符号的文件,用于分析程序崩溃及其性能问题
  • 【source]:存放着软件的源码,一般用于二次开发或自定义编译环境
  • 【update-source】:源码更新的模块包
核心参数分析
  • name :仓库自定义所取的名字

  • baseurl : 指定仓库的访问路径,在开源的url路径中, b a s e s e a r c h 代表系统的硬件架构, basesearch代表系统的硬件架构, basesearch代表系统的硬件架构, releasever代表的是系统发行的版本号(一般情况下metalink优先级低于baseurl)

  • enabled: 是否启用仓库

  • gpgcheck:代表签名验证,其中1代表启用 0代表禁用一旦启用了gpgcheck,就一定需要写gpgkey路径

    2.Nginx知识理论总结概括

Nginx简介

Nginx对比与传统Apache服务器其高性能、轻量级能力更强具体可以从以下几个方面进行概述,其优点如下:

- 高并发响应速度快,静态文件并发能力5w/s
- 负载均衡及反向代理能力强
- 系统内存和CPU低占有率
- 可对后端服务进行健康检查
- 可作为缓存代理服务器和邮件代理服务器
代理服务器
正向代理

好比生活中的代购 它实现的技术原理由代理服务器访问你外网地址,但这里的客户端并不是直接找到服务端,通常情况与服务端无法建立直接联系

正向代理通常位于内外网设备,一般用于翻墙和公司内网连接外网
反向代理
类比我们生活中的例子就好比餐馆的客户点餐情况,客户来到餐馆首先是要求前台点餐这里的前台就是反向代理proxy,然后前台确定好点餐信息后将信息给到后厨由后厨完成相关菜品,这里的技术包括`服务隐藏、负载均衡、缓存加速、安全防护`

总的来说做一个以下的概述,参考如图:
在这里插入图片描述

Nginx功能汇总

  • 正向代理与反向代理(正向代理则用于商品的代购、反向代理则用于处理静态请求和动态请求

  • 负载均衡(加权轮循、IP哈希)

    轮训:均分到服务器
    加权轮循:按服务器的性能分配权重
    IP哈希:一个IP固定一个服务
    ```​
  • 缓存加速:减少后端请求压力,提高后端动态网页速度

  • SSL/TLS终止:处理HTTPS解密,减轻后端服务器负载负担

    Nginx工作原理

    Nginx工作主要会依赖各种类型模块,比如我们常说的一些核心模块HTTP模块,EVENT模块,MAIL模块还有些基础模块和三方模块比如HTTP FATCGI,HTTP Proxy,Notice

    那这些模块有什么功能?我们现在主要还是重点来聊聊功能上Nginx三大模块…

Handler模块

Handler概念

也叫"处理器模块",这类模块主要是为了处理Web请求,并输出处理信息和修改Header信息等操作,一般来说Handllers处理器模块只有一个,这个,模块主要存放于location块中


location /static{root/data/www;			//处理static静态资源
}location ~\.php${fastcgi pass 127.0.0.1:9000   //HTTP FastCGI模块}
Handler常用模块
Handler模块作用
ngx_http_static_module返回静态资源模块HTML/CSS/JS
ngx_http_fastcgi_module将请求转发至PHP-FPM等FastCGI后端
ngx_http_autoindex_module自动生成目录
ngx_http_dav_module支持DAV协议(文件的上传和删除)

Filter 模块

Fileter模块概念

也叫“过滤器模块”,这类模块主要用于对处理器请求进行输出,并且也可以修改请求头的信息,

最后由Nginx进行输出。它是针对请求内容进行加工的模块,如果有多个Filter它将按序处理同一请求


location /{gzip on; 		//用gzip压缩过滤add header X custom "example" 	//添加响应头过滤器sub filter "old" "new";	//替换文本过滤
}
Filter常用模块
Filter模块作用
nginx_http_gzip_module对过滤到的Web请求实现gzip压缩操作
nginx_http_headers_module添加或修改响应头数据
nginx_http_sub_module替换响应头中的文本(HTML文本元素)
nginx_http_image_file_module动态图片调整

Proxies模块

Proxies模块概念

也叫“代理器模块”,这类模块主要用的是Nginx的HTTP Upstream模块,通常情况会与后端一些服务

比如FastCGI进行交互,负责的是实现服务代理和负载均衡等功能


location /api{proxy_pass http;
}upstream  backend{Sever  192.168.1.8 weight= 2Server 192.168.1.9;
}
Proxies常用模块
Proxy模块作用
ngx_http_proxy_moduleHTTP反向代理 比如Proxy-pass
ngx_http_fastcgi_modulefastcgi协议代理(PHP-FPM)
ngx_http_uwsgi_moduleuWSGI协议代理(Python Django)
ngx_upstream_module定义后端服务器组,实现负载均衡(轮询、IP哈希

NGINX工作原理总结

由handler作为生产者接收大量请求,然后经过Filter过滤器经过修改响应内容,将其转发至代理服务器proxy,最后再通过代理将请求转发到后端服务器,服务端然后将其页面结果响应给我们前端服务器,也就是我们的浏览器(客户端),然后用户就能看到内容了。

具体工作流程也可参见下图:

在这里插入图片描述

Nginx进程工作原理

流程分析
  • 当Nginx服务器启动之后,默认会产生一个监听端口80,并启动一个master进程,然后这个master进程会生成多个工作进程
  • 当master进程开始工作时,会通过listen中的socket,fork出很多worker进程
  • 此时worker进程会在新连接到来前变成可读状态,从而保证只有一个进程处理该连接,之后再由worker进行在注册listenfd读事件前墙accept_mutex互斥锁,如果抢到了那么此时就会调用accept接收该连接
  • 当每个worker进程在accept这个连接之后,就可以处理请求将其响应个客户端可读状态,从而保证只有一个进程处理该连接,之后再由worker进行在注册listenfd读事件前墙accept_mutex互斥锁,如果抢到了那么此时就会调用accept接收该连接
  • 当每个worker进程在accept这个连接之后,就可以处理请求将其响应个客户端
流程图解

在这里插入图片描述

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

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

相关文章

从单体架构到微服务:架构演进之路

引言:当“大货车”遇上“集装箱运输” 在软件开发领域,单体架构曾像一辆载满货物的大货车,将所有功能打包在一个应用中。但随着业务复杂度飙升,这辆“大货车”逐渐陷入泥潭:启动慢如蜗牛、故障波及全局、升级如履薄冰……

AM32电调学习解读九:ESC上电启动关闭全流程波形分析

这是第九篇,前面的文章把各个模块的实现都介绍了一轮,本章是从运行的角度结合波形图,把整个流程走一遍。 先看下一运行的配置,我把一些配置关闭了,这样跑起来会好分析一些,不同配置跑起来效果会有差异。使用…

全球宠物经济新周期下的亚马逊跨境采购策略革新——宠物用品赛道成本优化三维路径

在全球"孤独经济"与"银发经济"双轮驱动下,宠物用品市场正经历结构性增长。Euromonitor数据显示,2023年全球市场规模突破1520亿美元,其中中国供应链贡献度达38%,跨境电商出口增速连续三年超25%。在亚马逊流量红…

reshape/view/permute的原理

在pytorch中,Tensor的存储是行主序的,也就是意味着最后一个维度的元素的存储时连续的,reshape和view并不改变元素存储的内存,仅仅改变访问的间隔,下面举例说明; 比如一个23的Tensor在内存中的存储是连续的&…

upload-labs靶场通关详解:第11关

一、分析源代码 $is_upload false; $msg null; if (isset($_POST[submit])) {if (file_exists(UPLOAD_PATH)) {$deny_ext array("php","php5","php4","php3","php2","html","htm","phtml"…

L1-7 最短字母串【保姆级详细讲解】

请你设计一个程序,该程序接受起始字母和目标字母作为输入,通过在字母表中向前或向后移动来计算两个给定字母之间的最短路径。然后,程序会沿着最短路径打印出从起始字母到目标字母的所有字母。例如,如果输入“c”和“k”作为起始字…

项目QT+ffmpeg+rtsp(三)——延迟巨低的项目+双屏显示

文章目录 前言双屏显示widget.cppwidget.h前言 对于复现情况,分为两种情况 第一种,对于我而言,是直接解压后,就能直接运行了 第二种,对于师兄而言,需要你构建debug后,会产生这个文件夹,执行的时候,地址应该在这,我猜的,这里面没有dll,exe程序就找不到dll这些库,你…

ansible进阶06

复杂的循环结构 循环基础 [studentworktest myansible]$ cat users.yml --- - name: create usershosts: serveratasks:- name: create some usersuser:name: "{{item}}"password: "{{123456|password_hash(sha512)}}"state: presentloop:- zhangsan- li…

Go 模块版本管理

Go 模块版本管理指南 1、创建带注释的 Git 标签 基本命令 # 创建带注释的标签 git tag -a v1.0.0 -m "Release version 1.0.0 - initial stable release" -a:创建带注释的标签 -m:添加标签注释信息 # 推送标签到远程仓库 git push origin v…

Java—— IO流 第一期

什么是IO流 存储和读取数据的解决方案 I:input O:output 流:像水流一样传输数据 IO流的作用 用于读写数据(本地文件,网络) IO流的分类 按照流向分类 输出流:程序 --> 文件 输入流:文件 --> 程序 按照…

物联网安全技术的最新进展与挑战

随着物联网(IoT)技术的飞速发展,越来越多的设备被连接到互联网,从智能家居设备到工业控制系统,物联网正在深刻改变我们的生活和生产方式。然而,物联网的安全问题也日益凸显,成为制约其发展的关键…

【深度学习基础】损失函数与优化算法详解:从理论到实践

【深度学习基础】损失函数与优化算法详解:从理论到实践 一、引言 1. 损失函数与优化算法在深度学习中的核心作用 在深度学习中,模型训练的本质是通过不断调整参数,使模型输出尽可能接近真实值。这一过程的核心驱动力是损失函数(…

mvc-review

review: 1.Servlet生命周期中初始化方法:init(),init(config) public void init(ServletConfig config) throws ServletException { this.config config; this.init(); } 因此,如果我们需要…

YouTube视频字幕转成文章算重复内容吗?

很多创作者误以为「自己说的话不算抄袭」,却不知道YouTube自动生成的字幕早已被搜索引擎存档。 去年就有案例:某美食博主将教程视频字幕转为图文,结果原创度检测仅42%,导致页面权重暴跌。 本文揭秘5个实操技巧:从删除…

R语言数据可视化

R note book 文档–输出html格式文档,plotly不能生成PDF文件 --- title: "R语言数据可视化" output: html_notebook ---在R语言中进行数据可视化是数据分析和呈现的重要环节,R提供了多种强大的绘图系统和工具。以下是常见的数据可视化方法和示…

Axure难点解决分享:垂直菜单展开与收回(4大核心问题与专家级解决方案)

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢!如有帮助请订阅专栏! Axure产品经理精品视频课已登录CSDN可点击学习https://edu.csdn.net/course/detail/40420 课程主题:垂直菜单展开与收回 主要内容:超长菜单实现、展开与收回bug解释、Axure9版本限制等问题解…

云原生攻防2(Docker基础补充)

Docker基础入门 容器介绍 Docker是什么 Docker是基于Linux内核实现,最早是采用了 LXC技术,后来Docker自己研发了runc技术运行容器。 它基于Google Go语言实现,采用客户端/服务端架构,使用API来管理和创建容器。 虚拟机 VS Docker Namespace 内核命名空间属于容器非常核…

Spring Boot 拦截器:解锁5大实用场景

一、Spring Boot中拦截器是什么 在Spring Boot中,拦截器(Interceptor)是一种基于AOP(面向切面编程)思想的组件,用于在请求处理前后插入自定义逻辑,实现权限校验、日志记录、性能监控等非业务功能…

Vue百日学习计划Day24-28天详细计划-Gemini版

总目标: 在 Day 24-27 熟练掌握 Vue.js 的各种模板语法,包括文本插值、属性绑定、条件渲染、列表渲染、事件处理和表单绑定,并能结合使用修饰符。 所需资源: Vue 3 官方文档 (模板语法): https://cn.vuejs.org/guide/essentials/template-syntax.htmlVu…

分布式微服务系统架构第125集:AI大模型

加群联系作者vx:xiaoda0423 仓库地址:https://webvueblog.github.io/JavaPlusDoc/ https://1024bat.cn/ 一、user 表(用户表) sql 复制编辑 create table if not exists user (id bigint auto_increment comment id pri…