Apache的管理

本文详细介绍了Apache的三种工作模式:Prefork、Worker和Event MPM,以及Apache的安装、优化、隐藏版本号、防盗链设置、压力测试工具ab的使用、日志分隔方法和虚拟主机配置。此外,还探讨了如何统计PV和UV,为Apache的运维提供了全面的指导。
摘要由CSDN通过智能技术生成

 简单介绍 

 Apache的三种工作模式

 1、Prefork MPM

多进程 

 Prefork MPM:实现了一个非线程的、预派生的web服务器。它在Apache启动之初,就先预派生一些子进程,然后等待连接;可以减少频繁创建和销毁进程的开销,每个子进程只有一个线程,在一个时间点内,只能处理一个请求。
优点:这是一个成熟稳定,可以兼容新老模块,也不需要担心线程安全问题
缺点:但是一个进程相对占用资源,消耗大量内存,不擅长处理高并发的场景

2、Worker MPM

多进程+多线程   

Worker MPMprefork模式相比:worker使用了多进程和多线程的混合模式,worker模式也同样会先预派生一些子进程,然后每个子进程创建一些线程,同时包括一个监听线程,每个请求过来会被分配到一个线程来服务。
优点:线程比起进程会更轻量,因为线程是通过共享父进程的内存空间,因此,内存的占用会减少一些,在高并发的场景下会比prefork有更多可用的线程,表现会更优秀一些
缺点:如果一个线程出现了问题也会导致同一进程下的线程出现问题,如果是多个线程出现问题,也只是影响Apache的一部分,而不是全部。由于用到多进程多线程,需要考虑到线程的安全了,在使用keep-alive长连接的时候,某个线程会一直被占用,即使中间没有请求,需要等待到超时才会被释放(该问题在prefork模式下也存在)

 3、Event MPM

多进程+多线程+epoll

这是Apache最新的工作模式,它和worker模式很像,不同的是在于它解决了keep-alive长连接的时候占用线程资源被浪费的问题,在event工作模式中,会有一些专门的线程用来管理这些keep-alive类型的线程,当有真实请求过来的时候,将请求传递给服务器的线程,执行完毕后,又允许它释放。这增强了在高并发场景下的请求处理

     总的来说   :不同模式效率不同,主要用于调优;命令“ httpd -v | grep "Server MPM" ”查看当前使模式

后缀不同(开发语言不同)

静态页面一般以  .html/.htm/.xml
开发在写完页面之后,所写的页面需要部署到服务器上的,在部署页面之前需要在服务器上安装能够解析静态页面的服务(nginx httpd这两类web服务默认只能解析静态页面)

静态页面的内容是固定的,动态页面的内容会因用户、浏览器、时间、地点等而发生变化


动态页面一般以 .php/.asp/jsp/.pl/.py/.cgi 等为后缀
动态页面也需要在服务器上部署能够解析动态页面的服务(nginx httpd),还要安装能够解析php页面php服务

Urluri它俩之间很相似
Urluri能够更精确的定位到资源,资源位置是绝对路径, uri的资源位置可以是相对路径  url=https://www.aaa.com(域名)/ 

主要目录和文件
服务目录 /usr/local/httpd/
主配置文件 /usr/local/httpd/conf/httpd.conf
网页目录 /usr/local/httpd/htdocs/
服务脚本 /usr/local/httpd/bin/apachectl
执行程序 /usr/local/httpd/bin/httpd
访问日志 /usr/local/httpd/log/access_log
错误日志 /usr/local/httpd/log/error_log
http状态返回状态码
状态码首位 范围 分类
1xx 100-101 信息提示
2xx 200-226 成功
3xx 300-308 重定向
4xx 400-499 客户端错误
5xx 500-599 服务器错误
常见的状态返回码 
101 切换协议
200 成功
202 以接受请求,但处理未完成
301 请求的页面永久跳转
302 临时跳转
403 禁止访问该页面
404 找不到页面
500 服务器内部错误
502 网关错误
503 当前服务不可用
504 网关请求超时

511

需要网络授权
520 未知错误

一、Apache的安装

 cat /usr/local/httpd/build/config.nice   查看模块配置

 Apache:   /usr/local/httpd/conf/httpd.conf  这个配置文件是httpd的主配置文件

1.上传   httpd-2.2.17   软件包

[root@C7--01 ~]# rz -E
rz waiting to receive.

2.解压

[root@C7--01 ~]# tar xf httpd-2.2.17.tar.gz -C /usr/src/
[root@C7--01 ~]# cd /usr/src/httpd-2.2.17/              #进入目录
[root@C7--01 httpd-2.2.17]#

3.开启相应的模块

安装方式一: 

[root@C7--01 httpd-2.2.17]# ./configure --prefix=/usr/local/httpd --enable-cgi --enable-rewrite --enable-so --enable-deflate --enable-expires           

--enable-deflate:启用压缩模块;先压缩网页,在发送给客户端传输速度快

--enable-expires:缓存;有本地缓存使用缓存,没有缓存在从服务器拿数据

在配置模块时发现报错:checking for zlib location... not found  检查不到zlib软件

 那我们就安装zlib

[root@C7--01 httpd-2.2.17]# yum -y install zlib
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
软件包 zlib-1.2.7-17.el7.x86_64 已安装并且是最新版本
无须任何处理

但是发现我们已经安装了zlib软件那我们在apr后面加-devel在安装一次

[root@C7--01 httpd-2.2.17]# yum -y install zlib-devel
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 zlib-devel.x86_64.0.1.2.7-17.el7 将被 安装
--> 解决依赖关系完成
............
......
..
完毕!



    -----如果不是以上报错那么可能是以下的依赖包没有安装

yum -y install pcre-devel apr-devel libdb-devel cyrus-sasl-devel openldap-devel expat-devel apr-util-devel gcc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乘浪初心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值