Web 基础——Apache

在这里插入图片描述

Event
  • Worker 的升级版、把服务器进程和连接进行分析,基于异步 I/O 模型。

  • 请求过来后进程并不处理请求,而是直接交由其它机制来处理,通过 epoll 机制来通知请求是否完成;

  • 在这个过程中,进程本身一直处于空闲状态,可以一直接收用户请求。可以实现一个进程响应多个用户请求。

  • 并且 Event 模式对于 Keep-Alive 连接处理也有所优化,Event 模式由单独的线程处理 Keep-Alive 长连接,执行完毕后,又允许它释放。

  • 这样增强了高并发场景下的请求处理能力。

  • 特点:支持海量级高并发负载、消耗资源少、但其对 https 支持的不完美。

在这里插入图片描述

Keep-Alive 长连接:

  • TCP 连接在发送后将依然保持打开状态,于是浏览器可以继续通过相同的连接发送请求。

  • 保持连接节省了为每个请求建立新连接所需的时间,还节约了带宽。

  • 减少重复请求的次数,进而加快访问速度,实现长连接要客户端和服务端都支持长连接。

总结:

  • 不同模式效率不同,主要用来调优。使用 httpd -V | grep 'MPM' 可以查看当前使用模式。

二、部署 Apache 网站服务

===================================================================================

准备工作

| 主机名 | 操作系统 | IP地址 | 版本号 |

| — | — | — | — |

| Apache | CentOS 7.4 | 192.168.1.1 | httpd-2.2.17.tar.gz |

1.编译安装 Apache


  • 静态编译:将模块直接编译进 httpd 的核心中。静态编译的所有模块都会随着 httpd 的启动而启动。

  • 动态编译:将模块编译好,但不编译到 httpd 的核心中。要启动动态编译的模块,需要在配置文件中使用 LoadModule 指令加载。

[root@Apache ~]# wget http://archive.apache.org/dist/httpd/httpd-2.2.17.tar.gz

[root@Apache ~]# tar zxf httpd-2.2.17.tar.gz -C /usr/src/

[root@Apache ~]# cd /usr/src/httpd-2.2.17/

[root@Apache httpd-2.2.17]# ./configure \

–prefix=/usr/local/httpd \

–enable-so \

–enable-rewrite \

–enable-cgi && make && make install

注解:

  • --enable-so:开启动态加载模块的功能。

  • --enable-rewrite:开启地址重写、重定向功能。

  • --enable-cgi:开启与一些动态编程语言之间进行交互的接口。

在这里插入图片描述

动态编译:

./configure \

–prefix=/usr/local/httpd \

–enable-so \

–enable-modules=most \

–enable-mpms-shared=all && make && make install

  • 注意:本次实验并不需要做动态编译。

查看模块

/usr/local/httpd/bin/apachectl -D DUMP_MODULES # 会显示静态编译还是动态编译

2.安装后优化调整


[root@Apache httpd-2.2.17]# ln -s /usr/local/httpd/bin/* /usr/local/bin/ # 优化执行路径

[root@Apache ~]# httpd -v # 查看httpd版本

[root@Apache ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd # 复制启动文件

[root@Apache ~]# sed -i 1a’#chkconfig: 35 85 15’ /etc/init.d/httpd # 在第一行后面插入

[root@Apache ~]# chmod +x /etc/init.d/httpd # 添加可执行权限

[root@Apache ~]# chkconfig --add httpd # 添加为系统服务

[root@Apache ~]# chkconfig httpd on # 设置开机自启

[root@Apache ~]# systemctl start httpd # 开启httpd服务

[root@Apache ~]# netstat -anpt | grep 80 # 查看端口是否开启

在这里插入图片描述

3.使用浏览器访问验证


在这里插入图片描述

4.配置多个网页


[root@Apache ~]# cd /usr/local/httpd/htdocs/

[root@Apache htdocs]# rm -rf index.html

[root@Apache htdocs]# mkdir baidu

[root@Apache htdocs]# mkdir sina

[root@Apache htdocs]# echo “

www.baidu.com

” > baidu/index.html

[root@Apache htdocs]# echo “

www.sina.com

” > sina/index.html

在这里插入图片描述

使用浏览器访问验证:

在这里插入图片描述

解决方法:

[root@Apache ~]# vim /usr/local/httpd/conf/httpd.conf

将主配置文件中的:

144 Options Indexes FollowSymLinks

替换为:

144 Options FollowSymLinks

[root@Apache ~]# systemctl restart httpd # 重启httpd服务

[root@Apache ~]# netstat -anpt | grep 80 # 查看端口是否开启

在这里插入图片描述

使用浏览器访问验证:

在这里插入图片描述

5.调整工作模式


  • 注意:设置工作模式时,不仅要考虑网站的并发连接等工作效率,也要考虑服务器硬件占用情况,内存尤为重点考虑。

1)查看工作模式

