Linux中Web服务器配置和管理(Apache)

文章目录

  • 一、WEB服务器介绍
    • 1.1、WEB服务器概述
    • 1.2、WEB服务器的发展历史
    • 1.3、WEB服务器的优点与缺点
    • 1.4、WEB服务器的工作流程
  • 二、Apache介绍
    • 2.1、Apache是什么
    • 2.2、Apache的发展史与应用场景
    • 2.3、Apache的特点
    • 2.4、Apache的工作原理
    • 2.5、Apache的模块
  • 三、安装使用Apache服务
    • 3.1、安装Apache服务
    • 3.2、检查Apache进程
    • 3.3、编写开机自动启动脚本
    • 3.4、查看Apache的相关信息
    • 3.5、查看Apache被编译的模块
    • 3.6、修改监听端口


Web服务是目前Internet上最常见的服务之一,要搭建一个Web服务器,首先要选择一套合适的Web程序。

一、WEB服务器介绍

1.1、WEB服务器概述

万维网又称为Web(World Wide Web,www),是在Internet上以超文本为基础形成的信息网。用户通过浏览器可以访问Web服务器上的信息资源。

Web服务器是处理浏览器等Web客户端请求并返回相应响应的程序。在互联网世界中,Web服务器扮演着至关重要的角色,它们不仅存储和传输网页,还负责处理来自世界各地用户的请求,并提供所需的数据或文件。

现代Web服务器的核心功能包括处理HTTP请求、提供网页信息浏览服务、支持安全通信等。这些服务器能够处理各种类型的内容,包括但不限于HTML文档、图像、样式表、视频以及各类脚本。

1.2、WEB服务器的发展历史

早期发展和基本概念:

  • 在1960年代,超文本的概念首次被Theodor Holm Nelson提出,并在Project Xanadu中尝试实施。虽然这一项目最终没有广泛推广,但超文本的理念为后来的Web技术奠定了基础。
  • 1989年,Tim Berners-Lee在CERN工作时,为了解决科研人员之间信息共享的问题,提出了一个基于超文本的系统——万维网。他同时发明了HTML和HTTP,这是Web服务器技术的重要基石。

Web服务器的诞生和发展:

  • 1991年,第一个Web页面由Tim Berners-Lee发布,标志着Web服务器技术的正式应用开始。
  • 随着Web技术的普及,出现了多种Web服务器软件。Apache Group在1995年成立,并推出了Apache HTTP Server,迅速成为最受欢迎的Web服务器之一。随后,Nginx(2004年)和IIS也逐渐发展起来,形成了Web服务器软件的多元化格局。

静态动态内容的演变:

  • 最初的Web服务器主要提供静态内容服务。用户请求的每个页面都是服务器上预先生成好的HTML文件,直接传输给用户。
  • 随着互联网内容的增长和用户需求的多样化,动态内容生成技术如CGI、PHP和JSP等开始出现,使得Web服务器能够根据用户的请求实时生成内容,大大增强了Web的交互性和个性化体验。

Web服务器安全性能的增强:

  • 随着电子商务的兴起,Web服务器的安全性变得越来越重要。SSL/TLS协议的应用保证了数据传输的安全性,成为了Web服务器不可或缺的一部分。
  • 随着网站访问量的增加,单一的Web服务器难以处理巨大的请求量。负载均衡技术允许将请求分发到多个服务器上,有效地提高了网站的处理能力和稳定性。

1.3、WEB服务器的优点与缺点

优点分析:

  • Web服务器的设计通常考虑到了高效性和稳定性。例如,Apache HTTP Server以其成熟、稳定和功能强大的特点被广泛采用。它的配置丰富,几乎可以满足所有功能需求。
  • 现代Web服务器如Nginx在处理静态文件和动态内容方面表现出色。Nginx在内存和CPU资源消耗上相对较小,并且能够支持更高的并发数。这对于动态网站和高流量的应用来说尤为重要。
  • Web服务器通常具备良好的扩展性。模块化设计允许用户根据需要选择和添加功能模块,以适应不同的应用场景。
  • 随着技术的发展,Web服务器的安全性也在持续增强。SSL/TLS协议的广泛应用确保了数据传输的安全。此外,许多服务器集成了安全防护机制,如Apache的多种HTTP认证方式和安全模块。

