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允许所有用户)
相关推荐
崔庆才丨静觅6 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60617 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了7 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅7 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅7 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅8 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment8 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅8 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊8 小时前
jwt介绍
前端
爱敲代码的小鱼8 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax