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

简介:

 

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;

6ba3eb07ed2d391c2573c1881044cd47.png-wh_

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

94b0736f847189511670d0fc67373ac2.png-wh_

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

72235b53237d93f3834edf5f6227e945.png-wh_

4.     编译安装步骤;

1)    编译安装apr-1.5.0;

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

10e499de877749af64349cbdaa7b216d.png-wh_

b.    ./configue命令;

5322ca468d7b7f3da330b1afe56b6d64.png-wh_

c.     make && make install

1193a560e398a4f41ea327c0e26089ab.png-wh_

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

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

3955a19e199881ff9d5d26bea6f49a36.png-wh_

b.    ./configue命令;

d6a438ee2cf71439226bfe709ac496d5.png-wh_

c.     make && make install

8f555de2335d057177c8f31f2ea91d2f.png-wh_

3)    安装编译httpd-2.4

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

9ebfb6160b84b2b733247c814a49940a.png-wh_

b.    ./configue命令;

a4b9e16286753f7b3b44667acb521a5e.png-wh_

c.     make && make install

c40c29ed49728b65937eab7f996c732b.png-wh_

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

a0eef3e2e77ff334e12c440d496b1e2b.png-wh_

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

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指令即可;

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)    开启服务;

df2c56f6f4fd4cdec19e0ee405b2b762.png-wh_

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

6f2ee4353d767b368f9d938608807a5b.png-wh_

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

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

6d22d331fc96eecd23db3bb3cbeabd18.png-wh_

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

2ad9883e61d5f0e701c0fecca886e6a5.png-wh_

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

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

3.     虚拟主机

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

1)    注释DocumentRoot指令;

82ce5567747930db4ecc344235165ae7.png-wh_

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

52609377b48c8b6e946b5fba7f59ccb8.png-wh_

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

ea9799bc7718c941df7bf4e480a05fd0.png-wh_

4)    测试;

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.     修改配置文件;

f1732fff599a8c8a9631889161287cd2.png-wh_

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

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

e23bdd3303c52c8807e8b2ca25cb6606.png-wh_

2)    创建日志目录;

3288a4e01df88a78c8f8b3ffd2975455.png-wh_

3)    创建DocumentRoot目录;

ad27f7dfd918b23a11d59745aa466d4b.png-wh_

4)    创建index.html文件;

c25051dcab19b50bafd9c97d3c294fb0.png-wh_

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

5618d79c62a381231187229fb0d36da9.png-wh_

4.     重载服务及测试;

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

访问www1.stuX.com:

880086218f690fd29f682d08816bcaf2.png-wh_

访问www2.stuX.com:

f1cf1fa89a29114536ba446476675065.png-wh_

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

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的账号时,不在组内,不能访问;

65d2d377013191f82a7a620e8f952c79.png-wh_

 

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

bbeb692955cfc9e44d136ba89e6fd023.png-wh_

 

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

          6300ac1876edac73eba6fc9ffcaca785.png-wh_

 

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

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

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

 

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

1.     建私有CA;

203aacf8fdb59576f7121733b04f0700.png-wh_

2.     httpd服务器申请证书;

927fb3d838ad3d028ca2a15c9a4f0df8.png-wh_

3.     CA签署证书;

d752a1765947487cf6a98e8b702631b9.png-wh_

4.     配置httpd支持使用ssl;

1)    安装ssl模块;

7bb38e5b3e660e8179e4cdbddb8102c8.png-wh_

2)    检查是否安装完成;

59e650cd05ade9e2f7083b459e82acff.png-wh_

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

b944213527f8f8c182db92e4cd3b6c47.png-wh_

5.     编辑/etc/hosts文件;

 fb955dafb4459140f108cee46b366592.png-wh_

6.     重启,测试;

1)    查看监听端口;

15b13766ceca005ebbf310d40d4515e8.png-wh_

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

2)    访问测试;

f4e4febcaeddff10deec8e364ac8ebc1.png-wh_

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

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




本文转自 claude_liu 51CTO博客,原文链接:http://blog.51cto.com/claude666/1980320,如需转载请自行联系原作者
相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
6月前
|
安全 应用服务中间件 网络安全
在Linux环境部署Flask应用并启用SSL/TLS安全协议
至此,你的Flask应用应该能够通过安全的HTTPS协议提供服务了。记得定期更新SSL证书,Certbot可以帮你自动更新证书。可以设定cronjob以实现这一点。
387 10
|
6月前
|
Java Linux 网络安全
Linux云端服务器上部署Spring Boot应用的教程。
此流程涉及Linux命令行操作、系统服务管理及网络安全知识,需要管理员权限以进行配置和服务管理。务必在一个测试环境中验证所有步骤,确保一切配置正确无误后,再将应用部署到生产环境中。也可以使用如Ansible、Chef等配置管理工具来自动化部署过程,提升效率和可靠性。
620 13
|
5月前
|
存储 数据采集 监控
ubuntu(linux)系统主要应用于哪些工业场景中?研维三防ubuntu系统的手持工业三防平板电脑在哪些行业中有实际应用
Ubuntu 系统凭借其独特的优势,在众多工业场景中得到了广泛应用,为工业数字化、智能化发展提供了有力支持。而研维三防基于 Ubuntu 定制系统的手持工业三防平板电脑,更是将 Ubuntu 系统的优势与工业级的性能、坚固耐用性完美结合,在电力、物流、制造等多个行业中展现出强大的应用价值,助力企业提高生产效率、优化管理流程、提升产品质量,成为推动工业现代化发展的重要力量。随着技术的不断进步与创新,相信 Ubuntu 系统以及研维三防这类工业级设备将在更多的工业领域中发挥更大的作用,为工业发展带来更多的机遇与变革。
|
8月前
|
运维 监控 中间件
Linux运维笔记 - 如何使用WGCLOUD监控交换机的流量
WGCLOUD是一款开源免费的通用主机监控工具,安装使用都非常简单,它可以监控主机、服务器的cpu、内存、磁盘、流量等数据,也可以监控数据库、中间件、网络设备
|
11月前
|
机器学习/深度学习 安全 Linux
Linux 主要应用领域的归纳
服务器领域 Linux在服务器领域的应用是其最为广泛和成熟的领域之一。由于其开源、稳定、高效和安全的特性,Linux成为许多企业服务器的首选操作系统。 Web服务器:Linux是Web服务器的理想选择,因为它支持Apache、Nginx等流行的Web服务器软件,这些软件在Linux上运行稳定且性能卓越。Linux服务器可以高效地处理大量并发请求,提供快速、可靠的Web服务。 数据库服务器:Linux也广泛用于数据库服务器,如MySQL、PostgreSQL和Oracle等数据库管理系统在Linux上运行良好。Linux的稳定性和安全性使得它成为存储和管理敏感数据的理想平台。 邮件服务器:Lin
601 5
|
缓存 Linux 开发者
Linux内核中的并发控制机制:深入理解与应用####
【10月更文挑战第21天】 本文旨在为读者提供一个全面的指南,探讨Linux操作系统中用于实现多线程和进程间同步的关键技术——并发控制机制。通过剖析互斥锁、自旋锁、读写锁等核心概念及其在实际场景中的应用,本文将帮助开发者更好地理解和运用这些工具来构建高效且稳定的应用程序。 ####
269 5
|
Linux 开发工具 数据安全/隐私保护
|
4月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
490 1
二、Linux文本处理与文件操作核心命令
|
4月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
336 137
|
4月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
779 57