缺点分析:

  • 尽管Web服务器如Apache提供了丰富的功能,但这也导致了其在某些情况下资源消耗较大,特别是在处理静态文件较多的情况下,其内存和CPU的占用相比轻量级服务器来说较大。
  • 虽然Web服务器在多方面进行了优化,但在高并发场景下仍可能面临性能瓶颈。例如,Apache的阻塞型请求处理方式可能在处理海量并发请求时出现延迟。
  • Web服务器虽然在功能上多样化,但同时也增加了配置的复杂性。对于非专业用户来说,配置和管理一个功能强大的Web服务器可能比较困难。
  • 虽然Web服务器不断更新以提升安全性,但它们仍然是网络攻击的主要目标。随着黑客技术的不断进步,保持服务器安全成为一项持续的挑战。

1.4、WEB服务器的工作流程

在这里插入图片描述

Web服务器的工作流程涉及接收请求、处理请求、访问资源、构建响应和返回响应等关键步骤。

  • 建立连接:Web服务器的工作流程开始于与客户端(通常是Web浏览器)建立一个TCP连接。这一步骤是通过所谓的三次握手完成的,确保数据的可靠传输。
  • 接收请求:一旦连接建立,服务器会接收客户端发送的HTTP请求。这些请求包含方法(如GET或POST)、资源的路径、以及可能的查询字符串或数据体。
  • 处理请求:服务器解析收到的HTTP请求后,确定请求类型(如是获取静态资源还是需要执行的动态内容)。对于静态内容,服务器直接从文件系统中读取并准备返回;而对于动态内容,则可能需要通过CGI或其他应用接口进行进一步的处理。
  • 访问资源:根据请求的类型,服务器会从不同的位置获取资源。这包括从本地文件系统、缓存、数据库或通过CDN等方式获取资源。
  • 构建响应:在获取到必要的资源后,服务器会构建一个HTTP响应。此响应包括状态码、响应头(其中包含了例如内容类型、缓存策略等信息),以及实际的响应实体(即返回的实际数据,如HTML页面、图片等)。
  • 返回响应:构建好的响应随后被发送回客户端。如果连接是持久的(HTTP keep-alive),服务器可能会在同一连接上等待更多的请求;否则,连接可能会被关闭。
  • 记录日志:为了跟踪和分析服务器运行情况,大多数Web服务器在处理完每一个HTTP事务后都会将其记录到日志文件中,这对于后续的问题诊断和性能优化非常有帮助。

二、Apache介绍

2.1、Apache是什么

Apache是一种开源的Web服务器软件,被广泛用于托管网站和应用程序。

这种软件,被称为Apache HTTP Server,由Apache软件基金会维护,是一个强大且可扩展的服务器平台,支持多种操作系统,包括Linux、Windows等;由于其开源特性,Apache提供了极高的灵活性和可配置性,使其成为开发者和企业的首选服务器软件。

2.2、Apache的发展史与应用场景

起源与初期发展:

  • Apache HTTP Server的故事开始于伊利诺伊大学香槟分校的国家超级电脑应用中心(NCSA)开发的NCSA HTTPd服务器。由于最初的开发者逐渐对这个软件失去了兴趣,导致缺乏技术支持和更新。这促使一群热心的开发者聚在一起,共同维护和发展这一项目,最终成立了Apache Group。
  • 1995年4月,Apache Group发布了首个公开版本0.6.2,并在同年12月推出了1.0版本。仅用一年时间,Apache就超越了NCSA HTTPd,成为使用量最大的Web服务器。到了1999年,Apache已经在57%的网页服务器上运行。

关键里程碑与技术革新:

  • 随着互联网技术的迅速发展,Apache不断引入新技术如SSL/TLS加密通信、URL重写功能以及反向代理能力等,大大增强了其作为Web服务器的功能性和灵活性。
  • Apache通过支持最新的HTTP标准,如HTTP/2,保持了其在Web服务器市场中的领先地位。同时,它继续推动边缘技术的发展,以适应不断变化的网络需求。

社区支持与开源贡献:

  • Apache软件基金会不仅维护Apache HTTP Server,还支持其他多个开源项目,推动了整个开源生态系统的发展。
  • Apache的成功在很大程度上得益于其活跃的开发者社区,这个社区不断对服务器代码进行优化和新功能的添加,促进了技术的快速迭代和问题的迅速解决。

应用场景与市场地位:

  • Apache因其高可配置性和广泛的模块支持,适用于从小型个人博客到大型电商平台的各种网站。它的成功也体现在其市场占有率上,长期保持在60%左右,是世界上使用最广泛的Web服务器之一。
  • 许多全球知名的网站如Amazon、Yahoo!都是Apache的产物,这些成功案例证明了其在高流量网站处理能力上的卓越表现。

2.3、Apache的特点

Apache HTTP Server是一款开源的Web服务器软件,以其跨平台性、高度模块化、安全性和强大的功能集被广泛使用。

开源性质:

  • 作为开源软件,Apache允许用户自由使用、修改和重新分发其代码。这种开放性促进了全球开发者社区的贡献,推动了其功能和性能的不断进步。
  • 由于其开源的性质,Apache拥有一个活跃的开发者社区,这支持了技术的快速迭代和问题的迅速解决。

跨平台能力:

  • Apache服务器可以在几乎所有广泛使用的计算机平台上运行,包括各种版本的UNIX、Linux以及Windows等,这提供了极高的适应性和灵活性。
  • 得益于其跨平台的设计,Apache能够适应各种不同的操作系统环境,使得它在全球范围内得到了广泛的应用。

模块化设计:

  • Apache通过模块化设计实现了高度的可配置性和扩展性。用户可以根据自己的需求添加或删除功能模块,灵活地定制服务器的行为。
    模块化还意味着Apache可以与其他许多工具和系统集成,如PHP、Python等,这增强了其在Web开发中的通用性和实用性。

安全性:

  • Apache提供了多种安全功能,包括访问控制、身份验证和加密等,以保护服务器和数据的安全。
  • Apache的安全性能定期接受全球开发者社区的审查和更新,帮助保护系统免受最新威胁的影响。

高性能:

  • Apache能够处理大量的并发请求,使其成为许多高流量网站的首选服务器软件。
  • 尽管Apache以进程为基础的结构在多处理器环境中可能不是最高效的,但其稳定性和可靠性让它在实际应用中表现出色。

配置灵活性:

  • Apache提供了一个简单而强大的基于文件的配置系统,使管理员能够容易地调整和优化服务器设置以满足特定的应用需求。

代理功能:

  • Apache还可以配置为代理服务器,这可以帮助提高网络安全性,同时控制对外部资源的访问。

虚拟主机支持:

  • 支持基于IP和域名的虚拟主机,这使得在同一台服务器上托管多个网站变得简单高效。

2.4、Apache的工作原理

Apache HTTP Server的工作原理涉及多个步骤,包括客户端请求发送、服务器解析请求、读取信息、完成请求动作以及关闭连接等。

  • 当用户在浏览器中输入URL或通过点击链接访问网页时,浏览器会向目标Web服务器发送HTTP请求。此请求包含了诸如用户的IP地址、浏览器类型及请求的URL等信息。一旦Web服务器接收到请求,它就会开始处理这个请求,并准备将响应返回给客户端。
  • Apache服务器的核心功能是处理和响应HTTP请求。它通过监听特定的端口(默认为80端口)来接收来自客户端的请求。一旦收到请求,Apache会对请求头进行解析,确定请求的类型(如GET、POST等),以及请求的资源类型(如HTML文档、图片文件等)。根据这些信息,Apache会决定如何响应该请求。如果请求的是静态资源,如一个HTML页面或者一个图片,Apache会直接从其文件系统中读取并返回这个文件。如果请求需要服务器动态处理,例如一个需要运行PHP脚本的页面,Apache会将请求传递给相应的处理模块,处理完成后再将结果返回给客户端。
  • Apache支持多种多处理模块(MPM),如prefork、worker和event MPM,这些模块允许Apache以不同的方式处理并发请求,从而优化性能。Prefork MPM每个请求使用一个单独的进程,适合处理多线程不稳定的模块。Worker MPM使用线程,可以处理更多的请求且占用更少的内存。Event MPM使用事件驱动机制,旨在提供更高的性能和吞吐量。
  • 在处理完请求并将响应发回客户端后,Apache会关闭与该请求相关的连接。这个过程包括关闭所有由请求打开的资源,如文件句柄和其他类型的连接。这样做是为了确保系统资源得到有效管理,为后续的请求做好准备。

