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.com 和 www.kcce.com)指向同一IP。
  2. 目录准备:

mkdir -p /var/www/html/{kgccom,kccecom}
echo "

kgc

" > /var/www/html/kgccom/index.html

        3.配置文件


    DocumentRoot "/var/www/html/kgccom"
    ServerName www.kgc.com
    ErrorLog "logs/kgc_error.log"

        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 目录权限控制


    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted

  • Options:控制目录行为(如 FollowSymLinks 允许符号链接)
  • Require:访问权限(granted 允许所有用户)

你可能感兴趣的:(前端)