Web 服务器

协议和标准
通过HTTP/HTTPS协议向客户端提供网页内容的软件和硬件。
← 返回词汇表

什么是 Web 服务器?

Web 服务器是接收客户端 HTTP/HTTPS 请求并交付 Web 内容的软件,以及运行该软件的硬件。它可以提供 HTML 页面、图片、样式表、脚本和 API 响应。

Web 服务器如何工作

HTTP Request/Response Cycle:

Client (Browser) Web Server

│ │

│──── HTTP Request ──────────►│

│ GET /index.html │

│ Host: example.com │

│ │

│ Process Request

│ ├── Parse URL

│ ├── Check permissions

│ ├── Locate resource

│ └── Prepare response

│ │

│◄─── HTTP Response ──────────│

│ 200 OK │

│ Content-Type: text/html │

│ <html>...</html> │

│ │

常见 Web 服务器软件

服务器市场份额适用场景
nginx~34%高并发、反向代理
Apache~31%灵活配置、.htaccess
Cloudflare~21%CDN、边缘计算
LiteSpeed~12%WordPress 托管
IIS~6%Windows/.NET 环境

Web 服务器的功能

功能说明
提供静态文件HTML、CSS、JS、图片
TLS/SSL 终止HTTPS 加密
反向代理转发到后端服务器
负载均衡分配流量
缓存减少后端负载
压缩Gzip/Brotli 编码
访问控制身份认证、IP 过滤
日志记录请求日志和错误日志

服务器配置示例

# nginx - Virtual host configuration

server {

listen 80;

listen 443 ssl;

server_name example.com;

root /var/www/example;

index index.html;

ssl_certificate /etc/ssl/cert.pem;

ssl_certificate_key /etc/ssl/key.pem;

location / {

try_files $uri $uri/ =404;

}

location /api {

proxy_pass http://localhost:3000;

}

}

# Apache - .htaccess example

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

# Enable compression

<IfModule mod_deflate.c>

AddOutputFilterByType DEFLATE text/html text/css application/javascript

</IfModule>

Web 服务器架构

Modern Web Stack:

Internet

┌─────────────┐

│ CDN/WAF │

└─────────────┘

┌─────────────┐

│ Load Balancer│

└─────────────┘

│ │

┌─────┘ └─────┐

▼ ▼

┌───────────┐ ┌───────────┐

│ Web Server│ │ Web Server│

│ (nginx) │ │ (nginx) │

└───────────┘ └───────────┘

│ │

└────────┬────────┘

┌─────────────┐

│ App Server │

│ (Node/Python)│

└─────────────┘

┌─────────────┐

│ Database │

└─────────────┘

服务器识别

检测方式可获信息
Server 标头软件名称和版本
响应标头技术栈线索
错误页面默认服务器模板
时序特征服务器特有行为
文件扩展名平台指示信息

安全注意事项

1. 隐藏版本信息:从标头中移除服务器版本

2. 禁用目录列表:防止枚举文件

3. 正确配置 TLS:使用现代协议和强密码套件

4. 限制请求大小:防止 DoS 攻击

5. 设置安全标头:CSP、HSTS、X-Frame-Options

6. 定期更新:及时修补漏洞

性能优化

技术优势
Keep-alive复用连接
Gzip/Brotli缩小响应
静态缓存减少磁盘 I/O
Worker 调优处理更多并发用户
HTTP/2多路复用请求

最佳实践

1. 按需求选择:nginx 适合代理,Apache 侧重灵活性

2. 分离静态与动态内容:静态内容交给 CDN,动态内容交给服务器

3. 监控资源:CPU、内存和连接数

4. 实施缓存:浏览器、代理和服务器端缓存

5. 配置日志:使用结构化日志进行分析

6. 规划扩展:采用负载均衡和水平扩展

Web 服务器是 Web 基础设施的基础,负责可靠、高效地向用户交付内容。

将知识付诸实践

使用 DomScan 的 API 检查域名可用性、健康状态等。