2.5、Apache的模块

模块名功能说明是否默认安装
mod_actions运行基于MIME类型的CGI脚本
mod_alias支持虚拟目录和页面重定向
mod_asis发送包含自定义HTTP头的文件
mod_auth_basic基本验证
mod_auth_digest使用MD5加密算法的用户验证
mod_authn_alias允许使用第三方验证
mod_authn_anon允许匿名用户访问认证的区域
mod_authn_dbd使用数据库保存用户验证信息
mod_authn_dbm使用DBM数据文件保存用户验证信息
mod_authn_default处理用户验证失败
mod_authn_file使用文本文件保存用户验证信息
mod_authnz_ldap使用LDAP目录进行用户验证
mod_authz_default处理组验证失败
mod_authz_groupfile使用plaintext文件进行组验证
mod_authz_host基于主机的组验证
mod_authz_user用户验证模块
mod_autoindex生成目录索引
mod_cache通向URI的内容Cache

三、安装使用Apache服务

3.1、安装Apache服务

安装 Apache HTTP Server

[root@root ~]# yum install httpd

启动 Apache 服务

[root@root ~]# systemctl start httpd

设置开机自启

[root@root ~]# systemctl enable httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.

查看apache状态

[root@root ~]# systemctl status httpd
● httpd.service - The Apache HTTP ServerLoaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; preset: disabled)Active: active (running) since Fri 2024-06-14 19:00:09 CST; 49s agoDocs: man:httpd.service(8)Main PID: 104946 (httpd)Status: "Total requests: 0; Idle/Busy workers 100/0;Requests/sec: 0; Bytes served/sec:   0 B/sec"Tasks: 177 (limit: 10483)Memory: 24.7MCPU: 90msCGroup: /system.slice/httpd.service├─104946 /usr/sbin/httpd -DFOREGROUND├─104947 /usr/sbin/httpd -DFOREGROUND├─104948 /usr/sbin/httpd -DFOREGROUND├─104949 /usr/sbin/httpd -DFOREGROUND└─104950 /usr/sbin/httpd -DFOREGROUNDJun 14 19:00:09 root systemd[1]: Starting The Apache HTTP Server...
Jun 14 19:00:09 root httpd[104946]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::216:3eff:fe0d:5001%eth0. Set the 'ServerName' dire>
Jun 14 19:00:09 root systemd[1]: Started The Apache HTTP Server.
Jun 14 19:00:09 root httpd[104946]: Server configured, listening on: port 80

停止apache服务

[root@root ~]# systemctl stop httpd
[root@root ~]# systemctl status httpd
○ httpd.service - The Apache HTTP ServerLoaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; preset: disabled)Active: inactive (dead) since Fri 2024-06-14 19:02:00 CST; 2s agoDuration: 1min 49.388sDocs: man:httpd.service(8)Process: 104946 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=0/SUCCESS)Main PID: 104946 (code=exited, status=0/SUCCESS)Status: "Total requests: 0; Idle/Busy workers 100/0;Requests/sec: 0; Bytes served/sec:   0 B/sec"CPU: 138msJun 14 19:00:09 root systemd[1]: Starting The Apache HTTP Server...
Jun 14 19:00:09 root httpd[104946]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::216:3eff:fe0d:5001%eth0. Set the 'ServerName' dire>
Jun 14 19:00:09 root systemd[1]: Started The Apache HTTP Server.
Jun 14 19:00:09 root httpd[104946]: Server configured, listening on: port 80
Jun 14 19:01:59 root systemd[1]: Stopping The Apache HTTP Server...
Jun 14 19:02:00 root systemd[1]: httpd.service: Deactivated successfully.
Jun 14 19:02:00 root systemd[1]: Stopped The Apache HTTP Server.

