Cent OS-7的Apache服务配置

WWW是什么?

WWW(World Wide Web,万维网)是一个全球性的信息空间,其中的文档和其他资源通过URL标识,并通过HTTP或其他协议访问。万维网是互联网的一个重要组成部分,但它并不是互联网的全部。互联网是一个全球性的计算机网络,而万维网则是通过互联网访问的一个庞大信息资源网络。

主要特点和功能

  1. 超文本和超链接:万维网的核心技术之一是超文本标记语言(HTML),它允许创建包含超链接的文档。超链接使得用户可以从一个文档跳转到另一个文档,无论这些文档是否存储在同一台计算机上。
  2. 客户端/服务器架构:万维网采用了客户端/服务器架构。用户通过浏览器(客户端)访问存储在服务器上的网页和其他资源。
  3. 统一资源定位符(URL):URL是万维网上资源的唯一标识符。它包含了资源的位置信息,使得浏览器能够找到并显示该资源。
  4. 超文本传输协议(HTTP):HTTP是万维网上用于客户端和服务器之间通信的协议。它定义了如何通过互联网请求和传输网页和其他资源。

API是什么?

API(Application Programming Interface,应用程序编程接口)是一组定义和协议,用于构建和集成软件应用程序。API允许不同的软件组件在没有人为干预的情况下相互通信。它是一组代码接口,提供给开发者使用,以便他们能够轻松地访问某些功能或数据,而无需了解其内部实现细节。

API的特点和好处

  1. 抽象化:API将复杂的操作封装成简单的函数或方法,使得开发者无需关注底层实现细节,只需调用这些接口即可完成所需的功能。
  2. 重用性:API提供了标准化的接口,使得相同的功能可以在不同的应用程序中被重复使用,从而提高开发效率。
  3. 模块化:API促进了软件的模块化设计,使得系统更易于维护和扩展。
  4. 安全性:通过API,系统可以控制外部访问,确保只有授权的用户或应用才能访问特定的数据或功能。

API的工作原理

API的工作原理可以通过一个银行的例子来形象地理解。假设你有一个银行账户,你可以通过银行的API来查询余额、转账等操作。在这个过程中,API充当了你和银行系统之间的中介。你发送一个请求(例如查询余额),API接收到请求后,会与银行的内部系统进行交互,获取到所需的信息,然后将结果返回给你。

API的类型

API可以分为多种类型,包括但不限于:

  1. 操作系统API:如Windows API、Linux系统调用等,提供操作系统级别的功能。
  2. 编程语言API:如Java的String类、Python的内置函数等,提供编程语言内置的功能。
  3. 第三方库API:如libxml2、CURL等,提供第三方库的功能。
  4. Web API:如RESTful API、SOAP Web服务等,提供通过网络访问的功

能。

半结构化、结构化和非结构化数据

在数据管理和处理领域,数据通常被分为三种主要类型:结构化数据、半结构化数据和非结构化数据。这些分类基于数据的组织和格式。

结构化数据

结构化数据是指具有固定格式或结构的数据,通常存储在关系型数据库中,以行和列的形式组织。这种数据类型严格遵循预定义的模式,例如数据库表中的字段和类型。结构化数据的优点是可以很容易地被查询和分析,因为它的格式是明确和一致的。

半结构化数据

半结构化数据介于结构化数据和非结构化数据之间。它没有像关系型数据库那样的严格结构,但仍然有一定的组织形式。常见的半结构化数据格式包括XML、JSON和HTML。这些格式允许数据具有层次结构,并且可以包含标签或标记来描述数据的内容和结构。

非结构化数据

非结构化数据是指没有固定格式或结构的数据。这种数据类型包括文本文件、图像、音频和视频等。非结构化数据的处理通常更加复杂,因为它没有预定义的模式或结构。然而,随着大数据和机器学习技术的发展,对非结构化数据的分析和利用变得越来越重要。

Web工作原理

Web(万维网)的工作原理基于客户端/服务器架构,涉及多个组件和技术的协同工作。以下是Web工作原理的详细解释:

1. 用户请求

当用户在浏览器中输入URL或点击超链接时,浏览器会生成一个HTTP请求。这个请求包含了用户想要访问的资源的URL以及其他一些信息,如浏览器类型、请求方法(GET、POST等)。

2. 域名解析

URL中的域名部分会被解析为一个IP地址。这个过程通常由域名系统(DNS)完成。DNS会将人类可读的域名(如www.example.com )转换为计算机可识别的IP地址(如192.0.2.1)。

