选择什么Web服务器界面?

时间:2010-02-25 17:22:27

标签: c++ web-services interface webserver

我正在规划一个用C ++编写的Web服务。目标是能够选择或多或少的任何Web服务器来驱动服务。为了实现这一点,我显然必须选择Web服务器和应用程序之间的标准化接口。

我听说的众所周知的方法是:

  • CGI
  • FastCGI
  • WSGI

现在,由于我完全没有使用这些界面的经验,我真的不知道该选择什么。我确实有一些要求。

  • 需要相当快(从我听说过,这几乎排除了CGI)
  • 应该可以在纯C / C ++环境中轻松使用(例如,应该有可用的库)
  • 必须为HTTP 1.1提供支持(dunno,如果重要的话)

感谢您的任何建议:)

3 个答案:

答案 0 :(得分:6)

WSGI适用于Python应用程序;如果你的语言是C ++,那么这不是一个选择。

FCGI是一个很好的方式。 FCGI可以作为标准CGI调用,便于调试和测试,然后在生产中作为FCGI运行。

CGI与FCGI的表现在很大程度上取决于您尝试做什么以及您期望的流量。具有大量启动开销的任务最有利于FCGI; FCGI控制器可以配置为产生额外的进程来处理重负载。

实际上,任何Web服务器都将使用最少的配置运行CGI;您可能需要一个额外的模块来运行FCGI,但这取决于Web服务器。

http://en.wikipedia.org/wiki/FastCGI

答案 1 :(得分:1)

CGI没有什么“慢”它只是不可扩展。 FCGI具有更高的可扩展性,但您无法在该环境中轻松开发,因为该过程使用寿命长,并且使调试成为一场噩梦。在这个抽象级别,HTTP / 1.1不是问题。如果您担心速度,此时没有任何分析或测试,您不应该,但这些接口与速度无关,而是兼容性。速度取决于您运行代码的容器。

答案 2 :(得分:1)

CGI / fastCGI不应该有太多问题。如果你实现fastcgi,你的程序仍然可以作为普通的CGI运行。并且大多数Web服务器都支持cgi / fastcgi。