3.2、检查Apache进程

显示当前运行的 Apache 进程的信息

[root@root ~]# ps -ef | grep httpd
root      105467       1  0 19:02 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    105470  105467  0 19:02 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    105471  105467  0 19:02 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    105472  105467  0 19:02 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    105473  105467  0 19:02 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
root      105710  104374  0 19:04 pts/0    00:00:00 grep --color=auto httpd

返回结果解析

  • 用户名(User):进程的所有者,这里是root和apache。
  • 进程ID(PID):进程的唯一标识符,例如105467、105470等。
  • 父进程ID(PPID):创建该进程的父进程的ID,例如105467、105467等。
  • 启动时间(Start time):进程启动的时间,例如19:02、19:02等。
  • 运行时间(Time):进程运行的总时间,例如00:00:00、00:00:00等。
  • 命令(Command):启动进程的命令,这里是/usr/sbin/httpd -DFOREGROUND

显示当前运行的 Apache 进程的 PID

[root@root ~]# pgrep httpd
105467
105470
105471
105472
105473

显示当前运行的 Apache 进程的网络连接信息

[root@root ~]# netstat -tlnp | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      105467/httpd   

3.3、编写开机自动启动脚本

创建一个 systemd 服务文件

[root@root ~]# vi /etc/systemd/system/apache.service
[Unit] # 定义单元,用于描述服务的属性
Description=Apache HTTP Server # 描述服务的简短描述
After=network.target # 指定在哪个服务之后启动此服务[Service] # 定义服务的配置
User=httpd # 指定运行服务的用户
ExecStart=/usr/sbin/httpd $HTTPD_ARGS # 指定启动服务的命令和参数
Restart=always # 指定服务失败时自动重启的策略[Install] # 定义安装信息
WantedBy=multi-user.target # 指定服务所属的目标,即在哪个环境下启动此服务

reload systemd 服务

[root@root ~]# systemctl daemon-reload

3.4、查看Apache的相关信息

Apache在安装时已经自动采用了一系列的默认设置,安装完成后Web服务器已经可以对外提供WWW服务,但为了能够更好地运作,还需要对Apache进行一些配置。

显示 Apache 服务器的版本信息,包括版本号、操作系统、编译器和其他相关信息

[root@root ~]# httpd -V
Server version: Apache/2.4.57 (CentOS Stream)
Server built:   Feb  7 2024 00:00:00
Server's Module Magic Number: 20120211:127
Server loaded:  APR 1.7.0, APR-UTIL 1.6.1, PCRE 8.44 2020-02-12
Compiled using: APR 1.7.0, APR-UTIL 1.6.1, PCRE 8.44 2020-02-12
Architecture:   64-bit
Server MPM:     eventthreaded:     yes (fixed thread count)forked:     yes (variable process count)
Server compiled with....-D APR_HAS_SENDFILE-D APR_HAS_MMAP-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)-D APR_USE_PROC_PTHREAD_SERIALIZE-D APR_USE_PTHREAD_SERIALIZE-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT-D APR_HAS_OTHER_CHILD-D AP_HAVE_RELIABLE_PIPED_LOGS-D DYNAMIC_MODULE_LIMIT=256-D HTTPD_ROOT="/etc/httpd"-D SUEXEC_BIN="/usr/sbin/suexec"-D DEFAULT_PIDLOG="run/httpd.pid"-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"-D DEFAULT_ERRORLOG="logs/error_log"-D AP_TYPES_CONFIG_FILE="conf/mime.types"-D SERVER_CONFIG_FILE="conf/httpd.conf"

