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

一、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是一个http服务,可以独立地提供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.hqwc.cn/news/498338.html

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

相关文章

hive报错:FAILED: NullPointerException null

发现问题 起因是我虚拟机的hive不管执行什么命令都报空指针异常的错误 我也在网上找了很多相关问题的资料,发现都不是我这个问题的解决方法,后来在hive官网上与hive 3.1.3版本相匹配的hadoop版本是3.x的版本,而我的hadoop版本还是2.7.2的版本…

简单1步搞定 NET Framework 3.5 ,离线下载

https://download.csdn.net/download/m0_72735063/88889747?spm1001.2014.3001.5503

Redisson限流算法

引入依赖 <dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>3.12.3</version> </dependency>建议版本使用3.15.5以上 使用 这边写了一个demo示例&#xff0c;定…

给MATLAB安装runtime插件

给MATLAB安装runtime插件&#xff0c;将MATLAB程序打包成exe文件方法 1.查看已安装的MATLAB是否有runtime插件。操作:在command窗口直接输入mcrinstaller。 如果如图上所示&#xff0c;那就是没有。(2019版本以后包括2019一般均没有) 2.下载MATLAB对应子版本的runtime。(很多…

测评ONLYOFFICE 8.0版本:办公利器再升级

测评ONLYOFFICE 8.0版本&#xff1a;办公利器再升级 前言注册使用升级功能速览全新外观设计wordexcelPPTPDF 协作功能强化更强大的功能复杂表单的填写 移动端优化结语 前言 随着科技的不断发展&#xff0c;办公软件在提升用户体验和工作效率方面扮演着越来越重要的角色。作为一…

王者荣耀,急于补齐内容短板

问十个人&#xff0c;有九个人知道《王者荣耀》&#xff1b;但如果再问十个知道《王者荣耀》的人&#xff0c;这款游戏到底讲了一个什么故事&#xff0c;每个角色又有怎样的背景&#xff0c;可能十个人都不知道。 整个新年档口&#xff0c;《王者荣耀》都很忙碌。 1月&#x…

网上申请手机流量卡:便捷、快速、无忧的选择

随着互联网的普及和科技的发展&#xff0c;越来越多的人选择在网上办理各种业务。其中&#xff0c;网上申请手机流量卡成为了一种便捷、快速、无忧的选择。今天小编将详细介绍网上申请手机流量卡的流程和优势&#xff0c;帮助您更好地了解这种新型的办理方式&#xff0c;希望能…

JAVA计算表达式

需求&#xff1a; 1、例如if(score>85){return 1;}else if(score>70){return 2;}else if(score>60){return 3;}else{return 4;}有这一串字符串&#xff0c;要执行这个字符串&#xff0c; 如果score为86分&#xff0c;则能得到1&#xff1b;如果score为30分&#xff…

【Vue3】回顾watch,学习watchEffect

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

【记录】成为创作者的第 365 天

机缘 原来 365 天过得这么快&#xff0c;想想一年前的我还只是一个啥都不懂的小白&#xff08;虽然现在懂的也不算多&#xff09;&#xff0c;只能算是刚入门吧。知道 CSDN 这个平台是偶然在朋友圈看到一条有关该平台的博客转发&#xff0c;于是便注册了账号。 还是那句话&am…

归并分治问题练习和题解

文章目录 简介排序数组原理代码 交易逆序对的总数原理代码跑的过程代码 计算右侧小于当前元素的个数原理代码 翻转对代码 简介 大家好,这里是jiantaoyab,这篇文章给大家带来的是归并类型相关的题目练习和解析,涉及到递归的题目大家可以画递归展开图来方便理解,后面的题目有点绕…

【C++】用文件流的put和get成员函数读写文件

题目 编写一个mycopy程序&#xff0c;实现文件复制的功能。用法是在控制台输入&#xff1a; mycooy 源文件名 目标文件名 参数介绍 m a i n main main 函数的参数有两个&#xff0c;一个int类型参数和一个指针数组。 a r g c argc argc 表示参数的个数。参数为void时 a r g …