Linux自学笔记――httpd基本应用(3)

时间:2021-05-12 19:17:13


 

 

httpd2.4

新特性:

1)    MPM支持运行为DSO机制;以模块形式按需加载;

2)    event MPM生产环境可用;

3)    异步读写机制;

4)    支持每模块及每目录的单独日志级别定义;

5)    每个请求相关的专用配置;

6)    增强版的表达式分析式;

7)    毫秒级持久连接时长定义;

8)    基于FQDN的虚拟主机也不再需要NameVirutalHost指令;

9)    新指令,AllowOverrideList;

10)支持用户自定义变量;

11)更低的内存消耗;

新模块:

1)    mod_proxy_fcgi

2)    mod_proxy_scgi

3)    mod_remoteip

安装httpd2.4

依赖于apr-1.4+,apr-util-1.4+,[apr-iconv]

  apr:apache portableruntime

centos 6

  默认:apr-1.3.9,apr-util-1.3.9;

  安装httpd2.4必须得手动编译安装;

 

开发环境包组:DevelopmentTools,Server Platform Development

  开发程序包:pcre-devel

 

编译安装步骤:

1)    apr-1.4+

#./configure�Cprefix=/usr/local/apr

#make&& make install

2)    apr �Cutil-1.4+

#./configure�Cprefix=/usr/local/apr-util --with-apr=/usr/local/apr

#make&& make install

3)    httpd-2.4

#./configure�Cprefix=/usr/local/apache24  -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=prefork

#make&& make install

 

自带的服务控制脚本:apachectl

     

示例:在centos6上编译安装httpd2.4;

1.     准备开发环境包组:Development Tools,Server PlatformDevelopment;

Linux自学笔记――httpd基本应用(3)

2.     准备开发程序包:pcre-devel;

Linux自学笔记――httpd基本应用(3)

3.     准备apr-1.5.0,apr-util-1.5.3;

Linux自学笔记――httpd基本应用(3)

4.     编译安装步骤;

1)    编译安装apr-1.5.0;

a.     安装前准备,解压缩,进入目录;

Linux自学笔记――httpd基本应用(3)

b.    ./configue命令;

Linux自学笔记――httpd基本应用(3)

c.     make && make install

Linux自学笔记――httpd基本应用(3)

2)    编译安装apr-util-1.5.3;

a.     安装编译前准备,解压缩,并进入文件夹;

Linux自学笔记――httpd基本应用(3)

b.    ./configue命令;

Linux自学笔记――httpd基本应用(3)

c.     make && make install

Linux自学笔记――httpd基本应用(3)

3)    安装编译httpd-2.4

a.     安装编译前准备,准备httpd-2.4,解压缩,进入文件夹;

Linux自学笔记――httpd基本应用(3)

b.    ./configue命令;

Linux自学笔记――httpd基本应用(3)

c.     make && make install

Linux自学笔记――httpd基本应用(3)

5.     内置工具apachectl开启服务,测试80端口是否打开;

Linux自学笔记――httpd基本应用(3)

6.     配置文件在/etc/httpd24;

Linux自学笔记――httpd基本应用(3)

 

Centos7: httpd-2.4

配置文件:

      /etc/httpd/conf/httpd.conf

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

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

配置应用:

1.     切换使用的MPM

编辑配置文件/etc/httpd/conf.modules.d/00-mpm.conf,启动要启用的MPM相关的LoadModule指令即可;

Linux自学笔记――httpd基本应用(3)

Note:启用即去掉#即可,

2.     基于IP的访问控制;

允许所有主机访问:Require all granted

拒绝所有主机访问:Require all deny

 

控制特定的ip访问:

Require ip IPADDR:授权指定来源的ip访问;

Require not ip IPADDR:拒绝;

 

控制特定的主机访问:

Require host HOSTNAME:授权指定来源的主机访问;

Require not host HOSTNAME:拒绝

      HOSTNAME:

            FQDN:特定主机;

            Domain.tld:指定域名下的所有主机

示例:centos7主机:192.168.19.130;测试机192.168.19.134

<Requireall>

      Require all granted

      Require not ip 192.168.19.128

<Requireall>

1)    开启服务;

Linux自学笔记――httpd基本应用(3)

2)    测试机访问这台centos7 web服务器;

Linux自学笔记――httpd基本应用(3)

Note:测试时需要关闭centos7的selinux和iptables;

3)    编辑配置文件,基于IP访问控制;

Linux自学笔记――httpd基本应用(3)

