HTTP 的实现
HTTP 服务器的程序(想提供 web 服务必须要安装一下程序中的一个)
- httpd(apache)
- nginx
- lighttpd
- 应用程序服务器:上面的程序如果不附加插件则只支持静态的网页,装上下面的程序还能解析 PHP 等动态界面
- IIS
- tomcat,jetty,就 boss,resin
- webshpere,weblogic,oc4j
httpd
apache(a patchy server)的特性
- 高度模块化:core+modules
- DSO:Dynamic Shared Object
- MPM:Multipath Processing Modules 多路处理模块,不同的工作方式,可以切换,使用不同模块可以满足不同需求
- prefork:多进程模型,每个进程响应一个请求
- 一个主进程:负责生成 n 个子近侧很难过,子进程也成为工作进程,每个子进程处理一个用户请求,即便没有用户请求,也会预先生成多个空闲进程,随时等待请求到达,最大不超过 1024 个
- worker:多线程模型
- 一个主进程:负责生成子进程;负责创建套接字;负责接收请求,并将其派发给某子进程进行处理;
- 多个子进程:每个子进程负责生成多个线程;
- 每个线程:负责响应用户请求;
- 并发响应数量:m*n
- m:子进程数量
- n:每个子进程所能创建的最大线程数量;
- event:事件驱动模型,多进程模型,每个进程响应多个请求(老版本系统不支持,systemd 系统支持)
- 一个主进程 :负责生成子进程;负责创建套接字;负责接收请求,并将其派发给某子进程进行处理;
- 子进程:基于事件驱动机制直接响应多个请求;
- prefork:多进程模型,每个进程响应一个请求
Httpd 配置
程序环境(.init 系统下)
- 配置文件
- /etc/httpd/conf/httpd.conf
- /etc/httpd/conf.d/*.conf
- 服务脚本
- /etc/rc.d/init.d/httpd
- 配置文件/etc/sysconfig/httpd
- 主程序文件
- /usr/sbin/httpd
- /usr/sbin/httpd.event
- /usr/sbin/httpd.worker
- 日志文件目录
- /var/log/httpd
- access_log:访问日志
- error_log:错误日志
- 站点文档目录
- /var/www/html
- /var/log/httpd
反馈
此页是否对你有帮助?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.