httpd的配置文件

配置文件:

/etc/httpd/conf/httpd.conf    /etc/httpd/conf.d/*.conf

服务脚本:/etc/rc.d/init.d/httpd

脚本配置文件:/etc/sysconfig/httpd

模块目录: /etc/httpd/modules: 

链接文件   /usr/lib64/httpd/modules

主程序:

/usr/sbin/httpd: prefork        /usr/sbin/httpd.event: event       

/usr/sbin/httpd.worker: worker

日志文件目录:

/var/log/httpd

access_log: 访问日志

error_log: 错误日志

站点文档根目录:  /var/www/html/p_w_picpaths/a.jpg

http配置文件简要说明:

Listen指令
Listen指令设置服务器监听的IP以及端口号,默认监听服务器本机所有的IP地址的80端口。语法格式为Listen [IP地址:]端口 [协议],其中IP地址与协议为可选项,默认监听所有IP,使用TCP协议。一个配置文件中可以多次使用Listen指令来开启多个端口。

LoadModule指令
Apache HTTP Server的特色之一就是她的功能多数是以模块方式加载的,但如果希望Apache动态加载模块,需要在编译Apache时通过--enable-so将mod_so以静态方式编译到Apache核心模块中,LoadModule指令的作用就是加载模块。语法格式为LoadModule 模块 模块文件名称,模块文件一般位于ServerRoot指定目录下的modules目录中。

ServerName指令
ServerName指令设置服务器本机的主机名称以及端口,对于URL地址的重定向很重要该指令设置Web服务对客户端开放可见的文档根目录,也就是客户端访问网站的根路径,默为/usr/local/apache2/htdocs

路径别名

站点根目录:/www/html


HTTP搭建虚拟服务器:

configure脚本用来检查系统环境、查找依赖文件、设置安装路径等操作,configure拥有很多参数,读者可以通过./configure --help查看该脚本支持的所有参数。
下面是configure常用参数说明:
参数 描述
--prefix 指定Apache httpd程序的安装主目录
--enable-so 开启模块化功能,支持DSO(动态共享对象)
--enable-ssl 支持SSL加密
--enable-rewrite 支持地址重写
--with-mpm 设置Apache httpd工作模式
--with-suexec-bin 支持SUID、SGID
--with-apr 指定apr程序绝对路径

开始搭建虚拟主机

    虚拟主机是在一台服务器上同时运行多个网站业务,Apache HTTP Server支持基于域名以及基于IP虚拟主机类型。在Apache配置文件中虚拟主机指令需要使用VirtualHost容器封装。基于IP的虚拟主机可以根据不同的IP地址以及端口号定位不同的网站请求,但基于IP的虚拟主机需要独立的IP地址定位连接的网站,而目前IP地址是互联网的稀缺资源,所以很多时候我们更喜欢基于域名的虚拟主机,服务器可以根据客户端访问HTTP的头部信息来实现网站的分离解析,客户端可以使用不同的域名访问位于同一IP地址的服务器资源。
    当客户端请求到达后,服务器会根据<VirtualHost IP地址:[端口号]>参数匹配IP地址与端口号,IP地址可以使用*匹配服务器本地所有IP地址。接下来我们通过一个案例说明基于域名虚拟主机的实现方式,首先我们需要将主配置文件中Include conf/extra/httpd-vhosts.conf这样功能开启,默认该行为注释行,去除#符号即可。Include指令会将httpd-vhosts.conf文件视作为配置文件的一部分。下面我们仅列出该配置文件中需要修改的部分

    所以说虚拟主机有三种不同的访问路径,分别是基于端口、ip、主机名。

    在使用虚拟主机之前要取消主服务器。即注释掉主服务器的站点根路径指定:DocumentRoot。

定义虚拟主机:启用 NameVirtualHost  IP:端口 格式如下

 

<VirtualHost IP:PORT>

ServerName  虚拟主机名

DocumentRoot  虚拟主机根路径

ServerAlias  

ErrorLog  错误日志

CustomLog 访问记录

</VirtualHost>


之后使用语法错误检查:service httpd configtest 没有语法错误就在/var/www/目录下建立虚拟主机的根目录,以及在/var/log/htppd下建立错误日志。

完成后启动服务

#service httpd restart

https协议

https的ssl模块。安装使用 # yum install mod_ssl

https协议基于443端口

ssl协议是基于ip地址创建的,因此每个ip地址只能创建一个ssl会话。ssl协议需完成的工作如下:

交换协议版本号,选择双方都支持的加密方式,客户端对服务器端实现身份验证,最后是密钥交换。

客户端验证服务器证书:证书是否在有效期,ca的可信度,证书完整性以及持有者的身份。

https的配置

1、安装ssl协议模块: # yum install mod_ssl

2、为服务器端生成私钥以及为期提供证书:

wKioL1PoWt6DZxWYAAAgjC4UGdg927.png

wKiom1PoWg-Q2nKmAAAY6KxN_1I327.pngwKioL1PoW2Xy9KRxAAAdcx4nzY0780.png

wKiom1PoWmOCPthpAAAgjC4UGdg702.png

自建CA参考SSL协议与CA服务器的自建,把/etc/pki/CA/private中的cacert。pem导出修改后缀为crt。然后安装

3、配置使用https的虚拟主机

wKiom1PoYK-gn3mvAAAq5UxURhw657.png

wKioL1PoYcjTeRHQAAAtO9hiK_E208.png


4、重新加载配置以及测试

wKiom1PoYgqQKseuAAFgUgl2z3k162.png

新版本的httpd的编译安装

准备开发环境:

yum groupinstall -y "Server Platform Development"

yum groupinstall -y "Development tools"

yum install -y pcre-devel-7.8-6.el6.x86_64

编译安装httpd2.4所依赖的软件包


1.安装apr-1.5.0.tar.bz2

# tar xf ^Cr-1.5.0.tar.bz2

# cd apr-1.5.0

# ./configure --prefix=/usr/local/apr

# make && make install


2.安装apr-util-1.5.3

ftp://ftp.mirrorservice.org/sites/ftp.apache.org/apr/apr-util-1.5.3.tar.bz2

# tar xf apr-util-1.5.3.tar.bz2

# cd apr-util-1.5.3

# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/

# make && make install


.以上两步编译完成,现正式开始编译httpd-2.4.9.tar.bz2

http://mirrors.cnnic.cn/apache//httpd/httpd-2.4.9.tar.bz2

# tar xf httpd-2.4.9.tar.bz2

# cd httpd-2.4.9

# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-modules=most --enable-mpms-shared=all --with-mpm=event

--prefix=/usr/local/apache 安装路径

--sysconfdir=/etc/httpd24 配置文件路径

--enable-so 允许运行时加载DSO模块

--enable-ssl 如果不加载将无法使用使用https

--enable-cgi 允许使用cgi脚本

--enable-rewrite 支持URL重写机制

--with-zlib 支持网络通用压缩库

--with-pcre 支持pcre

--with-apr=/usr/local/apr 指定apr的安装路径

--with-apr-util=/usr/local/apr-util/ 指定apr-util的安装路径

--enable-modules=most 启用大多数常用的模块

--enable-mpms-shared=all 启用MPM所有支持的模式

--with-mpm=event 默认使用enevt模式

查看安装后所生成的文件 extra目录是2.4版新增目录

# ls

extra  httpd.conf  magic  mime.types  original

# cd extra/

# ls

httpd-autoindex.conf  httpd-info.conf      httpd-mpm.conf                httpd-userdir.conf

httpd-dav.conf        httpd-languages.conf  httpd-multilang-errordoc.conf  httpd-vhosts.conf

httpd-default.conf    httpd-manual.conf    httpd-ssl.conf                proxy-html.conf

导出头文件;以目录链接的形式来实现

# ln -sv /usr/local/apache/include/ /usr/include/httpd

`/usr/include/httpd' -> `/usr/local/apache/include/'


输出二进制程序

# vim /etc/profile.d/httpd24.sh

export PATH=/usr/local/apache/bin:$PATH

#. /etc/profile.d/httpd24.sh

# httpd -V    显示httpd版本信息


导出man文件

# vim /etc/man.config

MANPATH /usr/local/apache/man

# man -M /usr/local/apache/man httpd


修改服务脚本;

修改服务前先把httpd关闭;apachect1 stop

vim /etc/init.d/httpd24.sh