apache 模式、优化、功能 与 nginx优化、应用

news2025/1/15 16:26:59

一、I/O模型——Input/Output模型


1.同步/异步


A程序需要调用B程序的某一个功能,A发送一个请求需要B完成一个任务

同步:B不会主动去通知A是否完成需要A自己去问
异步:B会主动通知A是否完成

2.阻塞/非阻塞


A发送一个请求需要B完成一个任务

阻塞:B在完成A的任务前不能执行其他任务
非阻塞:B在完成A的任务前可以同步进行其他任务


3.同步异步/阻塞非阻塞组合


同步阻塞:烧水壶如果水没烧好前,我的人不能离开
同步非阻塞:烧水壶如果水没烧好前,我可以离开一会儿,需要时不时的回来看水有没有烧开
异步阻塞:烧水壶可以提醒我水烧开了,但是我还是要时不时回来看一下水有没有烧开
异步非阻塞:烧水壶可以提醒我水烧开了,我可以在烧水的同时,可以去做其他的事情

二、Nginx用法

nginx -s reopen #日志分割

nginx -s reload #重新加载Nginx配置文件

nginx -s stop #强制停止Nginx服务

nginx -s quit #优雅地停止Nginx服务(即处理完所有请求后再停止服务)

nginx -t #检测配置文件是否有语法错误,然后退出

nginx -?,-h #打开帮助信息

nginx -v #显示版本信息并退出

nginx -V #显示版本和配置选项信息,然后退出

nginx -T #检测配置文件是否有语法错误,转储并退出

nginx -q #在检测配置文件期间屏蔽非错误信息

nginx -p prefix #设置前缀路径(默认是:/usr/share/nginx/)

nginx -c filename #设置配置文件(默认是:/etc/nginx/nginx.conf)

nginx -g directives #设置配置文件外的全局指令

nginx -v——查看版本信息
nginx -V——查看编译信息
nginx -s——发送信号(kill -l查看信号)
nginx -t——检查语法

nginx -g——使用选项后的配置,不使用配置文件里的内容
ps aux|grep nginx
systemctl start/stop/status nginx
nginx -g "user cxk"
nginx -g ’daemon off;‘ 前台运行命令

三、Apache

1.Apache的三种工作模式

Prefork——多进程
Worker——多线程
Event——基于异步I/O模型

2.apache 功能

提供http协议服务

多个虚拟主机:IP、Port、FQDN   用一台 物理服务器搭建多个网站    百度  jd  淘宝

CGI:Common Gateway Interface,通用网关接口,支持动态程序

反向代理

负载均衡

路径别名

丰富的用户认证机制:basic,digest

支持第三方模块

3.apache优化

监听地址 、隐藏版本号、定义别名、虚拟主机

四、Nginx介绍

(一)I/O模型

Select 会轮询遍历所有的事件集合,其次遍历的事件个数有限制;

Epoll 只会遍历已准备好的事件集合,事件个数无限制。

Linux系统默认的模型是Epoll

(二)nginx优化

1.隐藏版本号或修改版本

2.修改启动进程数

worker_processes auto;
#如果设置为auto  就是你真实的cpu数量

启动进程数按照服务器的cpu个数启动

3.cpu与work 进程 绑定

worker_cpu_affinity 00000001 00000010 00000100 00001000;第0号---第3号CPU   
#序号绑定cpu    亲缘性

4.调试work进程打开文件个数

worker_rlimit_nofile 65536; 
#所有worker进程能打开的文件数量上限,包括:Nginx的所有连接(例如与代理服务器的连接等),而不仅仅是与客户端的连接,另一个考虑因素是实际的并发连接数不能超过系统级别的最大打开文件数的限制.最好与ulimit -n 或者limits.conf的值保持一致

5.http设置

①server块构建虚拟主机 实际只有1台, 好像有多台主机
②alias 别名
③location去匹配

#匹配优先级从高到低   =, ^~, ~/~*, 不带符号

④access 模块 四层控制
⑤自定义 错误页面
⑥日志位置存放   日志分割
⑦检测文件是否存在
⑧长连接
⑨作为下载服务器配置

(三)nginx应用程序方面的优化

①nginx应用程序配置文件优化

②nginx应用程序的配置文件安全优化:

③nginx的日志分割

编写日志分割脚本+crontab 周期性做日志管理

五、nginx的应用场景


1、可以做web服务器,nginx是一个htp服务,可以独立地提供http服务,可以做静态服务器;
2、虚拟主机。可以实现一台服务器,虚拟多个站点,例如基于ip、不同端口、或者不同域名的站点
3、反向代理服务器,负载均衡。当网站的访问量达到一定的程度时,单台服务器就不能满足用户的请求,此时需要多台服务器集群,此时可以使用nginx做反向代理,并且多台服务器可以平均分担负载,不会让某台服务器负载高或者闲置。(也可以使用ip hash技术 进行负载均衡分配)
4、nginx中还可以配置安全管理,比如支持nginx搭建API接口网关,对每一个接口服务进行拦截
5、nginx还能做缓存服务器;