返回结果解析

  • 服务器版本号:Apache/2.4.57 (CentOS Stream)
  • 服务器构建时间:Feb 7, 2024 00:00:00
  • 服务器模块的魔术数字:20120211:127
  • 加载的模块:APR 1.7.0, APR-UTIL 1.6.1, PCRE 8.44 2020-02-12
  • 编译使用的模块:APR 1.7.0, APR-UTIL 1.6.1, PCRE 8.44 2020-02-12
    架构:64位
  • 服务器MPM(多处理模块):event
    threaded:是(固定线程数)
    forked:是(可变进程数)
  • 服务器编译时启用的选项
    D APR_HAS_SENDFILE
    D APR_HAS_MMAP
    D APR_HAVE_IPV6(启用IPv4映射地址)
    D APR_USE_PROC_PTHREAD_SERIALIZE
    D APR_USE_PTHREAD_SERIALIZE
    D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
    D APR_HAS_OTHER_CHILD
    D AP_HAVE_RELIABLE_PIPED_LOGS
    D DYNAMIC_MODULE_LIMIT=256
    D HTTPD_ROOT=“/etc/httpd”
    D SUEXEC_BIN=“/usr/sbin/suexec”
    D DEFAULT_PIDLOG=“run/httpd.pid”
    D DEFAULT_SCOREBOARD=“logs/apache_runtime_status”
    D DEFAULT_ERRORLOG=“logs/error_log”
    D AP_TYPES_CONFIG_FILE=“conf/mime.types”
    D SERVER_CONFIG_FILE=“conf/httpd.conf”

显示 Apache 服务器的版本信息,包括版本号、操作系统、编译器和其他相关信息

[root@root ~]# rpm -qi httpd
Name        : httpd
Version     : 2.4.57
Release     : 8.el9
Architecture: x86_64
Install Date: Fri 14 Jun 2024 06:59:10 PM CST
Group       : Unspecified
Size        : 60837
License     : ASL 2.0
Signature   : RSA/SHA256, Sun 18 Feb 2024 07:10:56 AM CST, Key ID 05b555b38483c65d
Source RPM  : httpd-2.4.57-8.el9.src.rpm
Build Date  : Wed 14 Feb 2024 08:31:16 PM CST
Build Host  : x86-03.stream.rdu2.redhat.com
Packager    : builder@centos.org
Vendor      : CentOS
URL         : https://httpd.apache.org/
Summary     : Apache HTTP Server
Description :
The Apache HTTP Server is a powerful, efficient, and extensible
web server.

返回结果解析

  • 名称(Name):httpd
  • 版本(Version):2.4.57
  • 发布号(Release):8.el9
  • 架构(Architecture):x86_64
  • 安装日期(Install Date):Fri 14 Jun 2024 06:59:10 PM CST
  • 组(Group):Unspecified
    大小(Size):60837
    许可证(License):ASL 2.0
  • 签名(Signature):RSA/SHA256, Sun 18 Feb 2024 07:10:56 AM CST, Key ID 05b555b38483c65d
  • 源RPM(Source RPM):httpd-2.4.57-8.el9.src.rpm
  • 构建日期(Build Date):Wed 14 Feb 2024 08:31:16 PM CST
  • 构建主机(Build Host):x86-03.stream.rdu2.redhat.com
  • 打包者(Packager):builder@centos.org
  • 供应商(Vendor):CentOS
  • URL:https://httpd.apache.org/
  • 摘要(Summary):Apache HTTP Server
  • 描述(Description): The Apache HTTP Server is a powerful, efficient, and extensible web server.

显示 Apache 服务器的软件包信息,包括版本号、安装日期、大小和其他相关信息

[root@root ~]# rpm -qi httpd
Name        : httpd
Version     : 2.4.57
Release     : 8.el9
Architecture: x86_64
Install Date: Fri 14 Jun 2024 06:59:10 PM CST
Group       : Unspecified
Size        : 60837
License     : ASL 2.0
Signature   : RSA/SHA256, Sun 18 Feb 2024 07:10:56 AM CST, Key ID 05b555b38483c65d
Source RPM  : httpd-2.4.57-8.el9.src.rpm
Build Date  : Wed 14 Feb 2024 08:31:16 PM CST
Build Host  : x86-03.stream.rdu2.redhat.com
Packager    : builder@centos.org
Vendor      : CentOS
URL         : https://httpd.apache.org/
Summary     : Apache HTTP Server
Description :
The Apache HTTP Server is a powerful, efficient, and extensible
web server.

