天天看点

httpd1. httpd简介2. httpd版本3. httpd基础4.编译安装http-2.45. httpd常用配置虚拟主机示例:https配置

httpd是apache的超文本传输​​协议(http)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。

通常,httpd的不应该被直接调用,而应该在类unix的系统中由的apachectl调用,在windows中作为服务运行。

本文主要介绍的httpd的两大版本,httpd-2.2和httpd-2.4。

centos6系列的版本默认提供的是的httpd-2.2版本的rpm包

centos7系列的版本默认提供的是的httpd-2.4版本的rpm包

2.1 httpd的特性

httpd的有很多特性,下面就分别来说说的httpd-2.2版本和的httpd-2.4版本各自的特性。

httpd-2.2的特性

事先创建进程

按需维持适当的进程

模块化设计,核心比较小,各种功能通过模块添加(包括php),支持运行时配置,支持单独编译模块

支持多种方式的虚拟主机配置,如基于ip的虚拟主机,基于端口的虚拟主机,基于域名的虚拟主机等

支持https协议(通过mod_ssl模块实现)

支持用户认证

支持基于ip或域名的acl访问控制机制

支持每目录的访问控制(用户访问默认主页时不需要提供用户名和密码,但是用户访问某特定目录时 需要提供用户名和密码)

支持url重写

支持mpm(multi path modules,多处理模块)。用于定义httpd的工作模型(单进程、单进程多线程、多进程、多进程单线程、多进程多线程)

httpd-2.4的新特性:

mpm支持运行dso机制(dynamic share object,模块的动态装/卸载机制),以模块形式按需加载

支持event mpm,eventmpm模块生产环境可用

支持异步读写

支持每个模块及每个目录分别使用各自的日志级别

每个请求相关的专业配置,使用来配置

增强版的表达式分析器

支持毫秒级的keepalive timeout

基于fqdn的虚拟主机不再需要namevirtualhost指令

支持用户自定义变量

支持新的指令(allowoverridelist)

降低对内存的消耗

2.2 httpd-2.4新增的模块

的httpd-2.4在之前的版本基础上新增了几大模块,下面就几个常用的来介绍一下。

3.1 httpd自带的工具程序

3.2 rpm包安装的httpd程序环境

mpm:以dso机制提供,配置文件为/etc/httpd/conf.modules.d/00-mpm.conf

3.3 web相关的命令

3.3.1 curl命令

curl是基于url语法在命令行方式下工作的文件传输工具,它支持ftp,ftps,http,https,gopher,telnet,dict,file及ldap等协议。

curl支持以下功能:

https认证

http的post/put等方法

ftp上传

kerberos认证

http上传

代理服务器

cookies

用户名/密码认证

下载文件断点续传

socks5代理服务器

通过http代理服务器上传文件到ftp服务器

3.3.2 httpd命令

//这里的http压缩包可以用curl命令或者wget命令去apache网站下载

切换使用mpm(编辑/etc/httpd/conf.modules.d/00-mpm.conf文件):

loadmodule mpm_name_module modules/mod_mpm_name.so

name有三种,分别是:

prefork

event

worker

访问控制法则:

ipaddr的类型

ip:192.168.1.1

network/mask:192.168.1.0/255.255.255.0

network/length:192.168.1.0/24

net:192.168

hostname的类型

fqdn:特定主机的全名

domain:指定域内的所有主机

注意:httpd-2.4版本默认是拒绝所有主机访问的,所以安装以后必须做显示授权访问

示例:

虚拟主机:

虚拟主机有三类:

相同ip不同端口

不同ip相同端口

相同ip相同端口不同域名

ssl:

启用模块:编辑/etc/httpd/conf.modules.d/00-base.conf文件,添加下面这行,如果已经有了但是注释了,则取消注释即可

<code>loadmodule ssl_module modules/mod_ssl.so</code>

先启用模块

配置相同ip相同端口不同域名

//记得把文件拖出来修改,之后再拖进去

搞完就可以直接用域名登录网页了