六、nginx为什么能支持高并发


最核心的原因:nginx是异步,非阻塞,使用epoll,和并且可以进行简单的配置细节优化。
假设一个server采用一个进程(或者线程)负责一个请求的方式,那么进程的数量就是并发的数量,那么会有很多进程在等待中,等待网络的传输,非常耗时耗资源。
但是nginx是使用了异步非阻塞的程序运行方式,解决了等待浪费时间的痛点,有一个专门进行调度进程,每次有一个request请求,就可以分配给worker进程去进行处理,web server 的工作性质决定了每个request 的大部份生命都是在网络传输中,实际上花费在 server 机器上的时间片不多。这是几个进程就解决高并发的秘密所在。

七、 status:状态码,status code

   三位数字,1xx,2xx, ..., 5xx

   标明请求处理过程的结果状态;                     

1xx:100-101, 信息提示;

2xx:200-206,成功类的响应码,例如200;

3xx:300-305,重定向类的响应码,例如301(永久重定向), 302(临时重定 向), 304(资源没修改,对客户端缓存而言)等;

4xx:400-415, 错误类信息,客户端错误,例如 401(认证质询), 404(访问资源不存在), 403(无权限)等;

5xx:500-505, 服务器端错误,例如500(服务器内部错误),502(bad gateway)等;

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

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

相关文章

【大数据】Flink SQL 语法篇(四):Group 聚合

Flink SQL 语法篇(四):Group 聚合 1.基础概念2.窗口聚合和 Group 聚合3.SQL 语义4.Group 聚合支持 Grouping sets、Rollup、Cube 1.基础概念 Group 聚合定义(支持 Batch / Streaming 任务):Flink 也支持 G…

Python及Pycharm专业版下载安装教程(Python 3.11版)附JetBrains学生认证教程

目录 一、Python下载及安装1、Python下载2、Python安装3、验证是否安装成功 二、PyCharm下载及安装1、PyCharm下载2、PyCharm安装3、激活PyCharm 三、JetBrains学生认证 本篇主要介绍Python和PyCharm专业版的下载及安装方式,以及通过两种方式进行JetBrains学生认证。…

第十篇【传奇开心果系列】Python的文本和语音相互转换库技术点案例示例:Microsoft Azure开发语音翻译应用程序经典案例

传奇开心果博文系列 系列博文目录Python的文本和语音相互转换库技术点案例示例系列 博文目录前言一、雏形示例代码二、扩展思路介绍三、Azure多语种支持示例代码四、Azure实时对话模式示例代码五、Azure自定义翻译模型示例代码六、Azure语音合成示例代码七、Azure用户界面优化示…

openGauss学习笔记-229 openGauss性能调优-系统调优-配置Ustore

