概述
http协议及httpd的一些特性,是学习web服务需要掌握的一些基础知识,接下来让我们进一步了解httpd相关功能的配置,本文讲解的web服务之httpd新特性及其虚拟主机,访问控制及https等功能的配置。
httpd之基本特性
实验环境介绍
开始之前,先介绍一下httpd在CentOS6.8版本及文件:
版本:httpd-2.2.27(centos7默认为2.4以上的版本)
主配置文件:
/etc/httpd/conf/httpd.conf
其他配置文件如虚拟主机及其ssl、虚拟主机、欢迎页等
/etc/httpd/conf.d/*.conf
服务脚本配置文件:
/etc/sysconfig/httpd
服务脚本:
/etc/init.d/httpd
日志文件:
/var/log/httpd/access_log
/var/log/httpd/error_log
站点根目录:
/var/www/html
httpd之MPM多道处理模块:
prefork:一个进程相应一个请求
worker:一个进程生成多个线程,一个线程相应一个请求
event:一个进程生成多个线程,一个线程相应多个请求,事件驱动,主要的目的是在于实现单线程相应多个请求
httpd之主配置文件详解:
①监听套接字
Listen [ip:]port
此指令可以出现多次,用于指定监听的多个不同的套接字
Listen 80
Listen 10.1.294.95:8080
②Keep Alive持久连接
KeepAlive On|Off
KeepAliveTimeout 15
MaxKeepAliveRequests 100
③MPM
httpd-2.2不支持同时编译多个MPM模块,所以只能编译选定使用哪个,centos6的rpm包为此专门提供了三个应用程序文件,httpd prefork,worker,event,分别用于实现不同的MPM机制的支持,修改/etc/sysconfig/httpd即可。
④定义中心配置文件
DocumentRoot "/var/www/html":其为站点的根目录的URL,在配置虚拟主机时,此项需注释。
⑤站点访问控制常见机制
<Directory "">
Options Indexes FollowSymLink #允许跟踪符号链接文件所指向的源文件,Options Indexes FollowSymLinks :当没有index.html 主页时会显示其目录下的所有站点文件,在线上使用这个选项很危险,一般使用Options -Indexes FollowSynLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
⑥定义站点的主页
DirectoryIndex index.html index.html.var
⑦定义路径别名
Alias /alias "/path/to/somewhere"
意味着访问http://server_ip/alias/时,其页面文件来自于/path/to/somefile/的路径
⑧日志设置
日志类别:访问日志和错误日志
错误日志:ErrorLog logs/error_log
访问日志:CustomLog logs/access_log combine
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
⑨status页面
开启:LoadModule status_modules/mod_status.so
开启:server-status允许所有的主机
<Location /server-status>
SetHandler server-status
Order deny,allow
Allow from all
</Location>
⑩配置虚拟主机,主要分类为基于ip,基于域名,基于端口,或则ip和端口混用,本实验之前博客有过详解写介绍不在加以说明。user/group,指定以哪个用户身份来运行httpd进程,User daemon Group daemon
httpd之ssl
实验环境介绍
实验介绍:本实验主要是给web服务加上安全套接字协议,应用web服务之httpd实现 https
https配置
案例要求:
证书颁发服务器:10.1.249.94
web服务器:10.1.249.95
要求web服务器的www.a.com站点使用https
配置httpd工作于https
要配置https首先要安装mod_ssl模块,请自行安装
为服证书颁发服务端生成私钥,并为其提供证书
1.生成私钥、
(umask 077;openssl genrsa -out private/cakey.pem 2048)
2.自签
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650
3.创建所需的文件
touch serial crlnumber index.txt
4.在web服务器上生成密码
mkdir /etc/httpd/ssl
cd /etc/httpd/ssl
(umask 077;openssl genrsa -out httpd.key 2048)
5.生成证书申请请求
opensll req -new -key httpd.key -out httpd.csr
6.将申请请求发给CA,CA签署证书
openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/newcerts/httpd.crt -days 365
7.将已签署的证书申请发给web服务
scp /etc/pki/CA/newcerts/httpd.crt [email protected]/etc/httpd/ssl/
8.在浏览器导入证书输入https://www.a.com测试,即可