httpd服务面试题
1、请说一下你对httpd服务的了解?
答:Apache是一个模块化服务,支持的模块比较多,采用servlet处理模型,同步阻塞模型,工作模式多变,对于高并发的场景处理速度会比较慢,运行稳定。支持异步读写,可以通过正则表达式做动静分离。
2、httpd服务的三种工作模式你了解多少?
答:httpd有三种工作模式。
prefork:预派生子进程
prefork模式可以算是很古老但是很稳定的模式。httpd服务在刚启动时,就会fork出一些子进程(默认为5个),一个子进程对应一个线程,然后等待request进来,并且总是试图保持一些空闲的子进程,之所以这样做,是为了减少频繁创建和销毁进程的开销。在同一个时间点内,一个线程只能处理一个进程。
worker工作模式
worker模式和prefork模式比起来,是使用了多进程+多线程的模式,它也是预先fork了几个子进程,每个子进程能够生成一些服务线程和一个监听线程,该监听线程及接入请求并传递给服务线程处理和应答。worker工作模式占用的内存较少,在高并发下表现还算优异。不过必须要考虑线程安全的问题,因为多个子进程是共享父进程的内存地址的。如果使用keep-alive的长连接方式,也许中间几乎没有请求,这是就会发生阻塞,线程被挂起,需要一直等待到超时才会被释放。如果过多的线程,就这样被占据,也会导致在高并发场景下的无服务线程可用。(该问题同样会发生在prefork模式)。
event工作模式
这是Apache最新的工作模式,它和worker模式很像,最大的区别在于,它解决了keep-alive场景下,线程被长期被占用的的资源浪费问题。
event工作模式中,会有一个专门的线程来管理这些keep-alive类型的线程,当有真实请求过来的时候偶,将请求传递给服务线程,执行完毕后,又允许它释放。这样,一个线程就能处理多个请求了,实现异步非阻塞。
event工作模式在遇到某些不兼容的模块时,它会失效,并退回到worker模式,一个工作线程处理一个请求。官方自带的模块,全部都是支持event工作模式的。
3、可以从哪几个方面着手优化httpd?
- 合理配置其进程及线程数;
- 开启httpd的deflate压缩功能;
- 开启expires缓存功能;
- 禁止httpd进行目录遍历;
- 隐藏httpd的版本信息;
- 开启日志切割功能;
- 配置防盗链;
- RedHat 学习笔记 基于ssl的httpd服务配置 (openssl创建CA)
- 马哥2016全新Linux+Python高端运维班-Linux服务 DNS,httpd,加密通讯,vsftp,NFS,samba服务练习
- httpd服务的安装与配置
- httpd服务学习笔记
- http服务详解(2)——httpd2.2的配置文件常见设置
- httpd服务的简单配置
- 配置httpd服务虚拟主机
- 全面搜集整理面试题、笔试题的专业资源共享服务平台
- linux shell学习之自动检测并重启httpd服务
- CentOS 7安装httpd服务
- httpd-2.2和httpd-2.4基本服务的实现
- 监视系统服务mysqld、httpd的运行状态
- Linux下配置httpd服务
- httpd服务之虚拟主机、访问控制、https配置详解
- android上本机httpd代理服务设置
- httpd-2.2和httpd-2.4基于virtualhost构建安全的http服务
- 安装httpd服务
- 把Apache Httpd 转换为系统服务
- 开启httpd服务的时候 显示Could not reliably determine the server`s fully qualified domain name
- Linux服务之httpd基本配置详解