文章目录 openGauss学习笔记-229 openGauss性能调优-系统调优-配置Ustore229.1 设计原理229.2 核心优势229.3 使用指导 openGauss学习笔记-229 openGauss性能调优-系统调优-配置Ustore Ustore存储引擎,又名In-place Update存储引擎(原地更新&#xff09…

java面试(网络)

TCP和UDP有什么区别?TCP三次握手不是两次? TCP:面向连接,可靠的,传输层通信协议。点对点,占用资源多,效率低。 UDP:无连接,不可靠,传输层通信协议。广播&…

Nvidia Jetson Orin NX配置环境

Nvidia Jetson Orin NX配置环境配置环境 一、安装jetson5.1.2二、安装jtop三、配置CUDA和cuDNN四、安装Pytorch 先导片:Jetson采用arm64架构 一、安装jetson5.1.2 安装好jetson自带cuda、cudnn和tensorRT 官方文档 更换源 sudo vi /etc/apt/sources.list.d/nvidia…

力扣技巧题:丢失的数字

先排后找可以让结果更简单 int cmp(const void* a, const void* b){return *(int*)a - *(int*)b; } int missingNumber(int* nums, int numsSize){qsort(nums, numsSize, 4, cmp);for(int i0; i<numsSize; i){if(nums[i] i){continue;}else{return i;}}return numsSize; }…

10 在线逻辑分析仪的使用

在线逻辑分析仪简介 传统的 FPGA 板级调试是将逻辑分析仪连接到 FPGA 的 IO 引脚上 &#xff0c;然后将内部信号引出至 IO 引脚&#xff0c;再进行板级调试&#xff0c;这种方法的缺点是我们需要一个逻辑分析仪&#xff0c;且还要在 PCB 中预留测试点。在线逻辑分析仪克服了以…

使用 C++23 协程实现第一个 co_yield 同步风格调用接口--Qt计算排列组合

在C23的协程特性里&#xff0c; co_yield 用于从协程执行过程中返回值。这个功能乍一听起来很奇怪&#xff0c;网上的例子大多是用一个计数器来演示多次中断协程函数&#xff0c;返回顺序的计数值。这看起来毫无意义。 其实这个功能主要想演示的就是协程 co_yield 具备打断一个…

【数据结构】图——最短路径

最短路径问题&#xff1a;从在带权有向图G中的某一顶点出发&#xff0c;找出一条通往另一顶点的最短路径&#xff0c;最短也就是沿路径各边的权值总和达到最小。 最短路径分为图中单源路径和多源路径。 本文会介绍Dijkstra和Bellman-Ford解决单源路径的问题 Floyd-Warshall解…

SCI一区 | Matlab实现ST-CNN-MATT基于S变换时频图和卷积网络融合多头自注意力机制的多特征分类预测

SCI一区 | Matlab实现ST-CNN-MATT基于S变换时频图和卷积网络融合多头自注意力机制的故障多特征分类预测 目录 SCI一区 | Matlab实现ST-CNN-MATT基于S变换时频图和卷积网络融合多头自注意力机制的故障多特征分类预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍…

【牛客】2024牛客寒假算法基础集训营6ABCDEGHIJ

文章目录 A 宇宙的终结题目大意主要思路代码 B 爱恨的纠葛题目大意主要思路代码 C 心绪的解剖题目大意主要思路代码 D 友谊的套路题目大意主要思路代码 E 未来的预言题目大意主要思路代码 G 人生的起落题目大意主要思路代码 I 时空的交织题目大意主要思路代码 J 绝妙的平衡题目…

ChatGPT调教指南 | 咒语指南 | Prompts提示词教程(三)

在人工智能成为我们日常互动中无处不在的一部分的时代&#xff0c;与大型语言模型(llm)有效沟通的能力是无价的。“良好提示的26条原则”为优化与这些复杂系统的交互提供了全面的指导。本指南证明了人类和人工智能之间的微妙关系&#xff0c;强调清晰、专一和结构化的沟通方法。…

leetcode hot100 买卖股票最佳时机3

本题中&#xff0c;依旧可以采用动态规划来进行解决&#xff0c;之前的两个题我们都是用二维数组dp[i][2]来表示的&#xff0c;其中i表示第i天&#xff0c;2表示长度为2&#xff0c;其中0表示不持有&#xff0c;1表示持有。 本题中&#xff0c;说至多完成两笔交易&#xff0c;也…

RabbitMQ 面试八股题整理

前言&#xff1a;本文是博主网络自行收集的一些RabbitMQ相关八股文&#xff0c;还在准备暑期实习&#xff0c;后续应该会持续更新...... 参考&#xff1a;三天吃透RabbitMQ面试八股文_牛客网 目录 RabbitMQ概述 什么是 RabbitMQ&#xff1f; 说一说RabbitMQ中的AMQP 为什么…

单机取证-信息安全管理与评估-2022年国赛真题-环境+wp

🍬 博主介绍 博主介绍:大家好,我是 Mikey ,很高兴认识大家~ 主攻:【应急响应】 【python】 【数字取证】【单机取证】【流量分析】【MISC】 🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋 🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步 作者水平有限,欢迎各…

网络层的DDoS攻击与应用层的DDoS攻击之间的区别

DDoS攻击&#xff08;即“分布是拒绝服务攻击”&#xff09;&#xff0c;是基于DoS的特殊形式的拒绝服务攻击&#xff0c;是一种分布式、协作的大规模攻击方式&#xff0c;主要瞄准一些企业或政府部门的网站发起攻击。根据攻击原理和方式的区别&#xff0c;可以把DDoS攻击分为两…

(done) 如何判断一个矩阵是否可逆?

参考视频&#xff1a;https://www.bilibili.com/video/BV15H4y1y737/?spm_id_from333.337.search-card.all.click&vd_source7a1a0bc74158c6993c7355c5490fc600 这个视频里还暗含了一些引理 1.若 AX XB 且 X 和 A,B 同阶可逆&#xff0c;那么 A 和 B 相似。原因&#xff1…

RDMA内核态函数ib_post_recv()源码分析

接上文&#xff0c;上文分析了内核rdma向发送队列添加发送请求的函数ib_post_send&#xff0c;本文分析一下向接收队列添加接收请求的函数ib_post_recv。其实函数调用流程与上文类似&#xff0c;不再重复说明&#xff0c;可参考链接。 函数调用过程 最终会调用到这个函数 下面…

Stable Diffusion 绘画入门教程(webui)-ControlNet(Inpaint)

上篇文章介绍了语义分割Tile/Blur&#xff0c;这篇文章介绍下Inpaint&#xff08;重绘&#xff09; Inpaint类似于图生图的局部重绘&#xff0c;但是Inpain效果要更好一点&#xff0c;和原图融合会更加融洽&#xff0c;下面是案例&#xff0c;可以看下效果&#xff08;左侧原图…