当前位置:   article > 正文

Linux入门到精通-企业实战①第8章Apache WEB服务器企业实战

Linux入门到精通-企业实战①第8章Apache WEB服务器企业实战

在这里插入图片描述

第 8 章 Apache WEB 服务器企业实战

万维网 (WORLD WIDE WEB,WWW)服务器,也称之为 WEB 服务器,主要功能是提供网上信息浏览服务。WWW 是 Internet 的多媒体信息查询工具,是 Internet 上飞快发展的服务,也是目前用的最广泛的服务。正是因为有了 WWW 软件,才使得近年
来 Internet 迅速发展。
目前主流的 WEB 服务器软件包括:Apache、Nginx、Lighttpd、IIS、Resin、Tomcat、 WebLogic、Jetty 等。
本章向读者介绍 Apache WEB 服务器发展历史、Apache 工作模式深入剖析、Apache 虚拟主机、配置文件详解及 Apache Rewrite 企业实战等。

8.1 Apache WEB 服务器入门简介

Apache HTTP Server 是 Apache 软件基金会的一个开源的网页服务器,是世界使用排名第一的 Web 服务器软件,可以运行在几乎所有广泛使用的计算机平台上,由于其
跨平台和安全性被广泛使用,是目前最流行的 Web 服务器端软件之一。
Apache 服务器是一个多模块化的服务器,经过多次修改,成为目前世界使用排名第一的 Web 服务器软件。Apache 取自“A Patchy Server”的读音,即充满补丁的服
务器,因为 Apache 基于 GPL 发布,大量开发者不断为 Apache 贡献新的代码、功能、新的特性、修改原来的缺陷。
Apache 服务器的特点是使用简单、速度快、性能稳定,可以做负载均衡及代理服务器来使用。

8.2 Prefork MPM 工作原理

每辆汽车都有发动机引擎,不同的引擎,对车子运行效率也不一样,同样 Apache 也有类似工作引擎或者处理请求的模块,亦可称之为多路处理模块(Multi-Processing Modules,MPM),Apache WEB 服务器有三种处理模块:Prefork MPM、Worker
MPM、Event MPM。
在企业中最常用的处理模块为 Prefork MPM 和 Worker MPM,Event MPM 不支持 HTTPS 方式,官网也给出“This MPM is experimental, so it may or may not work as expected”提示,所以很少被使用。
默认 Apache 处理模块为 Prefork MPM 方式,Prefork 采用的预派生子进程方式,Prefork 用单独的子进程来处理不同的请求,进程之间是彼此独立的,所以比较稳定。
Prefork 的工作原理:控制进程 Master 在最初建立“StartServers”个进程后,为了满足 MinSpareServers 设置的最小空闲进程,所以需创建第一个空闲进程,等待一秒钟,
继续创建两个,再等待一秒钟,继续创建四个,依次按照递增指数级创建进程数,最多每秒同时创建 32 个空闲进程,直到满足至少有 MinSpareServers 设置的值为止。
Apache 的预派生模式(Prefork),基于预派生模式,不必在请求到来时再产生新的进程,从而减小了系统开销以增加性能,不过由于 Prefork MPM 引擎是基于多进程方式提供对外服务,每个进程占内存也相对较高。

8.3 Worker MPM 工作原理

相对于 Prefork MPM,Worker 方式是 2.0 版中全新的支持多线程和多进程混合模型的 MPM,由于使用线程来处理,所以可以处理海量的 HTTP 请求,而系统资源的开销要小于基于 Prefork 多进程的方式。Worker 也是基于多进程,但每个进程又生成多个线
程,这样可以保证多线程可以获得进程的稳定性。 Worker MPM 工作原理:控制进程 Master 在最初建立“StartServers”个进程,每个进程会创建 ThreadsPerChild 设置的线程数,多个线程共享该进程内存空间,同时
每个线程独立地处理用户的 HTTP 请求。为了不在请求到来时再生成线程,Worker MPM也可以设置最大最小空闲线程。 Worker MPM 模式下同时处理的请求总数=进程总数 xThreadsPerChild,也即等于 MaxClients。如果服务器负载很高,当前进程数不满足需求,Master 控制进程会 fork
新的进程,最大进程数不能超过 ServerLimit 数,如果需调整的 StartServers 进程数,需同时调整 ServerLimit 值。
Prefork MPM 与 Worker MPM 引擎区别小结如下:
 Prefork MPM 模式:使用多个进程,每个进程只有一个线程,每个进程在某个确定的时间只能维持一个连接,稳定,内存开销较高;
 Worker MPM 模式:使用多个进程,每个子进程包含多个线程,每个线程在某个确定的时间只能维持一个连接,内存占用量比较小,适合大并发、高流量的WEB 服务器。Worker MPM 缺点是一个线程崩溃,整个进程就会连同其任何