[root@Apache ~]# httpd -V | grep ‘MPM’

在这里插入图片描述

2)Prefork 工作模式

| 参数 | 作用 |

| :-- | :-- |

| StartServers | 服务器启动时建立的子进程数量 |

| MinSpareServers | 空闲子进程最小数量,当空闲子进程数小于该数值将产生新的子进程 |

| MaxSpareServers | 空闲子进程最大数量,当空闲子进程数大于该数值将杀死多余子进程 |

| MaxClinets | 限制用户最大并发数 |

| MaxRequestsPerChild | 每个子进程在其生存期内允许处理的最大请求数量 |

[root@Apache ~]# vim /usr/local/httpd/conf/extra/httpd-mpm.conf

36

37 StartServers 5

38 MinSpareServers 5

39 MaxSpareServers 20

40 MaxClients 150

41 MaxRequestsPerChild 10000

42

[root@Apache ~]# vim /usr/local/httpd/conf/httpd.conf

将主配置文件中的:

370 #Include conf/extra/httpd-mpm.conf # 去掉注释

替换为:

370 Include conf/extra/httpd-mpm.conf

[root@Apache ~]# systemctl restart httpd # 重启httpd服务

[root@Apache ~]# netstat -anpt | grep 80 # 查看端口是否开启

在这里插入图片描述

3)Worker 工作模式

| 参数 | 作用 |

| :-- | :-- |

| StartServers | 服务器启动时建立的子进程数量 |

| MinSpareServers | 空闲子线程最少数量,当空闲子线程数量少于该数值将产生新的子线程 |

| MaxSpareServers | 空闲子线程最大数量,当空闲子线程数量大于该数量将杀死多余子线程 |

| MaxClients | 限制用户最大并发数 |

| MaxRequestsPerChild | 每个子进程在其生存期内允许处理的最大请求数量 |

[root@Apache ~]# vim /usr/local/httpd/conf/extra/httpd-mpm.conf

51

52 StartServers 2

53 MaxClients 150

54 MinSpareThreads 25

55 MaxSpareThreads 75

56 ThreadsPerChild 50

57 MaxRequestsPerChild 10000

58

切换到 Worker 工作模式

[root@Apache ~]# systemctl stop httpd

[root@Apache ~]# cat /usr/local/httpd/build/config.nice # 查看之前安装httpd的配置信息

[root@Apache ~]# cd /usr/src/httpd-2.2.17/

[root@Apache ~]# ./configure \

–prefix=/usr/local/httpd \

–enable-so \

–enable-rewrite \

–enable-cgi \

–with-mpm=worker && make clean && make && make install

在这里插入图片描述

查看当前工作模式

[root@Apache ~]# httpd -V | grep ‘MPM’ # 查看当前工作模式

[root@Apache ~]# systemctl start httpd # 开启httpd服务

[root@Apache ~]# netstat -anpt | grep 80 # 查看端口是否开启

[root@Apache ~]# ps aux | grep httpd # 查看httpd进程

在这里插入图片描述

4)Event 工作模式

| 参数 | 作用 |

| :-- | :-- |

| ServerLimit | 服务器开启最大的进程数 |

| StartServers | 服务器启动时建立的子进程数量 |

| MaxClinets | 限制用户最大并发数 |

| MinSpareThreads | 空闲子线程最小数量,当空闲子线程数小于该数值将产生新的子线程 |

