Linux学习75 http协议全面讲解
一、http服务器程序
1、httpd(apache)
2、nginx
3、lighttpd
4、应用程序服务器
a、IIS:.Net
b、tomcat:.jsp
www.netcraft.com:互联网上著名的数据挖掘站点,他会统计过去一段时间互联网上web服务器的使用趋势。
5、httpd的安装和使用
a、ASF:apache software foundation,http就是ASF旗下的产品
(1)、httpd:apache
(2)、a patchy server = apace
(3)、httpd
6、httpd的特性:
a、高度模块化:core + modules
b、DSO:dynamic shared object,动态共享对象,需要时就装载,不需要时就卸载。
c、MPM:Multipath processing Modules(多路处理模块)
(1)、prefork:多进程模型,每个进程响应一个请求
1)、一个主进程,负责生成子进程及回收子进程,负责创建套接字,负责接收请求,并将其派发给某子进程进行处理
2)、n个子进程:每个子进程处理一个请求
(2)、worker:多进程多线程模型,每线程处理一个用户请求
1)、一个主进程:负责生成子进程;负责创建套接字;负责接收请求,并将其派发给某子进程进行处理;
2)、多个子进程:每个子进程负责生成多个线程
3)、每个线程:负责响应用户请求
4)、并发响应数量:m*n
i、m:子进程数量
ii、n:每个子进程所能创建的最大线程数量
(3)、event:事件驱动模型,多进程模型,每个进程响应多个请求
1)、一个主进程:负责生成子进程;负责创建套接字;负责接收请求,并将其派发给某子进程进行处理;
2)、子进程:基于事件驱动机制直接响应多个请求。
3)、httpd-2.2:任为测试使用模型
4)、httpd-2.4:event可生产环境中使用
7、httpd的功能特性
a、CGI:Common Gateway Interface,通用网关接口。
b、虚拟主机:IP,PORT,FQDN
c、反向代理
d、负载均衡
e、路径别名
f、丰富的用户认证机制
basic
digest
g、支持第三方模块
8、httpd安装使用
a、rpm包:CentOS发行版中直接提供
b、编译安装:定制新功能,或其它原因
9、CentOS 6:httpd-2.2
a、配置文件
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
b、服务脚本:
/etc/rc.d/init.d/httpd
脚本配置文件:/etc/sysconfig/httpd
c、主程序文件:
/usr/sbin/httpd
/usr/sbin/httpd.event
/usr/sbin/httpd.worker
d、日志文件
/var/log/httpd:
access_log:访问日志
error_log:错误日志
e、站点文档:
/var/www/html
f、模块文件路径:
/usr/lib64/httpd/modules
10、CentOS7:httpd-2.4
a、配置文件:
/etc/httpd/conf/httpd.conf :主配置文件
/etc/httpd/conf.d/*.conf :扩展配置文件
模块相关的配置文件:/etc/httpd/conf.modules.d/*.conf
b、systemd unit file:
/usr/lib/systemd/system/httpd.service
c、主程序文件
/usr/sbin/httpd
httpd-2.4支持MPM的动态切换
d、日志文件
/var/log/httpd:
access_log:访问日志
error_log:错误日志
e、站点文档:
/var/www.html
f、模块文件路径:
/usr/lib64/httpd/modules
g、服务控制:
systemctl enable|disable httpd.service
二、配置文件详解
1、/etc/httpd/conf/httpd.conf
Listen:监听的端口,如果想要在80之外再监听一个端口那么再加一行Listen 8080即可。
2、所有的指令不区分大小写,比如Listen可以写成listen
3、配置文件内部封装了很多容器指令,他不对全局有效,只对此块有效,比如
a、比如下面的Directory表示本地文件系统路径,他表示本地文件系统路径根下的内容受控于标签内指令所给出的限制。
<Directory />
AllowOverride none
Require all denied
</Directory>
b、下面内容表示/var/www目录下的内容受控于标签中的两条指令
<Directory "/var/www">
AllowOverride None
# Allow open access:
Require all granted
</Directory>
c、下面的内容意思为:ifModule 表示如果模块存在,dir_module表示模块名称,如果这个模块存在的话就让标签中间的指令生效,这个模块其实是为我们网页文件指定默认主页的
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
4、我们可以看到/etc/httpd/conf/httpd.conf配置文件中最后有一行为IncludeOptional conf.d/*.conf,因此我们IncludeOptional conf.d/路径下的所有配置文件也能生效
5、我们可以通过yum install -y httpd-manual 安装httpd的自建手册,然后访问http://192.168.10.13/manual/ 链接即可。