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–prefix=/usr/local/apr
#make&& make install
2)apr –util-1.4+
#./configure–prefix=/usr/local/apr-util--with-apr=/usr/local/apr
#make&& make install
3)httpd-2.4
#./configure–prefix=/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;
650) this.width=650;" title="1.png" src="https://s2.51cto.com/oss/201711/09/6ba3eb07ed2d391c2573c1881044cd47.png-wh_500x0-wm_3-wmp_4-s_4165609291.png" alt="6ba3eb07ed2d391c2573c1881044cd47.png-wh_" />
2.准备开发程序包:pcre-devel;
650) this.width=650;" title="2.png" src="https://s5.51cto.com/oss/201711/09/94b0736f847189511670d0fc67373ac2.png-wh_500x0-wm_3-wmp_4-s_3104657097.png" alt="94b0736f847189511670d0fc67373ac2.png-wh_" />
3.准备apr-1.5.0,apr-util-1.5.3;
650) this.width=650;" title="3.png" src="https://s2.51cto.com/oss/201711/09/72235b53237d93f3834edf5f6227e945.png-wh_500x0-wm_3-wmp_4-s_1364856641.png" alt="72235b53237d93f3834edf5f6227e945.png-wh_" />
4.编译安装步骤;
1)编译安装apr-1.5.0;
a.安装前准备,解压缩,进入目录;
650) this.width=650;" title="4.png" src="https://s3.51cto.com/oss/201711/09/10e499de877749af64349cbdaa7b216d.png-wh_500x0-wm_3-wmp_4-s_635458089.png" alt="10e499de877749af64349cbdaa7b216d.png-wh_" />
b../configue命令;
650) this.width=650;" title="5.png" src="https://s5.51cto.com/oss/201711/09/5322ca468d7b7f3da330b1afe56b6d64.png-wh_500x0-wm_3-wmp_4-s_702594560.png" alt="5322ca468d7b7f3da330b1afe56b6d64.png-wh_" />
c.make && make install
650) this.width=650;" title="6.png" src="https://s5.51cto.com/oss/201711/09/1193a560e398a4f41ea327c0e26089ab.png-wh_500x0-wm_3-wmp_4-s_2507733271.png" alt="1193a560e398a4f41ea327c0e26089ab.png-wh_" />
2)编译安装apr-util-1.5.3;
a.安装编译前准备,解压缩,并进入文件夹;
650) this.width=650;" title="7.png" src="https://s4.51cto.com/oss/201711/09/3955a19e199881ff9d5d26bea6f49a36.png-wh_500x0-wm_3-wmp_4-s_3134945588.png" alt="3955a19e199881ff9d5d26bea6f49a36.png-wh_" />
b../configue命令;
650) this.width=650;" title="8.png" src="https://s1.51cto.com/oss/201711/09/d6a438ee2cf71439226bfe709ac496d5.png-wh_500x0-wm_3-wmp_4-s_3304168725.png" alt="d6a438ee2cf71439226bfe709ac496d5.png-wh_" />
c.make && make install
650) this.width=650;" title="9.png" src="https://s1.51cto.com/oss/201711/09/8f555de2335d057177c8f31f2ea91d2f.png-wh_500x0-wm_3-wmp_4-s_244705836.png" alt="8f555de2335d057177c8f31f2ea91d2f.png-wh_" />
3)安装编译httpd-2.4
a.安装编译前准备,准备httpd-2.4,解压缩,进入文件夹;
650) this.width=650;" title="10.png" src="https://s4.51cto.com/oss/201711/09/9ebfb6160b84b2b733247c814a49940a.png-wh_500x0-wm_3-wmp_4-s_4192107893.png" alt="9ebfb6160b84b2b733247c814a49940a.png-wh_" />
b../configue命令;
650) this.width=650;" title="11.png" src="https://s5.51cto.com/oss/201711/09/a4b9e16286753f7b3b44667acb521a5e.png-wh_500x0-wm_3-wmp_4-s_1624115646.png" alt="a4b9e16286753f7b3b44667acb521a5e.png-wh_" />
c.make && make install
650) this.width=650;" title="12.png" src="https://s2.51cto.com/oss/201711/09/c40c29ed49728b65937eab7f996c732b.png-wh_500x0-wm_3-wmp_4-s_2217707825.png" alt="c40c29ed49728b65937eab7f996c732b.png-wh_" />
5.内置工具apachectl开启服务,测试80端口是否打开;
650) this.width=650;" title="13.png" src="https://s5.51cto.com/oss/201711/09/a0eef3e2e77ff334e12c440d496b1e2b.png-wh_500x0-wm_3-wmp_4-s_3277034020.png" alt="a0eef3e2e77ff334e12c440d496b1e2b.png-wh_" />
6.配置文件在/etc/httpd24;
650) this.width=650;" title="14.png" src="https://s1.51cto.com/oss/201711/09/7d0fcdd58745275995d4d96797681f1b.png-wh_500x0-wm_3-wmp_4-s_850047188.png" alt="7d0fcdd58745275995d4d96797681f1b.png-wh_" />
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指令即可;
650) this.width=650;" title="15.png" src="https://s1.51cto.com/oss/201711/09/4f4afd5c460a740751e62cbf55c87bf7.png-wh_500x0-wm_3-wmp_4-s_3557139186.png" alt="4f4afd5c460a740751e62cbf55c87bf7.png-wh_" />
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)开启服务;
650) this.width=650;" title="16.png" src="https://s2.51cto.com/oss/201711/09/df2c56f6f4fd4cdec19e0ee405b2b762.png-wh_500x0-wm_3-wmp_4-s_1483592967.png" alt="df2c56f6f4fd4cdec19e0ee405b2b762.png-wh_" />
2)测试机访问这台centos7 web服务器;
650) this.width=650;" title="17.png" src="https://s2.51cto.com/oss/201711/09/6f2ee4353d767b368f9d938608807a5b.png-wh_500x0-wm_3-wmp_4-s_1165144210.png" alt="6f2ee4353d767b368f9d938608807a5b.png-wh_" />
Note:测试时需要关闭centos7的selinux和iptables;
3)编辑配置文件,基于IP访问控制;
650) this.width=650;" title="18.png" src="https://s5.51cto.com/oss/201711/09/6d22d331fc96eecd23db3bb3cbeabd18.png-wh_500x0-wm_3-wmp_4-s_2528841633.png" alt="6d22d331fc96eecd23db3bb3cbeabd18.png-wh_" />
4)再次用测试机访问测试;
650) this.width=650;" title="19.png" src="https://s4.51cto.com/oss/201711/09/2ad9883e61d5f0e701c0fecca886e6a5.png-wh_500x0-wm_3-wmp_4-s_123002574.png" alt="2ad9883e61d5f0e701c0fecca886e6a5.png-wh_" />
Note:此次测试需要将/etc/httpd/conf.d目录下的welcome.conf重命名;否则测试机访问将依旧能访问;
5)将配置文件的ip限制取消,测试机将再次可以访问;
3.虚拟主机
基于FQDN的虚拟主机也不再需要NameVirutalHost指令:
1)注释DocumentRoot指令;
650) this.width=650;" title="20.png" src="https://s4.51cto.com/oss/201711/09/82ce5567747930db4ecc344235165ae7.png-wh_500x0-wm_3-wmp_4-s_214361920.png" alt="82ce5567747930db4ecc344235165ae7.png-wh_" />
2)编辑虚拟主机配置文件,
650) this.width=650;" title="21.png" src="https://s3.51cto.com/oss/201711/09/52609377b48c8b6e946b5fba7f59ccb8.png-wh_500x0-wm_3-wmp_4-s_3774486317.png" alt="52609377b48c8b6e946b5fba7f59ccb8.png-wh_" />
3)重载服务,并编辑创建相关目录文件;
650) this.width=650;" title="22.png" src="https://s1.51cto.com/oss/201711/09/ea9799bc7718c941df7bf4e480a05fd0.png-wh_500x0-wm_3-wmp_4-s_4155001138.png" alt="ea9799bc7718c941df7bf4e480a05fd0.png-wh_" />
4)测试;
650) this.width=650;" title="23.png" src="https://s4.51cto.com/oss/201711/09/3b2882bcf6fab509537abf0c1092de41.png-wh_500x0-wm_3-wmp_4-s_3199144039.png" alt="3b2882bcf6fab509537abf0c1092de41.png-wh_" />
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.修改配置文件;
650) this.width=650;" title="24.png" src="https://s2.51cto.com/oss/201711/09/f1732fff599a8c8a9631889161287cd2.png-wh_500x0-wm_3-wmp_4-s_2189310523.png" alt="f1732fff599a8c8a9631889161287cd2.png-wh_" />
2.创建相关目录及文件;
1)创建用户组访问控制需要的密码文件;
650) this.width=650;" title="25.png" src="https://s2.51cto.com/oss/201711/09/e23bdd3303c52c8807e8b2ca25cb6606.png-wh_500x0-wm_3-wmp_4-s_3681982897.png" alt="e23bdd3303c52c8807e8b2ca25cb6606.png-wh_" />
2)创建日志目录;
650) this.width=650;" title="26.png" src="https://s3.51cto.com/oss/201711/09/3288a4e01df88a78c8f8b3ffd2975455.png-wh_500x0-wm_3-wmp_4-s_3952788917.png" alt="3288a4e01df88a78c8f8b3ffd2975455.png-wh_" />
3)创建DocumentRoot目录;
650) this.width=650;" title="27.png" src="https://s2.51cto.com/oss/201711/09/ad27f7dfd918b23a11d59745aa466d4b.png-wh_500x0-wm_3-wmp_4-s_3910682232.png" alt="ad27f7dfd918b23a11d59745aa466d4b.png-wh_" />
4)创建index.html文件;
650) this.width=650;" title="28.png" src="https://s4.51cto.com/oss/201711/09/c25051dcab19b50bafd9c97d3c294fb0.png-wh_500x0-wm_3-wmp_4-s_2157760751.png" alt="c25051dcab19b50bafd9c97d3c294fb0.png-wh_" />
3.在测试机上编辑/etc/hosts文件;
650) this.width=650;" title="29.png" src="https://s1.51cto.com/oss/201711/09/5618d79c62a381231187229fb0d36da9.png-wh_500x0-wm_3-wmp_4-s_80594727.png" alt="5618d79c62a381231187229fb0d36da9.png-wh_" />
4.重载服务及测试;
1)在192.168.19.134主机上测试,分别访问www1.stuX.com,www2.stuX.com;
访问www1.stuX.com:
650) this.width=650;" title="30.png" src="https://s4.51cto.com/oss/201711/09/880086218f690fd29f682d08816bcaf2.png-wh_500x0-wm_3-wmp_4-s_2030557153.png" alt="880086218f690fd29f682d08816bcaf2.png-wh_" />
访问www2.stuX.com:
650) this.width=650;" title="31.png" src="https://s3.51cto.com/oss/201711/09/f1cf1fa89a29114536ba446476675065.png-wh_500x0-wm_3-wmp_4-s_2718662655.png" alt="f1cf1fa89a29114536ba446476675065.png-wh_" />
2)在192.168.19.128主机上测试,访问www1.stuX.com;
650) this.width=650;" title="32.png" src="https://s5.51cto.com/oss/201711/09/a4b72e7e746bf53f60b4f2beede367b7.png-wh_500x0-wm_3-wmp_4-s_3529752719.png" alt="a4b72e7e746bf53f60b4f2beede367b7.png-wh_" />
结果可以访问,可以看出,配置的基于ip限制访问是有效的;
3)在192.168.19.134主机上测试,访问www1.stuX.com/server-status,www2.stuX.com/server-status;
访问www1.stuX.com/server-status:输入jerry的账号时,不在组内,不能访问;
650) this.width=650;" title="33.png" src="https://s4.51cto.com/oss/201711/09/65d2d377013191f82a7a620e8f952c79.png-wh_500x0-wm_3-wmp_4-s_1947260889.png" alt="65d2d377013191f82a7a620e8f952c79.png-wh_" />
访问www1.stuX.com/server-status:输入tom的账号时,能查看;
650) this.width=650;" title="34.png" src="https://s1.51cto.com/oss/201711/09/bbeb692955cfc9e44d136ba89e6fd023.png-wh_500x0-wm_3-wmp_4-s_1059606775.png" alt="bbeb692955cfc9e44d136ba89e6fd023.png-wh_" />
访问www2.stuX.com/server-status:在配置文件中没有设置从此处输出配置信息;
650) this.width=650;" title="35.png" src="https://s3.51cto.com/oss/201711/09/6300ac1876edac73eba6fc9ffcaca785.png-wh_500x0-wm_3-wmp_4-s_410005036.png" alt="6300ac1876edac73eba6fc9ffcaca785.png-wh_" />
2、为上面的第2个虚拟主机提供https服务,使得用户可以通过https安全的访问此web站点;
(1)要求使用证书认证,证书中要求使用国家(CN),州(Jiangsu),城市(Suzhou),组织为(Amaxchina);
(2)设置部门为Ops,主机名为www2.stuX.com;
演示:在上面的http服务器上进行操作,
1.建私有CA;
650) this.width=650;" title="36.png" src="https://s2.51cto.com/oss/201711/09/203aacf8fdb59576f7121733b04f0700.png-wh_500x0-wm_3-wmp_4-s_689381011.png" alt="203aacf8fdb59576f7121733b04f0700.png-wh_" />
2.httpd服务器申请证书;
650) this.width=650;" title="37.png" src="https://s3.51cto.com/oss/201711/09/927fb3d838ad3d028ca2a15c9a4f0df8.png-wh_500x0-wm_3-wmp_4-s_93238441.png" alt="927fb3d838ad3d028ca2a15c9a4f0df8.png-wh_" />
3.CA签署证书;
650) this.width=650;" title="38.png" src="https://s4.51cto.com/oss/201711/09/d752a1765947487cf6a98e8b702631b9.png-wh_500x0-wm_3-wmp_4-s_2698706049.png" alt="d752a1765947487cf6a98e8b702631b9.png-wh_" />
4.配置httpd支持使用ssl;
1)安装ssl模块;
650) this.width=650;" title="39.png" src="https://s4.51cto.com/oss/201711/09/7bb38e5b3e660e8179e4cdbddb8102c8.png-wh_500x0-wm_3-wmp_4-s_2732183334.png" alt="7bb38e5b3e660e8179e4cdbddb8102c8.png-wh_" />
2)检查是否安装完成;
650) this.width=650;" title="40.png" src="https://s5.51cto.com/oss/201711/09/59e650cd05ade9e2f7083b459e82acff.png-wh_500x0-wm_3-wmp_4-s_2094828809.png" alt="59e650cd05ade9e2f7083b459e82acff.png-wh_" />
3)修改ssl配置文件;/etc/httpd/conf.d/ssl.conf;
650) this.width=650;" title="41.png" src="https://s3.51cto.com/oss/201711/09/b944213527f8f8c182db92e4cd3b6c47.png-wh_500x0-wm_3-wmp_4-s_2768527823.png" alt="b944213527f8f8c182db92e4cd3b6c47.png-wh_" />
5.编辑/etc/hosts文件;
650) this.width=650;" title="42.png" src="https://s5.51cto.com/oss/201711/09/fb955dafb4459140f108cee46b366592.png-wh_500x0-wm_3-wmp_4-s_4263308425.png" alt="fb955dafb4459140f108cee46b366592.png-wh_" />
6.重启,测试;
1)查看监听端口;
650) this.width=650;" title="43.png" src="https://s5.51cto.com/oss/201711/09/15b13766ceca005ebbf310d40d4515e8.png-wh_500x0-wm_3-wmp_4-s_832691595.png" alt="15b13766ceca005ebbf310d40d4515e8.png-wh_" />
可以看出443端口和80端口都已开启;
2)访问测试;
650) this.width=650;" title="44.png" src="https://s1.51cto.com/oss/201711/09/f4e4febcaeddff10deec8e364ac8ebc1.png-wh_500x0-wm_3-wmp_4-s_893908195.png" alt="f4e4febcaeddff10deec8e364ac8ebc1.png-wh_" />
访问http无问题,访问https被告知需要证书;
利用curl --cacert /path/to/cafile.pem URL 测试;
Linux自学笔记——httpd基本应用(3)
原文地址:http://claude666.blog.51cto.com/13186682/1980320