Web技术与Apache网站部署

一、Web 基础与 HTTP 协议

1.1 静态网页与动态网页

静态网页

  • 定义 :由纯 HTML、CSS、JavaScript 构成,文件扩展名为 .htm.html。内容在服务器生成后固定不变,仅通过客户端脚本(如 JS)实现视觉动态效果(如动画)。

  • 特点:加载速度快、安全性高,但维护成本高,无法根据用户请求动态生成内容。

  • 适用场景:企业官网、产品展示页等内容稳定的场景。

动态网页

  • 定义 :结合后端编程语言(如 PHP、Python、Java)与数据库技术生成,扩展名通常为 .php.jsp.aspx 等。URL 中常包含 ? 符号标识动态参数。

  • 特点:内容实时变化,支持用户交互(如登录、搜索),但服务器负载较高。

  • 技术分类

    • CGI:早期动态网页技术,效率低,逐渐被淘汰。

    • 现代语言:PHP(语法简洁,适合快速开发)、JSP(基于 Java,适合企业级应用)、Python(跨平台,生态丰富)。


1.2 HTTP 协议核心机制

HTTP 方法对比

|------------|------------------------------|------------|------------------|
| 方法 | 特点 | 安全性 | 适用场景 |
| GET | 参数暴露于 URL,长度受限(≤2048 字符),可缓存 | 低(敏感信息易泄露) | 获取数据(如搜索) |
| POST | 参数隐藏于请求体,无长度限制,不可缓存 | 较高 | 提交敏感数据(如登录、表单) |
| PUT | 上传资源至服务器 | 需身份验证 | RESTful API 资源更新 |
| DELETE | 删除服务器资源 | 需身份验证 | RESTful API 资源删除 |

HTTP状态码分类

|---------|--------|----------------------|---------------|
| 状态码 | 类别 | 常见示例 | 含义 |
| 1xx | 信息提示 | 100(继续) | 请求已接收,需继续处理 |
| 2xx | 成功 | 200(OK)、206(部分内容) | 请求处理成功 |
| 3xx | 重定向 | 301(永久跳转)、403(禁止访问) | 资源位置变更,需客户端跳转 |
| 4xx | 客户端错误 | 404(资源未找到)、403(禁止访问) | 请求错误或权限不足 |
| 5xx | 服务器错误 | 500(内部错误)、503(服务不可用) | 服务器处理请求失败 |

HTTP 请求流程
  1. 客户端请求

    • 请求行:包含方法(GET/POST)、URL、协议版本。

    • 请求头 :附加信息(如 HostUser-AgentAccept-Language)。

    • 请求体:POST 方法提交的参数(如表单数据)。

  2. 服务器响应

    • 状态行:协议版本、状态码(如 200)、状态描述。

    • 响应头 :服务器信息(如 ServerContent-Type)。

    • 响应体:HTML 页面或其他资源。


二、DNS 与域名解析

2.1 域名结构

  • 格式主机名.二级域名.顶级域名(如 www.baidu.com)。

  • 层级解析 :从右向左,顶级域名(.com)→ 二级域名(baidu)→ 主机名(www)。

  • 管理机制 :根服务器(全球 13 台)→ 顶级域名服务器(.com.cn)→ 权威 DNS 服务器。

2.2 Hosts 文件

  • 作用:本地域名解析,优先级高于 DNS。

  • 修改方法

    • WindowsC:\Windows\System32\drivers\etc\hosts

    • Linux/etc/hosts

  • 应用场景 :开发测试(如将 www.test.com 指向 127.0.0.1)。

2.3 DNS 解析类型

  • 静态映射:每台设备独立维护映射表(如 Hosts 文件)。

  • 动态映射:通过 DNS 服务器集中解析,支持递归查询与迭代查询。


三、Apache HTTP 服务器部署

3.1 Apache 核心特点

  • 开源跨平台:支持 Linux、Windows、Unix。

  • 模块化设计 :通过动态加载模块(如 mod_rewrite)扩展功能。

  • 高性能与安全:支持高并发,定期更新漏洞补丁。

3.2 源码编译安装步骤

1.依赖安装

dnf install -y apr-util-devel pcre-devel gcc make

2.解压与配置:

tar zxf httpd-2.4.48.tar.gz -C /usr/src
cd /usr/src/httpd-2.4.48
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite

3.编译与安装

make && make install

4.优化路径:

ln -s /usr/local/httpd/bin/* /usr/local/bin

5.系统服务集成

  • 创建 httpd.service文件,配置Systemd管理。
  • 启用服务:

systemctl enable httpd --now


四、虚拟主机配置

4.1 基于域名的虚拟主机

实现步骤

  1. DNS解析: 将多个域名(如 www.kgc.comwww.kcce.com)指向同一IP。
  2. 目录准备:

mkdir -p /var/www/html/{kgccom,kccecom}
echo "<h1>kgc</h1>" > /var/www/html/kgccom/index.html

3.配置文件

<VirtualHost *:80>
DocumentRoot "/var/www/html/kgccom"
ServerName www.kgc.com
ErrorLog "logs/kgc_error.log"
</VirtualHost>

4.加载配置:在 httpd.conf 中添加 Include conf/extra/httpd-vhosts.conf。

4.2 基于 IP 与端口的虚拟主机

  • 基于 IP:每个虚拟主机绑定独立 IP,需服务器配置多网卡。

  • 基于端口 :通过不同端口(如 80 和 8080)区分服务,需在配置中指定 Listen 指令。

五、核心配置文件解析

5.1 httpd.conf 全局配置项

  • ServerRoot :Apache 安装目录(如 /usr/local/httpd)。

  • Listen:监听端口(默认 80)。

  • DocumentRoot :网站根目录(如 /usr/local/httpd/htdocs)。

  • DirectoryIndex :默认首页(如 index.html index.php)。

5.2 目录权限控制

<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

  • Options: 控制目录行为(如FollowSymLinks允许符号链接)
  • Require :访问权限(granted允许所有用户)
相关推荐
吃瓜群众i几秒前
Javascript的核心知识点-函数
前端·javascript
zhujiaming几秒前
鸿蒙端应用适配使用开源flutter值得注意的一些问题
前端·flutter·harmonyos
前端付豪1 分钟前
8、鸿蒙动画开发实战:做一个会跳舞的按钮!(附动效示意图)
前端·后端·harmonyos
前端付豪2 分钟前
3、构建你的第一个鸿蒙组件化 UI 页面:实现可复用的卡片组件(附实战代码)
前端·后端·harmonyos
言诺意深4 分钟前
leaflet地图库-初始化(1)
前端
前端付豪4 分钟前
7、打造鸿蒙原生日历组件:自定义 UI + 数据交互(附实操案例与效果图)
前端·后端·harmonyos
没有鸡汤吃不下饭4 分钟前
解决vite+vue3运行项目打开页面跳转很慢打不开需要刷新问题:optimized dependencies change. reloading
前端·vue.js·vite
ZhZhXuan4 分钟前
点击按钮没反应?其实是样式bug
前端·css
言诺意深5 分钟前
使用 Vue2 + Leaflet 快速搭建一个交互式地图(含标记、圆形、多边形)2
前端
yede5 分钟前
使用Gird布局实现瀑布流效果
前端·javascript·css