线程一起挂掉。

8.4 Apache WEB 服务器安装

从 Apache 官方分站点下载目前稳定版本 httpd-2.2.32 版本,目前最新版本为 2.4版本,下载地址如下:
http://mirrors.hust.edu.cn/apache/httpd/httpd-2.2.32.tar.bz2
Apache WEB 服务器安装步骤如下:
tar -xjvf httpd-2.2.32.tar.bz2
tar 工具解压 httpd 包;
cd httpd-2.2.32/
进入解压后目录;
yum install apr apr-devel apr-util apr-util-devel -y
安装 APR 相关优化模块;
./configure --prefix=/usr/local/apache2/ --enable-rewrite --enable-so
–enable-mpms-shared=all --with-mpm=event
预编译 Apache,启用 rewrite 规则、启用动态加载库、开启 Apache 三种工作引擎,如果开启模块支持,需要添加配置:
#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
#LoadModule mpm_event_module modules/mod_mpm_event.so
#LoadModule mpm_worker_module modules/mod_mpm_worker.so
make
编译
make install
安装
Apache2.2.32 安装完毕,如图 10-1 所示:
在这里插入图片描述

图 10-1 Apache2.2.32 安装图解
启动 Apache 服务,临时关闭 selinux、firewalld 防火墙:
/usr/local/apache2/bin/apachectl start
setenforce 0
systemctl stop firewalld.service
查看 Apache 服务进程,通过客户端浏览器访问 http://192.168.111.131/,如图10-2(a)、10-2(b)所示:
在这里插入图片描述
图 10-2(a) Apache 启动及查看进程

在这里插入图片描述
图 10-2(b) 浏览器访问 Apache WEB 服务器

8.5 Apache 虚拟主机企业应用

企业真实环境中,一台 WEB 服务器发布单个网站会非常浪费资源,所以一台WEB 服务器上会发布多个网站,少则 3-5 个,多则 2-30 个网站。
在一台服务器上发布多网站,也称之为部署多个虚拟主机,WEB 虚拟主机配置方法有三种:
 基于单 IP 多个 Socket 端口;
 基于多 IP 地址一个端口;
 基于单 IP 一个端口不同域名。
其中基于同一端口不同域名的方式在企业中得到广泛的使用和应用,如下为基于一个端口不同域名,在一台 Apache WEB 服务器上部署多个网站,步骤如下:
(1) 创建虚拟主机配置文件 httpd-vhosts.conf,该文件默认已存在,只需去掉httpd.conf 配置文件中#号即可,如图 10-3 所示:
在这里插入图片描述

图 10-3 httpd.conf 配置文件开启虚拟主机
(2) 配置文件/usr/local/apache2/conf/extra/httpd-vhosts.conf 中代码设置为如下:
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin support@jfedu.net
DocumentRoot “/usr/local/apache2/htdocs/jf1” ServerName www.jf1.com
ErrorLog “logs/www.jf1.com_error_log” CustomLog “logs/www.jf1.com_access_log” common

<VirtualHost *:80>
ServerAdmin support@jfedu.net
DocumentRoot “/usr/local/apache2/htdocs/jf2” ServerName www.jf2.com
ErrorLog “logs/www.jf2.com_error_log” CustomLog “logs/www.jf2.com_access_log” common