3.5、查看Apache被编译的模块

显示 Apache 服务器已经启用的模块列表

[root@root ~]# httpd -M
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::216:3eff:fe0d:5001%eth0. Set the 'ServerName' directive globally to suppress this message
Loaded Modules:core_module (static)so_module (static)http_module (static)access_compat_module (shared)actions_module (shared)alias_module (shared)allowmethods_module (shared)

显示 Apache 服务器已经编译的模块列表

[root@root /]# httpd -l
Compiled in modules:core.cmod_so.chttp_core.c

3.6、修改监听端口

编辑 Apache 的配置文件

[root@root /]# vi /etc/httpd/conf/httpd.conf
Listen 8080

reload Apache 服务

[root@root /]# systemctl reload httpd

restart Apache 服务

[root@root /]# systemctl restart httpd

验证 Apache 服务的监听端口

[root@root /]# netstat -tlnp | grep httpd
tcp6       0      0 :::8080                 :::*                    LISTEN      108025/httpd    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/27348.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

调用百度API实现图像多主体检测

目录 1. 作者介绍2.百度API介绍与获取2.1 API介绍2.2 注册账号并获取API Key 3.完整实验代码,测试结果3.1 调用API3.2框出主体部分,并标注标签和置信度3.3 测试结果 1. 作者介绍 邓富贵,男,西安工程大学电…

【动态规划】| 详解路径问题之地下城游戏 力扣174 (困难题)

🎗️ 主页:小夜时雨 🎗️专栏:动态规划 🎗️如何活着,是我找寻的方向 目录 1. 题目解析2. 代码 1. 题目解析 题目链接: https://leetcode.cn/problems/minimum-path-sum/description/ 建议先看一下前面…

Character Region Awareness for Text Detection论文学习

​1.首先将模型在Synth80k数据集上训练 Synth80k数据集是合成数据集,里面标注是使用单个字符的标注的,也就是这篇文章作者想要的标注的样子,但是大多数数据集是成堆标注的,也就是每行或者一堆字体被整体标注出来,作者…

手把手教你安装 Vivado2022.2(附安装包)

​一、Vivado 2022.2 优势 Vivado 2022.2版本与之前的版本相比,具有以下几个显著的优势: 电源设计管理器(PDM):Vivado 2022.2引入了全新的电源设计管理器(PDM),这是一个下一代功耗评…

LeetCode | 58.最后一个单词的长度

这道题要求最后一个单词的长度,第一个想到的就是反向遍历字符串,寻找最后一个单词并计算其长度。由于尾部可能会有’ ,所以我们从后往前遍历字符串,找到第一个非空格的字符,然后记录下到下一个空格前依次有多少个字母即…

python全栈开发《05.环境搭建与脚本结构之python中的关键字》

1.什么是关键字 在中国古代,像皇帝,还有官员的官职,他们的官称不同,所执行的工作内容也并不相同。 那么python里面的关键字就像朝廷里面官员的头衔一样被python所内定。并且起到各自的功能。朝廷的官员是为了国家的运转而存在的。…

【思维导图工具】Xmind 2024安装教程+软件安装包下载

​XMind 2022是一款风靡全宇宙的思维导图和头脑暴炸软件,是全宇宙领先的“可视化思考”工具,每一个功能都能帮助你激发灵感、提高创造力。 XMind 2022为不同的使用场景提供多种可视化布局,让你的思维可以更清晰的结构化呈现,该软件…

Apollo9.0 PNC源码学习之Control模块(二)—— controller解析

前面文章:Apollo9.0 PNC源码学习之Control模块(一) 本文将对具体控制器以及原理做一个剖析 1 PID控制器 1.1 PID理论基础 如下图所示,PID各参数(Kp,Ki,Kd)的作用: 任何闭环控制系统的首要任务是要稳、准、快的响…

