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.xdnf.cn/news/1451685.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Apache druid未授权命令执行漏洞复现

简介 Apache Druid是一个实时分析型数据库,旨在对大型数据集进行快速的查询分析("OLAP"查询)。Druid最常被当做数据库来用以支持实时摄取、高性能查询和高稳定运行的应用场景,同时,Druid也通常被用来助力分析型应用的图…

牛客仓鼠的鸡蛋

分析一下判断语句 如果能放就输出位置 不能放就输出-1 不能放的条件是最大值小于要放的鸡蛋数量,线段树维护最大值 放的位置用线段树二分 每个篮子不能放超过k堆鸡蛋,记录一下每个篮子放的次数,次数等于k后给最大值附上0即可 // Proble…

使用powershell筛选AD域控不能自主更改的用户并变更

# 查询“用户不能更改密码”为勾选状态的所有域用户,将域账户、姓名、勾选状态作为结果保存到C:\result\result.csvGet-ADUser -Filter * -Properties CannotChangePassword | Where-Object { $_.CannotChangePassword -eq $true } | Select SamAccountName, Name, …

javaWeb项目-ssm+vue在线购物系统功能介绍

本项目源码:java-ssmvue在线购物系统的设计与实现源码说明文档资料资源-CSDN文库 项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架:ssm、Springboot 前端:Vue、ElementUI 关键技术:sprin…

UnityAPI学习之延时调用(Invoke)

延时调用(Invoke) 当我们进行简单函数的延时调用不想使用协程时,我们可以使用Invoke()函数 using System.Collections; using System.Collections.Generic; using UnityEngine;public class NO15_Invoke : MonoBehaviour {//显示在每次生成…

MySQL 日志(一)

本篇主要介绍MySQL日志的相关内容。 目录 一、日志简介 常用日志 一般查询日志和慢查询日志的输出形式 日志表 二、一般查询日志 三、慢查询日志 四、错误日志 一、日志简介 常用日志 在MySQL中常用的日志主要有如下几种: 这些日志通常情况下都是关闭的&a…

MySQL日志(三):数据安全

先来看一个结论:只要redo log和binlog保证持久化到磁盘, 就能确保MySQL异常重启后, 数据可以恢复。 binlog写入逻辑 binlog的写入逻辑比较简单: 事务执行过程中, 先把日志写到binlog cache, 事务提交的时候…

C++11列表初始化{}

列表初始化 C11后为了能让自定义类型也能够快速被初始化新增 {} 内置类型变量 int a1 { 10 };int a2{ 11 };int a3 { 1 2 };int a4{ 1 2 }; 注意:列表初始化可以在{}之前使用等号,其效果与不使用没有什么区别。 内置类型数组 int arr1[] { 1,2,3…

【数据结构陈越版笔记】进阶实验1-3.1:两个有序序列的中位数

我这答案做的可能不对,如果不对,欢迎大家指出错误,思路大部分直接写在注释中了。 进阶实验1-3.1:两个有序序列的中位数 已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数。有序序列 A 0 , A 1 , . . . , A n −…

使用sherpa-ncnn进行中文语音识别(ubuntu22)

获取该开源项目的渠道,是我在b站上,看到了由csukuangfj制作的一套语音识别视频。以下地址均为csukuangfj在视频中提供,感谢分享! 新一代Kaldi RISC-V: VisionFive2 上的实时中英文语音识别_哔哩哔哩_bilibili 开源项目地址&…

SW参数化设计软件 慧德敏学

随着产品设计信息化进程的不断推进,企业运用三维CAD系统进行设计正日趋广泛,三维参数化设计无疑是提高设计效率的好方法之一。所谓参数化设计就是将模型中的约束信息变量化,使之成为可以调整的参数,赋以不同数值就可得到不同大小和…

CPN Tools学习——时间和队列【重要】

-Timed Color Sets 时间颜色集 -Token Stamps 令牌时间戳 -Event Clock 全局/事件/模拟时钟 -Time Delays on Transitions过渡的时间延迟 - List Color Set列表颜色集 - Queue排队 1.时间颜色集 在定时CPN模型令牌中有: (1)象征性的颜…

【面试干货】抽象类和接口的区别

【面试干货】抽象类和接口的区别 1、抽象类1.1、什么是抽象类?1.2、示例代码 2、接口2.1、什么是接口?2.2、示例代码 3、比较和总结3.1、使用场景3.2、关键区别3.3、代码示例比较 💖The Begin💖点点关注,收藏不迷路&am…

【安卓设备】通过adb批量安装apk

1、adb链接设备 H:\tv\apk>adb connect 127.0.0.1:21503 2、批量安装apk 如果地址不一致需要将 H:\tv\apk\ 改成自己的路径地址,同时注意该命令只能安装文件名为英文的不支持中文名称,如果有需要先更改文件名称。 H:\tv\apk>for %f in (H:\tv\a…

VirtualBox、Centos7下安装docker后pull镜像问题

Docker安装篇(CentOS7安装)_docker 安装 centos7-CSDN博客 首先,安装docker可以根据这篇文章进行安装,安装完之后,我们就需要去通过docker拉取相关的服务镜像,然后安装相应的服务容器,比如我们通过docker来安装mysql,…

AI Agent学习系列:微信搭配Agent,让微信秒变特工

在之前的文章里介绍了如何把微信变成高考志愿填报小助手,我已经把这个bot发布到了公众号,大家可以直接在公众号消息输入框里提问即可直接使用,如图: 上面说的bot就是智能体,也叫Agent,和英文里特工是一个单…

【Vue】自学笔记(四)

上一篇:Vue笔记(三)-CSDN博客 1.VueCli自定义搭建项目 先确保安装了全局工具VueCli 如果没有,则先运行命令 npm i vue/cli -g 选择最后一个自定义搭建项目 选择需要自动搭建的功能 这里我需要router和css预处理器就空格勾选上&…

黄河流域web

1、UNSER的 <?php highlight_file(__FILE__); class Wel {public $fast;public $star;public function __construct(){$this->fast "free_toto";echo "what?";}public function __destruct(){$content $this->star;printf ($content);}pu…

使用ShinyCell展示你的单细胞数据

在我参与发表我的第一篇植物单细胞文章中&#xff0c;我用Shiny开发了一个简单的单细胞可视化网站&#xff0c;目前已经运行了5年了&#xff0c;有上万的访问&#xff0c;唯一的不足就是太简陋。我一直想着能不能找个一个更好的工具进行展示&#xff0c;最近发现了一个工具&…

Druid未授权访问漏洞修复

前言 安全组针对系统漏扫发现系统存在Druid未授权访问&#xff0c;会引发泄露系统敏感信息&#xff0c;漏洞链接为ip:端口/druid/index.html&#xff0c;可以清楚的查看数据库的相关连接信息&#xff0c;如下图所示&#xff1a; 漏洞修复 1、关闭Druid监控页面 在Druid的配…