独立的Web服务器与Apache/IIS

Dan*_*rić 4 delphi webserver web-applications http

我正在使用win32和web访问开发一个相当复杂的应用程序.服务器端实现是自定义的,它将在我们公司托管.HTTP服务器可以作为独立的Indy(或另一个)HTTP服务器实现,或者更传统地使用Apache/IIS实现.

我想知道独立HTTP服务器与Apache/IIS在安全性或您认为相关的任何其他方面的优点/缺点.

Run*_*ner 5

我会说这取决于你的需求和期望.如果您正在编写一个自定义的纯http服务器,甚至可能支持ISAPI等等,或者您正在编写高度专业化的http服务器/代理/等...这只会缩小专门的任务,这是一个很大的区别.例如,我有专门的代理和专门的ISAPI模块处理框架.我会说的优点并不那么简单.所以专业人士是:

  1. 易于部署.尝试将apache与您的应用程序一起部署到每台计算机上
  2. 更好的性能,更小的内存占用.尝试在低端笔记本电脑上使用apache
  3. 安全性更好.因为你只做狭窄的任务,所以违规的可能性要小得多.Apache做到了这一切,因此违规的可能性要高得多.
  4. 完全控制此类服务器的工作方式并控制代码.如果您需要稍微不同的行为或新功能,那么您就可以获得它.
  5. 如果您像我一样运行ISAPI模块,则可以在单独的进程中对它们进行沙箱化并获得更好的稳定性.如果一个模块/请求崩溃,其他模块/请求不会受到伤害.

缺点:

  1. 写另一个http服务器
  2. 从零学习协议和内部工作
  3. 错误的错误数量和错误的可能性更高,因为代码还没有变得强硬.这需要时间来解决.
  4. 因为你的焦点很窄,所以你不像Apache那样多才多艺.如前所述,不一定是坏的.

我的判决就是这样的.如果您只需要一个普通的http服务器来提供某些内容,并且您将在内部托管,在一台或几台服务器上,请选择Apache.如果你正在制作一个专门的http处理代码片段,它将被安装很多,你需要控制,然后开发自己的.相信我,值得花时间.我现在很高兴,当我们决定同样的事情的时候,我坚持这个.现在我有很多笔记本电脑安装的软件非常复杂,我无法想象必须在每台笔记本电脑上安装Apache.然后将其配置为我需要的工作.

并且Indy(带有所有麻烦和怪癖)已被证明是一个非常稳定的开箱即用的Web服务器.ICS在这里可能是相同的,但我还没有使用它,所以我不能说.设置Indy HTTP服务器非常容易.

只是我的两分钱;)