水表摄像直读抄表仪

1.技术性简述 水表摄像直读抄表仪,是一种前沿的智能计量机器设备,它利用超清摄像头部和图像识别算法,完成了远程控制、非接触的水表载入。这一技术的普及,颠覆了传统式人力抄表的形式,提高了效率,降低了不…

RPA-UiBot6.0控制与运行机器人 —工作任务智能调度自动运行

前言 来也产品文档中心 来也产品文档中心 (laiye.com)https://documents.laiye.com/ 友友们你们是否曾因为例行性工作的繁琐而苦恼?是否想要让机器人帮你自动执行这些任务?小北的这篇博客将为友友们揭示其中的奥秘,让我们一起学习如何通过RP…

计算机组成原理历年考研真题对应知识点(计算机系统层次结构)

目录 1.2计算机系统层次结构 1.2.2计算机硬件 【命题追踪——冯诺依曼计算机的特点(2019)】 【命题追踪——MAR 和 MDR 位数的概念和计算(2010、2011)】 1.2.3计算机软件 【命题追踪——三种机器语言的特点(2015)】 【命题追踪——各种翻译程序的概念(2016)】 1.2.5计算…

2024.6.14 刷题总结

2024.6.14 **每日一题** 2786.访问数组中的位置使分数最大,看到这题就想到动态规划的思路,遍历数组,每次选择移动该元素时能获得到的最大值,分别考虑最后一个的元素为奇数/偶数的最大值,用长度为2的数组来储存这两个值…

HTML解析之Beautiful Soup

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 Beautiful Soup是一个用于从HTML和XML文件中提取数据的Python库。Beautiful Soup 提供一些简单的、函数用来处理导航、搜索、修改分析树等功能。Beau…

代码随想录:回溯20-21

51.N皇后 题目 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回所有不同的 n 皇后问题 的解…

【深度学习】Transformer分类器,CICIDS2017,入侵检测,随机森林、RFE、全连接神经网络

文章目录 1 前言2 随机森林训练3 递归特征消除 RFE Recursive feature elimination4 DNN5 Transformer5.1. 输入嵌入层(Input Embedding Layer)5.2. 位置编码层(Positional Encoding Layer)5.3. Transformer编码器层(T…

堆的实现及其应用

堆的概念 堆是完全二叉树,分为大堆和小堆。大堆:任何一个父亲都大于等于孩子,小堆:任何一个父亲都小于等于孩子。 堆的实现 目录 typedef int HPDataType;typedef struct Heap { HPDataType* a;int size;int capacity; }HP;//交…

C语言之操作符

目录 一、二进制 原码、反码、补码 二、移位操作符 位操作符 三、 逗号表达式 四、下标访问[]、函数调用() 五. 操作符的属性 整型提升 算术转换 六、总结 一、二进制 其实2进制、8进制、10进制、16进制是数值的不同表示形式而已。 其实10进制是生活中经常使用的&am…

类别朴素贝叶斯CategoricalNB和西瓜数据集

CategoricalNB 1 CategoricalNB原理以及用法2 数据集2.1 西瓜数据集2.2 LabelEncoder2.3 OrdinalEncoder 3 代码实现 1 CategoricalNB原理以及用法 (1)具体原理 具体原理可看:贝叶斯分类器原理 sklearn之CategoricalNB对条件概率的原理如下&…

粉丝经济时代:微信订阅号如何助力中小企业增长

在数字化浪潮席卷全球的今天,微信订阅号凭借其独特的优势,成为了中小企业数字化出海的重要工具。作为NetFarmer,我们致力于帮助企业充分利用这一平台,推动业务发展和市场拓展。今天将深入探讨微信订阅号的概念、用途、使用方法、适…

mac安装高版本git(更新git)

问题 问题:新下载的idea,此idea的版本较高,但是在工作发现这个版本的git存在一定漏洞会导致一些信息泄露问题。 1.安装Homebrew 对于Mac更新git,最简单的就是使用brew命令。所以我们首先下载homebrew。已下载的同学忽略直接下一…