3. 请求发送

一旦域名被解析为IP地址,浏览器会将HTTP请求发送到对应的Web服务器。这个请求通过互联网传输,可能经过多个中间节点。

4. 服务器处理请求

Web服务器接收到请求后,会根据请求的内容进行处理。服务器可能会:

  • 从文件系统中读取静态网页(如HTML、CSS、JavaScript文件)。
  • 调用应用程序服务器来处理动态内容(如PHP、Python、Java等生成的页面)。
  • 查询数据库以获取所需的数据。

5. 响应生成

服务器处理完请求后,会生成一个HTTP响应。这个响应包含了请求的资源(如HTML文档、图片、视频等)以及一些元数据(如状态码、内容类型、缓存控制等)。

6. 响应发送回客户端

服务器将生成的HTTP响应发送回用户的浏览器。这个响应也会通过互联网传输,可能经过多个中间节点。

7. 浏览器渲染内容

浏览器接收到服务器的响应后,会开始解析和渲染内容。浏览器会将HTML文档解析为DOM(文档对象模型),然后根据CSS样式和JavaScript代码来呈现最终的网页内容给用户。

8. 用户交互

用户可以与网页进行交互,如点击链接、填写表单、滚动页面等。这些操作可能会触发新的HTTP请求,从而重复上述过程。

关键技术

  • HTTP:超文本传输协议,用于客户端和服务器之间的通信。
  • HTML:超文本标记语言,用于定义网页的结构和内容。
  • CSS:层叠样式表,用于控制网页的外观和布局。
  • JavaScript:一种编程语言,用于在客户端执行动态操作。
  • DNS:域名系统,用于将域名解析为IP地址。

Apache HTTP Server

Apache HTTP Server(简称Apache)是Apache软件基金会(The Apache Software Foundation,ASF)开发的一个开放源码的网页服务器。它广泛应用于各种操作系统中,包括Linux、Windows和macOS等。以下是关于Apache HTTP Server的详细信息:

1. 简介

Apache HTTP Server是一个高性能、可扩展的Web服务器,能够处理大量的并发请求。它以其简单、快速、稳定和安全的特点而闻名,并且可以作为代理服务器使用。

2. 特性

Apache HTTP Server具有以下主要特性:

  • 跨平台:可以在多种操作系统上运行,包括Linux、Windows、macOS等。
  • 安全性:提供了多种安全特性,如SSL/TLS加密、访问控制、防火墙支持等。
  • 可扩展性:通过模块化设计,可以添加或移除功能模块,以满足不同的需求。
  • 高性能:优化了性能,能够处理大量的并发请求。
  • 灵活性:支持多种配置选项,可以根据具体需求进行定制。

3. 安装与配置

Apache的主要配置文件位于/etc/httpd/conf/httpd.conf 路径下。用户可以通过编辑这个文件来配置Apache服务的各种参数,如监听端口、文档根目录、访问控制等。

. 常用模块

Apache HTTP Server支持多种模块,以扩展其功能。以下是一些常用的模块:

  • mod_ssl:提供SSL/TLS加密支持,用于保护数据传输的安全性。
  • mod_php:提供PHP语言的支持,用于运行PHP脚本。
  • mod_rewrite:提供URL重写功能,用于实现友好的URL和SEO优化。
  • mod_proxy:提供代理服务器功能,用于转发请求和负载均衡。

5. 日志文件

Apache HTTP Server生成多个日志文件,用于记录服务器的运行状态和错误信息。以下是一些常见的日志文件:

  • access_log:记录所有访问请求的日志文件,位于/var/log/httpd/access_log路径下。
  • error_log:记录所有错误信息的日志文件,位于/var/log/httpd/error_log路径下。

第一部分:基础五步

1,挂载光盘,并写镜像源方便装包

Linux 编写本地仓库

2,寻找我们需要的软件包

yum search http

3,安装软件包

yum install -y httpd

4,关闭selinux

vim /etc/selinux/config

更改配置文件之后再重启centOS-7,再查看setenforce 0

5,关闭防火墙 systemctl stop firewalld.service

可以看到这个时候服务是正常运行着的 systemctl restart httpd

可以做开机自启动 systemctl enable httpd

实验一:显示默认页面

6,访问http://192.168.23.157,能够正常访问

实验二:自定义页面

7,查找配置文件 rpm -qc httpd

8,通过查看配置文件,找网站首页路径

找到默认页面文件名称

9,修改首页文件 vim /var/www/html/index.html,添加任意内容

