云与基础设施安全

服务器 (Server)

约 5 分钟阅读

什么是服务器

服务器 (Server) 是通过网络向其他计算机 (客户端) 提供服务和数据的计算机或软件。「Server」一词来源于「serve (服务)」,服务器接收请求并返回处理结果。

当你在浏览器中输入 URL 时,其背后是 Web 服务器接收请求,并返回 HTML 文件、图片等内容。邮件收发、域名解析、数据库查询,几乎所有互联网服务的背后都有服务器在支撑。

「服务器」一词既可以指硬件 (物理机器),也可以指软件 (Apache、Nginx 等服务器软件),具体含义取决于上下文。一台物理机器上同时运行多个服务器软件也是很常见的做法。

服务器的类型

Web 服务器
接收 HTTP/HTTPS 请求,返回 HTML、CSS、JavaScript、图片等网页内容。Apache、Nginx、IIS 是常见代表。除了分发静态文件,也可用作反向代理和负载均衡器。
邮件服务器
处理邮件的发送与接收。发送使用 SMTP,接收使用 POP3 或 IMAP 协议。Postfix、Microsoft Exchange、Gmail 后端等都属于此类。
DNS 服务器
将域名解析为 IP 地址。分为权威 DNS 服务器 (保存域名的官方记录) 和缓存 DNS 服务器 (临时存储查询结果)。
数据库服务器
专门处理数据的存储、检索和更新。MySQL、PostgreSQL、MongoDB、Redis 是常见代表。作为 Web 应用的后端,管理用户信息、商品数据等。
文件服务器
在网络上提供文件的共享与保存。企业内部的共享文件夹和 NAS (Network Attached Storage) 就属于这一类。

实际运维中,一台服务器可能承担多种角色,也可能一种角色由数百台服务器分布式处理。大型 Web 服务通常将 Web 服务器、应用服务器和数据库服务器分离,各自独立地横向扩展。

物理服务器与云的对比

服务器的运维形态大致分为三种。

本地部署 (On-Premises)
在自有的服务器机房或数据中心部署、运维物理服务器。从硬件选型、操作系统安装、网络配置到散热与供电管理,全部由自己负责。前期投资大,服务器采购需要数周到数月,但可以完全掌控数据的物理所在地。
云 (IaaS/PaaS)
使用 AWS、Azure、GCP 等云服务商提供的虚拟服务器。几分钟即可启动,并能根据负载自动横向扩展。按量付费因而无需前期投资,但长期运行时也存在比本地部署更贵的情况。
混合部署
结合本地部署和云的架构。敏感数据放在本地,波动的负载放在云上,根据需求灵活分配。

随着云的普及,「不持有服务器」这一选项也在扩大。在无服务器架构 (如 AWS Lambda) 中,代码的执行环境由云服务商管理,开发者无需意识到服务器的存在即可构建应用。不过其背后仍有服务器在运行,「无服务器」是指管理责任的转移,而非服务器的消失。

服务器安全基础

服务器始终连接着互联网,因此是攻击者眼中的绝佳目标。基本的安全措施一旦疏忽,就会直接导致数据泄露或服务中断。

  • 操作系统与软件的更新:及时应用安全补丁。放任已知漏洞是最大的风险。应建立自动更新机制,把补丁应用的延迟降到最低。
  • 防火墙配置:仅开放必要的端口,封锁对未使用服务的访问。仅仅把 SSH 从 22 端口改为自定义端口,就能大幅减少自动扫描带来的攻击。
  • 访问控制:禁用 root 登录,把拥有 sudo 权限的用户降到最少,贯彻 IAM 的最小权限原则。
  • 日志监控:定期检查访问日志、认证日志和错误日志,及早发现可疑活动。借助 SIEM 工具做自动分析也很有效。
  • 备份:遵循 3-2-1 规则定期备份。作为勒索软件的对策,保留离线备份不可或缺。

服务器选型的实务判断

服务器的选型不仅要看技术要求,还要把业务上的制约一并纳入判断。

  • 流量规模:月访问量数千 PV 的小型网站,用共享主机或静态网站托管就足够了。若超过每月数百万 PV,就需要与 CDN 配合以及自动扩展的设计。
  • 可用性要求:能否容忍停机会改变整个架构。99.9% (年停机约 8.7 小时) 与 99.99% (年停机约 52 分钟) 之间,冗余化的成本差异巨大。
  • 数据驻留:受 GDPR 或个人信息保护法的要求,若数据必须保存在特定国家或地区之内,就需要慎选云的区域,或者考虑本地部署。
  • 运维能力:是否有具备服务器管理专业知识的人员。选择托管服务或无服务器可以减轻运维负担,但定制的自由度会下降。

「默认选云」并非总是最优解。对于可预测的稳定负载,预留实例或专用服务器可能更具成本效益。应在明确需求之后,再比较多个方案。

常见误解

服务器必须是特殊的高性能计算机
从技术上讲,家用电脑甚至树莓派都可以充当服务器。「服务器」描述的是网络角色,而非硬件规格。商业环境使用服务器级硬件是为了可靠性和冗余。
迁移到云就不需要管理服务器了
使用 IaaS (如 EC2) 时,操作系统补丁和安全配置仍是用户的责任。即使使用 PaaS 和无服务器,应用层安全、访问控制和监控也需要用户管理。正确理解<a href='/glossary/shared-responsibility-model'>共享责任模型</a>至关重要。
无服务器意味着没有服务器
无服务器是指云服务商管理服务器。背后仍有物理服务器在运行。这个术语描述的是开发者无需处理服务器配置和扩展的运维模式。
分享

相关术语

相关文章