| MaxSpareServers | 空闲子线程最大数量,当空闲子线程数大于该数值将杀死多余子线程 |

| ThreadsPerChild | 每个子进程的最大并发线程数 |

| MaxRequestsPerChild | 每个子进程在其生存期内允许服务的最大请求数量 |

[root@Apache ~]# vim /usr/local/httpd/conf/extra/httpd-mpm.conf

最后

==
就答题情况而言,第一问100%都可以回答正确,第二问大概只有50%正确率,第三问能回答正确的就不多了,第四问再正确就非常非常少了。其实此题并没有太多刁钻匪夷所思的用法,都是一些可能会遇到的场景,而大多数人但凡有1年到2年的工作经验都应该完全正确才对。
只能说有一些人太急躁太轻视了,希望大家通过此文了解js一些特性。

并祝愿大家在新的一年找工作面试中胆大心细,发挥出最好的水平,找到一份理想的工作。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Qt常用控件——QLCDNumber

文章目录 QLCDNumber核心属性倒计时小程序倒计时小程序相关问题 QLCDNumber核心属性 QLCDNumber是专门用来显示数字的控件,类似于这样: 属性说明intValue获取的数字值(int).value获取的数字值(double)和intValue是联动的例如value设为1.5,in…

第十一周:机器学习