如果存在无法访问,那么就是权限的问题。需要检查文件权限: 确保/etc/www/html目录及其内容具有适当的权限,以便Apache服务器可以读取它们。您可以使用以下命令来设置正确的权限:

chown -R www-data:www-data /etc/www/html

chmod -R 755 /etc/www/html

修改权限之后,就能够正常访问了

实验三:自定义首页文件路径及首页文件名

1、创建首页文件目录

mkdir /test

2、修改主配置文件

vim /etc/httpd/conf/httpd.conf

修改首页文件路径

119 DocumentRoot "/test1"

120 #DocumentRoot "/var/www/html"

132 <Directory "/test1">

133 #<Directory "/var/www/html">

修改首页文件名

166 DirectoryIndex wangke.html

3、重启服务 systemctl restart httpd

4、编写首页文件内容 vim /test/1.html

5、访问web网站 http://192.168.23.157

实验四:修改端口号

1、修改主配置文件

vim /etc/httpd/conf/httpd.conf

42 Listen 8080

43 #Listen 80

2、重启服务

systemctl restart httpd

3、访问web网站 http://192.168.23.157:8080

实验五:使用域名访问web网站

修改linux下记录域名的文件 vim /etc/hosts

192.168.23.157 www.testtest.com

然后启动文件使配置生效 /etc/init.d/network restart

修改windows下记录域名的文件

C:\Windows\System32\drivers\etc\hosts

192.168.23.157 www.testtest.com

在该文件加上了文本之后,还需要刷新DNS缓存 ipconfig /flushdns

然后就能够能够通过域名访问网站了

解决无法访问Linux下/etc/www/html页面的问题

按照以下步骤进行排查和解决:

  1. 检查文件权限: 确保/etc/www/html目录及其内容具有适当的权限,以便Apache服务器可以读取它们。您可以使用以下命令来设置正确的权限:
    sudo chown -R www-data:www-data /etc/www/html
    sudo chmod -R 755 /etc/www/html
  2. 检查Apache配置: 确保Apache配置文件中正确设置了DocumentRoot和其他相关配置。您可以编辑httpd.conf 文件(通常位于/etc/httpd/conf/或/etc/apache2/目录中),并确保以下配置正确:
    DocumentRoot "/etc/www/html"
    <Directory "/etc/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
    </Directory>
  3. 检查Apache模块: 确保启用了必要的Apache模块,例如mod_rewrite和mod_php。您可以使用以下命令来启用这些模块:
    sudo a2enmod rewrite
    sudo a2enmod php
  4. 检查Apache日志: 查看Apache错误日志以获取有关问题的更多信息。错误日志通常位于/var/log/apache2/error.log 或/var/log/httpd/error_log路径下。您可以使用以下命令来查看错误日志:
    tail -f /var/log/apache2/error.log
  5. 检查SELinux设置: 如果您的系统启用了SELinux,您可能需要调整SELinux设置以允许Apache访问/etc/www/html目录。您可以使用以下命令来临时禁用SELinux:
    sudo setenforce 0
  6. 重启Apache服务器: 在进行上述更改后,重启Apache服务器以应用新的配置:
    sudo systemctl restart apache2
相关推荐
s甜甜的学习之旅3 小时前
Apache POI练习代码
apache
是小崔啊4 小时前
开源轮子 - Apache Common
java·开源·apache
程序猿阿伟9 小时前
《探索 Apache Spark MLlib 与 Java 结合的卓越之道》
java·spark-ml·apache
开心工作室_kaic20 小时前
springboot461学生成绩分析和弱项辅助系统设计(论文+源码)_kaic
开发语言·数据库·vue.js·php·apache
cr.sheeper1 天前
Vulnhub靶场Apache解析漏洞
网络安全·apache
ccc_9wy2 天前
Apache Solr RCE(CVE-2017-12629)--vulhub
apache·solr·lucene·burp suite·vulhub·远程命令执行漏洞rce·cve-2017-12629
ccc_9wy2 天前
Apache Solr RCE(CVE-2019-0193)--vulhub
网络安全·apache·solr·lucene·vulhub·cve-2019-0193·远程命令执行漏洞rce
casual_clover2 天前
搭建一个简单的Web服务器(Apache2.4)
服务器·apache
李三醒2 天前
Apache Tomcat 漏洞CVE-2024-50379条件竞争文件上传漏洞 servlet readonly spring boot 修复方式
spring boot·tomcat·apache
鸠摩智首席音效师2 天前
Apache 如何监听多个端口 ?
apache