概述

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,在配置虚拟主机时,此项需注释。

⑤站点访问控制常见机制

    

    Options Indexes FollowSymLink #允许跟踪符号链接文件所指向的源文件,Options Indexes FollowSymLinks :当没有index.html 主页时会显示其目录下的所有站点文件,在线上使用这个选项很危险,一般使用Options -Indexes FollowSynLinks 

    AllowOverride None 

    Order allow,deny 

    Allow from all 

    

⑥定义站点的主页

    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允许所有的主机

    

        SetHandler server-status 

        Order deny,allow  

        Allow from all 

    

⑩配置虚拟主机,主要分类为基于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测试,即可