运行 Web 服务器的基础知识是什么?

gWa*_*ldo 26 web-server

这是一个关于开始 Web 服务器管理的建议规范问题

假设您是 SysAd 新手、WebOps 新手,或者是一个很少或没有经验 Web 服务器 SysAd 支持的小团队(并且现在负担不起),您应该如何为您的企业配置和保护 Web 服务器?

gWa*_*ldo 32

在我们开始之前:

拥有优质的人会为您省钱。就像拥有一位优秀的律师(可能是 NSFW 的脏话)或会计师一样,拥有优质的 SysAd 可能会为您省钱,通常只是帮助您避免代价高昂的错误。您现在可能没有钱支付专业知识,但您应该尽快进行投资。

这个问题没有简单、单一的答案。如果您要问这个问题,您必须意识到这个问题是专业人士投入多年研究和实践的领域的核心。与开发人员类似的问题是“我如何编写 Web 应用程序?”;当然,我们可以指导您安装 Ruby-on-Rails 和 RoR“Hello World”。虽然这可以“回答问题”,但实际上对您没有帮助。这个 Q/A 试图真正帮助你。

你应该知道:

Web 服务器管理是一个很大的主题,它本质上与许多不同的学科交织在一起。要做好它,您需要对 TCP/IP、主机操作系统、WebServer 应用程序有基本的了解,并对运行应用程序堆栈有一定的了解。

准备阅读。很多

确定您的需求:

要求

  • 您是否正在运行一个普通的静态网站(可能带有一些 Javascript 效果),或者
  • (更有可能)您是否正在运行恰好具有 Web 界面的应用程序?
  • 你有持久数据吗?(你需要数据库吗?)
  • 是否涉及用户凭据?是否还有其他原因需要保护用户和网站之间的连接?(SSL)
  • 您是否处理任何类型的付款?除了具有 SSL 要求之外,您还需要研究其他注意事项(取决于区域)。这些也会因您使用的支付处理器而异。

确定您的堆栈:

你打算如何编写和运行它?

  • 平台(Windows、Linux、其他 Unix 等)
  • 应用要求(Ruby/Rails、Python、Perl、PHP、.NET 等)
  • 数据库 (...)
  • 缓存?(老实说,现在不要担心这个;请注意,这可以解决一些问题,也可以创建其他问题。这是一个性能问题,现在您只是想开始。)

其中一些选择会通知其他人。例如,如果您正在运行一个 .NET 应用程序,您可能想要使用 MSSQL 和 IIS;如果您正在运行 Ruby on Rails,您可能需要一台 Linux 服务器;等等...

了解您的产品:

既然您已经决定了堆栈的外观,您需要了解它。这是您应该花费大部分时间的地方。搜索“配置 [产品]”或“[产品] 管理指南”应该会为您提供大量资源。

例如,如果你在 Ubuntu 上运行 Apache,你绝对应该阅读:

为您的堆栈寻找类似的文档、文章、博客文章。

安装最低限度:

Apache 有大量模块,但如果您不打算使用 PHP(例如),请不要安装 mod-php。

这里还应该说明的是,如果它是 Linux 服务器,则应避免安装 GUI;GUI 会占用大量系统资源。

保护网站:

  • 确保最低限度的运行权限。这不仅适用于文件系统,也适用于服务和进程
  • 为不需要的服务禁用服务器端口。(同样,只安装最小值。)
  • 将应用程序接口限制为内部环境(例如,如果在同一服务器(例如 Rails)上运行 Web 应用程序,则将其限制为仅侦听 localhost)

闭幕式:

这只是您为启动和运行站点而应该做的事情的开始。这甚至没有涉及维护服务器的问题或如何处理扩展问题(如果您的项目成功),也没有涉及知识渊博的 SysAd 将为您解决的任何其他无数问题。

  • @toppledwagon 一旦你到了这一点,你需要一个系统管理员。或者至少是系统管理员即服务。 (3认同)