第十一周周报 摘要Abstract机器学习1. 注意力机制(下)1.1 multi-head self-attention(多头注意力机制)1.2 Positional Encoding(位置编码)1.3 truncated self attention(截断式注意力机制&#…

即插即用篇 | YOLOv8 引入高效的直方图Transformer模块 | 突破天气障碍:Histoformer引领高效图像修复新路径“

本改进已同步到YOLO-Magic框架! 摘要:摘要。基于Transformer的恶劣天气图像修复方法取得了显著进展。大多数方法通过沿通道维度或在空间上固定范围的块内使用自注意力,以减少计算负担。然而,这种折中方式在捕获长距离空间特征方面存在局限性。受到恶劣天气导致的退化因素主…

黑马点评18——多级缓存-OpenResty

文章目录 安装OpenRestyOpenResty快速入门OpenResty获取请求参数封装Http请求向Tomcat发送http请求根据商品id对tomcat集群负载均衡Redis缓存预热查询Redis缓存Nginx本地缓存 安装OpenResty 安装参考博客 OpenResty快速入门 nginx是没有业务能力的,我们是把请求转发…

NLP基础及其代码-BERT系列

1.基础知识 BERT系列RoBERTa ALBERT ERINE详解与使用学习笔记-腾讯云开发者社区-腾讯云 (tencent.com) 2.BERT 分词:wordpiece 预训练: mask:选择15%的分词进行mask(80%mask 10%随机替换分词 10%分词保持不变) NSP…

替换传统数据处理平台,TDengine 与华风数据达成合作

在全球能源转型的大背景下,新能源产业正迎来前所未有的发展机遇。随着国家对可再生能源的政策支持和市场需求的不断增长,风电、光伏和储能等新能源项目如雨后春笋般蓬勃发展。然而,随之而来的数据处理与管理挑战也日益凸显。面对海量的设备运…

构建常态化安全防线:XDR的态势感知与自动化响应机制

当前,网络安全威胁日益复杂多变,企业正面临前所未有的严峻挑战。为有效应对这些挑战,态势感知与自动化响应机制在提升网络安全运营效率与防御效果中扮演着至关重要的角色。它们能够实时监测网络状态,智能分析潜在威胁,…

Spring Cloud之二 微服务注册

1&#xff1a;Intellij 新建服务 user-service 2&#xff1a;pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"…

[leetcode-python]杨辉三角2

给定一个非负索引 rowIndex&#xff0c;返回「杨辉三角」的第 rowIndex 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 示例 1: 输入: rowIndex 3 输出: [1,3,3,1]示例 2: 输入: rowIndex 0 输出: [1]示例 3: 输入: rowIndex 1 输出: [1,1]提示…

如何将 Electron 项目上架 Apple Store

前言 Electron 是一个开源框架,它允许开发者使用 Web 技术(HTML、CSS 和 JavaScript)来构建跨平台的桌面应用程序。 Electron 应用程序可以运行在 Windows、macOS 和 Linux 上,为用户提供了一种统一的方式来开发和维护软件。 本文将探讨如何将 Electron 构建的桌面应用程…

CTF——简单的《WEB》

文章目录 一、WEB1、easysql2、baby_web3、baby_sql4、upload_easy5、easygame拓展1.1拓展1.2 6、ht_ssti7、包容乃大 一、WEB 1、easysql 题目描述&#xff1a; sql注入漏洞 1.常用的sql注入测试语句 2.sql注入bypass 解题思路 这边提示基本给的也很完整的&#xff0c;不…

【Linux】Linux介绍及CentOS虚拟机环境搭建

内容大纲介绍 文章目录 内容大纲介绍1.计算机简介2.Linux系统介绍3.虚拟化软件介绍4.Linux环境搭建5.扩展_虚拟机的快照6.Linux的目录介绍 1.计算机简介 概述 全称叫电子计算机, 英文名叫Computer, 俗称叫: 电脑, 简称叫: PC, 就是有硬件和软件组成的电子设备. 组成 计算机硬件…

QGis二次开发 —— 3、程序加载栅格tif与矢量shp文件可进行切换控制,可进行导出/导入工程(附源码)

效果 功能说明 软件可同时加载.tif栅格图片与.shp矢量图片、加载图片后可进行自由切换查看图层、可对加载的图片进行关闭 关闭后清空图层、可对加载的图片进行导出.qgs的QGIS工程、可对.qgs的QGis工程导入并导入后可进行自由切换查看图层。 源码 注意: 在加载tif栅格文件后会在…

华为 HCIP-Datacom H12-821 题库 (16)

1.需要题库的小伙伴至博客最下方添加微信公众号关注后回复题库 2.有兴趣交流IT问题的小伙伴微信公众号回复交流群&#xff0c;加入微信IT交流群 1. OSPF 邻居关系建立出现故障&#xff0c;通过 display ospf error 命令来检查&#xff0c;输出结果如图所示&#xff0c;根据图中…

OceanBase 4.x 存储引擎解析:如何让历史库场景成本降低50%+

据国际数据公司&#xff08;IDC&#xff09;的报告显示&#xff0c;预计到2025年&#xff0c;全球范围内每天将产生高达180ZB的庞大数据量&#xff0c;这一趋势预示着企业将面临着更加严峻的海量数据处理挑战。随着数据日渐庞大&#xff0c;一些存储系统会出现诸如存储空间扩展…

【Python 千题 —— 算法篇】寻找最长回文子串

Python 千题持续更新中 …… 脑图地址 &#x1f449;&#xff1a;⭐https://twilight-fanyi.gitee.io/mind-map/Python千题.html⭐ 题目背景 回文串是指一个字符串从左到右和从右到左读都是一样的。寻找一个字符串中的最长回文子串是许多经典算法问题之一&#xff0c;广泛应…

使用docker安装jenkins,然后使用jenkins本地发版和远程发版

使用docker安装jenkins&#xff0c;然后使用jenkins本地发版和远程发版 1、安装docker 1.安装必要的一些系统工具 sudo yum install docker-ce 2.添加软件源信息 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 3.更新…

DAY74

#ifndef WIDGET_H #define WIDGET_H#include <QWidget>#include <QPainter> //画家类 #include <QTimer> //定时器类 #include <QTime> //时间类QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : …

风控——贷中管理介绍

一、概念介绍 贷中管理&#xff0c;指从贷款发放之日起&#xff0c;至贷款本息收回日期为止的贷款管理&#xff0c;贷中管理策略也集中在贷款发放后的管理和监控阶段&#xff0c;其目的是确保贷款资金的安全和有效使用&#xff0c;贷中预警和贷中调额在贷中管理中至关重要。 …

STMCuBeMX新建项目的两种匪夷所思的问题

错误一、保存地址名中有中文 错误&#xff1a;error1-haveCHinese_有中文\error1-haveCHinese_有中文.axf: error: L6002U: Could not open file error1-havechinese_???\stm32f1xx_it.o: No such file or directory 解决方法&#xff1a;重新导出&#xff0c;并且不要用中文…