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允许所有用户)
相关推荐
香蕉可乐荷包蛋1 小时前
浅入ES5、ES6(ES2015)、ES2023(ES14)版本对比,及使用建议---ES6就够用(个人觉得)
前端·javascript·es6
未来之窗软件服务2 小时前
资源管理器必要性———仙盟创梦IDE
前端·javascript·ide·仙盟创梦ide
liuyang___3 小时前
第一次经历项目上线
前端·typescript
西哥写代码3 小时前
基于cornerstone3D的dicom影像浏览器 第十八章 自定义序列自动播放条
前端·javascript·vue
清风细雨_林木木3 小时前
Vue 中生成源码映射文件,配置 map
前端·javascript·vue.js
FungLeo3 小时前
node 后端和浏览器前端,有关 RSA 非对称加密的完整实践, 前后端匹配的代码演示
前端·非对称加密·rsa 加密·node 后端
不灭锦鲤4 小时前
xss-labs靶场第11-14关基础详解
前端·xss
不是吧这都有重名4 小时前
利用systemd启动部署在服务器上的web应用
运维·服务器·前端
霸王蟹4 小时前
React中巧妙使用异步组件Suspense优化页面性能。
前端·笔记·学习·react.js·前端框架
Maỿbe4 小时前
利用html制作简历网页和求职信息网页
前端·html