4)    再次用测试机访问测试;

Linux自学笔记――httpd基本应用(3)

Note:此次测试需要将/etc/httpd/conf.d目录下的welcome.conf重命名;否则测试机访问将依旧能访问;

5)    将配置文件的ip限制取消,测试机将再次可以访问;

3.     虚拟主机

基于FQDN的虚拟主机也不再需要NameVirutalHost指令:

1)    注释DocumentRoot指令;

Linux自学笔记――httpd基本应用(3)

2)    编辑虚拟主机配置文件,

Linux自学笔记――httpd基本应用(3)

3)    重载服务,并编辑创建相关目录文件;

Linux自学笔记――httpd基本应用(3)

4)    测试;

Linux自学笔记――httpd基本应用(3)

4.     ssl

5.     KeepAliveTimeout  #ms

毫秒级持久连接时长定义;

练习题:

1、建立httpd服务,要求:

(1)提供两个基于名称的虚拟主机:

www1.stuX.com,页面文件目录为/web/vhosts/www1;错误日志为/var/log/httpd/www1/error_log,访问日志为/var/log/httpd/www1/access_log;

www2.stuX.com,页面文件目录为/web/vhosts/www2;错误日志为/var/log/httpd/www2/error_log,访问日志为/var/log/httpd/www2/access_log;

(2)通过www1.stuX.com/server-status输出其状态信息,且要求只允许提供账号的用户访问;

(3)www1不允许192.168.19.134ip主机访问;

 

演示:

1.     修改配置文件;

Linux自学笔记――httpd基本应用(3)

2.     创建相关目录及文件;

1)    创建用户组访问控制需要的密码文件;

Linux自学笔记――httpd基本应用(3)

2)    创建日志目录;

Linux自学笔记――httpd基本应用(3)

3)    创建DocumentRoot目录;

Linux自学笔记――httpd基本应用(3)

4)    创建index.html文件;

Linux自学笔记――httpd基本应用(3)

3.     在测试机上编辑/etc/hosts文件;

Linux自学笔记――httpd基本应用(3)

4.     重载服务及测试;

1)    在192.168.19.134主机上测试,分别访问www1.stuX.com,www2.stuX.com;

访问www1.stuX.com:

Linux自学笔记――httpd基本应用(3)

访问www2.stuX.com:

Linux自学笔记――httpd基本应用(3)

2)    在192.168.19.128主机上测试,访问www1.stuX.com;

Linux自学笔记――httpd基本应用(3)

结果可以访问,可以看出,配置的基于ip限制访问是有效的;

 

3)    在192.168.19.134主机上测试,访问www1.stuX.com/server-status,www2.stuX.com/server-status;

访问www1.stuX.com/server-status:输入jerry的账号时,不在组内,不能访问;

Linux自学笔记――httpd基本应用(3)

 

访问www1.stuX.com/server-status:输入tom的账号时,能查看;

Linux自学笔记――httpd基本应用(3)

 

访问www2.stuX.com/server-status:在配置文件中没有设置从此处输出配置信息;

          Linux自学笔记――httpd基本应用(3)

 

2、为上面的第2个虚拟主机提供https服务,使得用户可以通过https安全的访问此web站点;

(1)要求使用证书认证,证书中要求使用国家(CN),州(Jiangsu),城市(Suzhou),组织为(Amaxchina);

(2)设置部门为Ops,主机名为www2.stuX.com;

 

演示:在上面的http服务器上进行操作,

1.     建私有CA;

Linux自学笔记――httpd基本应用(3)

2.     httpd服务器申请证书;

Linux自学笔记――httpd基本应用(3)

3.     CA签署证书;

Linux自学笔记――httpd基本应用(3)

4.     配置httpd支持使用ssl;

1)    安装ssl模块;

Linux自学笔记――httpd基本应用(3)

2)    检查是否安装完成;

Linux自学笔记――httpd基本应用(3)

3)    修改ssl配置文件;/etc/httpd/conf.d/ssl.conf;

Linux自学笔记――httpd基本应用(3)

5.     编辑/etc/hosts文件;

 Linux自学笔记――httpd基本应用(3)

6.     重启,测试;

1)    查看监听端口;

Linux自学笔记――httpd基本应用(3)

可以看出443端口和80端口都已开启;

2)    访问测试;

Linux自学笔记――httpd基本应用(3)

访问http无问题,访问https被告知需要证书;

利用curl  --cacert  /path/to/cafile.pem URL 测试;