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


26

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

假设您是刚开始使用SysAd,是WebOps的新手,或者是很少或没有经验丰富的Web Server SysAd支持(现在无法负担)的小团队,您应该如何为您的企业配置和保护Web Server?


您两次提到拥有sysad的好处,这意味着您要针对的不是sysads的人。Surey这样会使您的Q&A超出了适用于sysads等的Server Fault的范围。也许超级用户对此是更好的家?
user9517支持GoFundMonica

8
我对FAQ的阅读被解释为“技术专业人员向系统管理提出问题”。我已经看到技术人员(但不是SysAd)(通常是开发人员)多次问过这种问题,他们通常会严厉地回应而不是实际提供帮助。提出该问题可以作为从何处开始以及他们为什么应尽快聘请真正的SysAd帮助的规范答案的候选人。(并希望永远不必再回答这个特定的问题
。– gWaldo

Answers:


32

开始之前:

有素质的人会为您节省金钱。就像拥有一名优秀的律师(可能是要发誓的NSFW)或一名会计师一样,拥有高质量的SysAd通常可以通过帮助您避免代价高昂的错误来节省金钱。您现在可能没有钱支付专业知识,但是您应该尽快进行这项投资。

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

你应该知道:

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

准备阅读。很多

确定您的需求:

要求

  • 您是在运行一个简单的静态网站(也许具有某些Javascript效果),还是
  • (更有可能)您正在运行恰好具有Web界面的应用程序吗?
  • 您是否有永久数据?(您需要数据库吗?)
  • 是否有用户凭证?还有其他原因需要保护用户和网站之间的连接吗?(SSL)
  • 您正在处理任何形式的付款吗?除了具有SSL要求外,还需要研究其他注意事项(取决于区域)。这些也将根据您使用的付款处理器而有所不同。

确定您的堆栈:

您将如何编写和运行此程序?

  • 平台(Windows,Linux,其他Unix等)
  • 应用程序要求(Ruby / Rails,Python,Perl,PHP,.NET等)
  • 数据库(...)
  • 缓存?(老实说,现在不用担心;要知道这解决了一些问题,并且可能会产生其他问题。这是性能问题,现在您只是在尝试入门。)

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

了解您的产品:

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

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

查找适合您的堆栈的类似文档,文章和博客文章。

安装最低要求:

Apache有很多模块,但是,例如,如果您不打算使用PHP,请不要安装mod-php。

这里还应指出,如果它是Linux服务器,则应避免安装GUI。GUI占用了大量系统资源。

保护网站:

  • 确保最小权限才能运行。这不仅适用于文件系统,还适用于服务和流程
  • 禁用服务器端口以禁用不需要的服务。(再次,仅安装最小版本。)
  • 将应用程序接口限制为内部环境(例如,如果在同一服务器上运行Web应用程序(例如Rails),则将其限制为仅侦听localhost)

结束语:

这只是您要启动并运行网站的开始。这甚至还没有涉及维护服务器的问题或如何处理扩展性的问题(您的项目应该成功),也没有涉及知识渊博的SysAd可以为您解决的其他众多问题。


运行最低限度是至关重要的,但是,什么/如何卸载/禁用/保护可能并不明显。建议公开运行准系统,完全受防火墙保护的计算机,以便仅将特定请求转发/代理到其在专用网络上运行的应用程序服务器,是否可以接受?甚至可以为此建议一个发行版/配置,因为它不必与他们的应用程序使用相同的环境。
卡洛斯·利马

1
这是一个好的开始。您未涵盖的一件事是可重复性。在某些时候,您将超越当前的设置。您设置环境的指示是否可以重复?更好的是,它们是否自动化?您是否保存了所有源软件包,以便可以重新创建环境,还是依赖于外部存储库?您怎么知道什么时候升级?您是否在跟踪适当的指标?您如何报告他们?
toppledwagon

@toppledwagon这些都是不错的地方,但是我正在讲101课程。您提到的所有内容(一致性/配置管理,缩放,监视/指标等)我都会稍后再来。老实说,我宁愿建议使用Systems Pro,而不要研究这些领域。
gWaldo 2013年

3
@toppledwagon到此为止,您需要一个sysadmin。或至少是Sysadmin即服务。
迈克尔·汉普顿
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.