[1. Web 基础概念](#1. Web 基础概念)
[1.1 Web 是什么](#1.1 Web 是什么)
[1.2 B/S 架构模型](#1.2 B/S 架构模型)
[1.3 Web 请求与响应流程](#1.3 Web 请求与响应流程)
[1.4 静态 vs 动态资源](#1.4 静态 vs 动态资源)
[1.5 Web 发展阶段](#1.5 Web 发展阶段)
[1.6 动手实验:最小 Web 服务](#1.6 动手实验:最小 Web 服务)
[2. HTTP 与 HTTPS 协议](#2. HTTP 与 HTTPS 协议)
[2.1 HTTP vs HTTPS](#2.1 HTTP vs HTTPS)
[2.2 HTTPS 握手流程](#2.2 HTTPS 握手流程)
[2.3 HTTP 状态码速查](#2.3 HTTP 状态码速查)
[3. Nginx 概述](#3. Nginx 概述)
[3.1 Nginx 介绍](#3.1 Nginx 介绍)
[3.2 Nginx vs Apache](#3.2 Nginx vs Apache)
[3.3 Nginx 进程结构](#3.3 Nginx 进程结构)
[4. 安装 Nginx](#4. 安装 Nginx)
[5. Nginx 配置核心知识](#5. Nginx 配置核心知识)
[5.1 全局配置](#5.1 全局配置)
[5.2 I/O 事件配置](#5.2 I/O 事件配置)
[5.3 HTTP 配置](#5.3 HTTP 配置)
[5.4 基础 server 配置](#5.4 基础 server 配置)
[6. Nginx 虚拟主机与常用功能](#6. Nginx 虚拟主机与常用功能)
[6.1 访问状态统计](#6.1 访问状态统计)
[6.2 基于授权的访问控制](#6.2 基于授权的访问控制)
[6.3 基于客户端 IP 控制](#6.3 基于客户端 IP 控制)
[6.4 基于域名的虚拟主机](#6.4 基于域名的虚拟主机)
[6.5 基于 IP/端口的虚拟主机](#6.5 基于 IP/端口的虚拟主机)
[7. 总结与展望](#7. 总结与展望)
前言
在网站搭建、运维或开发工作中,Web 基础知识 和Nginx 配置几乎是必修课。很多人一提起 Web 只知道"浏览器能打开页面",一提起 Nginx 只知道"高性能"。本篇文章就带你从零开始,弄懂 Web 的基本原理、HTTP/HTTPS 协议,再到 Nginx 的概念、安装和配置,最后掌握常见的虚拟主机场景。
1. Web 基础概念
1.1 Web 是什么
Web(World Wide Web,万维网)是运行在互联网之上的超文本信息系统,通过 HTTP/HTTPS 协议实现浏览器与服务器之间的交互。
三大特性:
-
分布式:资源分布在全球各地的服务器上
-
跨平台:只要有浏览器就能访问
-
无状态:每次请求独立(可借助 Cookie/Session 保持状态)
1.2 B/S 架构模型
Web 采用 **B/S(Browser/Server)**架构:
-
Browser(浏览器):用户入口,发送请求、渲染页面
-
Server(服务器):接收请求并返回资源或动态内容
1.3 Web 请求与响应流程
-
用户输入 URL
-
DNS 解析域名为 IP 地址
-
建立 TCP 连接(3 次握手)
-
浏览器发起 HTTP 请求
-
服务器处理静态或动态资源
-
服务器返回 HTTP 响应报文
-
浏览器解析 HTML/CSS/JS 渲染页面
1.4 静态 vs 动态资源
-
静态资源:HTML、CSS、JS、图片、视频(直接返回,速度快)
-
动态资源:需服务器端程序生成(PHP/Python/Java),支持个性化和交互
1.5 Web 发展阶段
-
Web 1.0:静态页面为主
-
Web 2.0:交互式、AJAX 普及
-
Web 3.0:语义网、去中心化、区块链等概念
1.6 动手实验:最小 Web 服务
-
安装 Nginx
-
在服务器根目录创建
index.html
静态页面 -
在浏览器访问服务器地址,体验完整请求与响应
2. HTTP 与 HTTPS 协议
2.1 HTTP vs HTTPS
-
HTTP:明文传输,不安全
-
HTTPS:HTTP + SSL/TLS 加密,防止中间人攻击
2.2 HTTPS 握手流程
客户端与服务器交换证书、协商加密算法、生成临时密钥,然后通过加密通道传输后续数据。
2.3 HTTP 状态码速查
类别 | 范围 | 含义(大白话) |
---|---|---|
1xx | 100--199 | 请求处理中,"稍等" |
2xx | 200--299 | 请求成功,"东西拿到了" |
3xx | 300--399 | 重定向,"资源搬家了" |
4xx | 400--499 | 客户端错误,"你请求有问题" |
5xx | 500--599 | 服务器错误,"服务器崩了" |
3. Nginx 概述
3.1 Nginx 介绍
Nginx(读作"Engine X")是一款高性能的 HTTP 和反向代理服务器,特点:
-
占用内存少、支持高并发(单机可达数万连接)
-
支持静态资源服务、反向代理、负载均衡
-
稳定可靠、开源免费
3.2 Nginx vs Apache
对比项 | Nginx | Apache |
---|---|---|
架构 | 事件驱动 | 基于进程 |
内存消耗 | 更低 | 相对较高 |
热部署 | 支持 | 不支持 |
静态文件处理 | 高效 | 一般 |
反向代理 | 优势明显 | 一般 |
3.3 Nginx 进程结构
Nginx 采用事件驱动的多 Worker 进程模型,同时处理大量并发请求而不会占用太多资源。
4. 安装 Nginx
推荐使用官方包或脚本安装,安装完成后用 nginx -v
查看版本。
5. Nginx 配置核心知识
5.1 全局配置
worker_processes 4; # 工作进程数量(核心数*2)
error_log logs/error.log;
pid logs/nginx.pid;
5.2 I/O 事件配置
events {
use epoll; # Linux 推荐 epoll 提高性能
worker_connections 4096; # 每进程最大连接数
}
5.3 HTTP 配置
在 http {}
中设置日志、端口、字符集、虚拟主机等:
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
}
5.4 基础 server 配置
server {
listen 80;
server_name www.kgc.com;
charset utf-8;
location / {
root html;
index index.html index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
6. Nginx 虚拟主机与常用功能
6.1 访问状态统计
location /status {
stub_status on;
access_log off;
}
浏览器访问 http://服务器IP/status
查看当前连接状态。
6.2 基于授权的访问控制
yum install -y httpd-tools
htpasswd -c /usr/local/nginx/passwd.db zhangsan
nginx.conf
添加:
auth_basic "secret";
auth_basic_user_file /usr/local/nginx/passwd.db;
6.3 基于客户端 IP 控制
allow 192.168.114.129;
deny all;
6.4 基于域名的虚拟主机
在 /etc/hosts
中添加:
192.168.10.21 www.xxsyyz.com www.xxsyyz2.com
再在 nginx.conf
中配置不同 server_name
和根目录,实现多站点。
6.5 基于 IP/端口的虚拟主机
Nginx 支持按 IP、按端口监听多个站点:
server {
listen 192.168.10.21:8080;
server_name www.xxsyyz.com;
root /var/www/html/cs1;
}
server {
listen 192.168.10.21:8888;
server_name www.xxsyyz2.com;
root /var/www/html/cs2;
}
7. 总结与展望
本文从 Web 基础讲起,到 HTTP/HTTPS 协议、状态码,再到 Nginx 的概念、安装与配置、虚拟主机等场景,基本覆盖了初学者需要掌握的核心知识点。 掌握了这些,你就可以自己搭建一个完整的 Web 服务、配置多站点,甚至进行性能监控和访问控制。