Httpd-vhosts.conf 参数详解:
NameVirtualHost *:80 开启虚拟主机,并且监听本地所有网卡接口的 80 端口;
<VirtualHost *:80> 虚拟主机配置起始;
ServerAdmin support@jfedu.net 管理员邮箱;
DocumentRoot “/usr/local/apache2/htdocs/jf1” 该虚拟主机发布目录;
ServerName www.jf1.com 虚拟主机完整域名;
ErrorLog “logs/www.jf1.com_error_log” 错误日志路径及文件名;
CustomLog “logs/www.jf1.com_access_log” common 访问日志路径及文件名;
虚拟主机配置结束。
(3) 创建 www.jf1.com 及 www.jf2.com 发布目录,重启 apache 服务,并分别创建 index.html 页面:
mkdir -p /usr/local/apache2/htdocs/{jf1,jf2}/
/usr/local/apache2/bin/apachectl restart
echo “

www.jf1.com
Pages

” >/usr/local/apache2/htdocs/jf1/index.html
echo “

www.jf2.com
Pages

” >/usr/local/apache2/htdocs/jf2/index.html
(4) Windows 客户端设置 Hosts 映射,将 www.jf1.com、www.jf2.com 与192.168.111.131 IP 进行映射绑定,映射的目的将域名跟 IP 进行绑定,在浏览器可以输入域名,不需要输入 IP 地址,绑定方法是在“C:\Windows\System32\drivers\etc”文件夹中,使用记事本编辑 hosts 文件,
加入如下代码,如图 10-4 所示:
192.168.111.131 www.jf1.com
192.168.111.131 www.jf2.com
在这里插入图片描述

图 10-4 Windows 主机 Hosts 配置
(5) 浏览器访问 www.jf1.com、www.jf2.com 如图 10-5(a)、10-5(b)所示,
至此 Apache 基于多域名虚拟主机配置完毕,如果还需添加虚拟主机,直接拷贝其中一个虚拟主机配置、修改 WEB 发布目录即可:

在这里插入图片描述
图 10-5(a) www.jf1.com 网站返回内容

在这里插入图片描述
图 10-5(b) www.jf2.com 网站返回内容

8.6 Apache 常用目录学习

Apache 可以基于源码安装、YUM 安装,不同的安装方法,所属的路径特不同,如下为
Apache 常用路径的功能用途:
/usr/lib64/httpd/modules/ Apache 模块存放路径;
/var/www/html/ YUM 安装 Apache 网站发布目录;
/var/www/error/ 服务器设置错误信息,浏览器显示;
var/www/icons/ Apache 小图标文件存放目录;
var/www/cgi-bin/ 可执行的 CGI 程序存放目录。
/var/log/httpd/ Apache 日志目录;
/usr/sbin/apachectl Apache 启动脚本;
/usr/sbin/httpd Apache 二进制执行文件;
/usr/bin/htpasswd 设置 Apache 目录密码访问;
/usr/local/apache2/bin Apache 命令目录;
/usr/local/apache2/build Apache 构建编译目录;
/usr/local/apache2/htdocs/ 源码安装 Apache 网站发布目录;
/usr/local/apache2/cgi-bin 可执行的 CGI 程序存放目录;
/usr/local/apache2/include Apache 引用配置文件目录;
/usr/local/apache2/logs Apache 日志目录;
/usr/local/apache2/man Apache 帮助文档目录;
/usr/local/apache2/manual Apache 手册;
/usr/local/apache2/modules Apache 模块路径。

8.7 Apache 配置文件详解

Apache 的配置文件是 Apache WEB 难点,读者需要掌握配置文件中每个参数的含义,才能理解并在日常运维中去解决 Apache 遇到的故障,如下为 Apache 配置文件详解:
ServerTokens OS 显示服务器的版本和操作系统内核版本;
ServerRoot “/usr/local/apache2/” Apache 主配置目录;
PidFile run/httpd.pid PidFile 进程文件;
Timeout 60 不论接收或发送,当持续连接等待超过 60 秒则该次连接就中断;
KeepAlive Off 关闭持续性的连接;
MaxKeepAliveRequests 100 当 KeepAlive 设置为 On 的时候,该数值可以决定此次连接能够传输的最大传输数量;
KeepAliveTimeout 65 当 KeepAlive 设置为 On 的时候,该连接在最后一次传输后等待延迟的秒数;

Apache WEB服务器企业实战小结

在企业环境中,Apache Web服务器被广泛用于提供HTTP服务,支持各种网站和应用。下面将对Apache Web服务器在企业实战中的一些关键点进行小结。

一、了解需求和规划

  1. 明确需求:在选择和配置Apache Web服务器之前,首先要明确企业的需求,包括网站类型、访问量、安全性等方面的要求。
  2. 规划架构:根据需求,规划合适的Web服务器架构。考虑因素包括服务器硬件配置、网络环境、负载均衡等。
  3. 制定备份和恢复策略:为确保数据的安全性,需要制定备份和恢复策略,包括定期备份、存储和管理备份数据等。

二、安装和配置Apache Web服务器

  1. 安装Apache:根据操作系统的不同,选择合适的Apache版本进行安装。确保安装过程中所需的依赖项都已正确安装。
  2. 配置虚拟主机:通过虚拟主机配置,允许多个域名或端口映射到不同的Web应用程序。配置文件包括httpd.conf和virtualhosts.conf等。
  3. SSL/TLS安全配置:为确保数据的安全性,需要配置SSL/TLS证书和密钥,对传输的数据进行加密。使用工具如OpenSSL生成证书和密钥对。
  4. 访问控制和认证:通过配置访问控制和认证机制,限制对Web应用程序的访问权限。常见的认证方式包括基本认证、表单认证等。
  5. 性能优化:根据实际需求,对Apache Web服务器进行性能优化,包括调整并发连接数、连接超时时间、缓存设置等。

三、维护和管理Apache Web服务器

  1. 监控性能:使用工具如top、htop等监控服务器的资源使用情况,及时发现和解决性能瓶颈。
  2. 日志管理:收集和分析Apache的日志文件,包括访问日志、错误日志等,以便及时发现异常事件和潜在问题。使用日志轮转工具进行日志归档和管理。
  3. 定期维护:定期对Apache Web服务器进行维护,包括软件更新、漏洞修复等,以确保系统的稳定性和安全性。
  4. 安全扫描和防御:使用工具进行安全扫描,发现潜在的安全风险并进行修复。同时,配置防火墙规则和安全组策略,加强服务器的安全防御能力。
  5. 故障排除:当出现故障时,迅速定位问题原因并解决。记录故障排除过程,以便将来参考。

四、扩展功能和应用场景

  1. 扩展功能:根据实际需求,可以安装和配置额外的功能模块或插件,如mod_rewrite、mod_ssl等。了解并掌握如何加载和管理这些模块或插件。
  2. 应用场景:Apache Web服务器支持各种网站和应用场景,如静态网页、动态网页、电子商务网站等。根据不同的应用场景,需要选择合适的Web应用程序框架和技术进行开发。
  3. 集成其他服务:为了提供更完善的服务,可以集成其他相关的服务,如数据库服务器(如MySQL、PostgreSQL等)、缓存服务器(如Redis、Varnish等)以及负载均衡器(如Nginx)等。确保各个服务之间的连接和通信正常。
  4. 优化数据库连接:对于需要与数据库交互的Web应用程序,需要优化数据库连接池的大小和连接超时时间,以提高性能和避免资源浪费。
  5. 定制化开发:根据企业的特定需求,可以定制开发适合自身的功能模块或插件。掌握至少一种编程语言(如Python、PHP、Java等),以便进行定制化开发。
  6. 测试和性能评估:在部署和上线之前,对Web应用程序进行全面的测试和性能评估是必要的步骤。使用工具如Jmeter、LoadRunner等进行负载测试和性能评估,以确保系统能够满足实际需求。
  7. 备份和恢复:为确保数据的安全性,需要定期备份Web应用程序的数据和配置文件。同时,制定详细的恢复策略,以便在需要时快速恢复数据和服务。
  8. 安全性和防护:加强Web应用程序的安全性是至关重要的。采取措施如输入验证、防止SQL注入、跨站脚本攻击(XSS)防护等来提高应用程序的安全性。及时更新应用程序的安全补丁和漏洞修复程序。
  9. 日志记录和分析:收集和分析Web应用程序的日志文件,以便及时发现异常事件和潜在问题。使用日志分析工具如ELK Stack(Elasticsearch、Logstash、Kibana)进行日志管理和分析,以帮助发现和解决问题。
  10. 用户体验优化:优化网站的加载速度、界面设计、导航结构等,以提高用户体验和满意度。使用工具如Google Analytics等进行网站分析和优化。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/721904
推荐阅读
相关标签
  

闽ICP备14008679号