【问题标题】:What web server interface to choose?选择什么网络服务器接口?
【发布时间】:2010-02-25 17:22:26
【问题描述】:

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

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

  • CGI
  • FastCGI
  • WSGI

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

  • 需要相当快(据我所知,这几乎排除了 CGI)
  • 应该可以在纯 C/C++ 环境中轻松使用(例如,应该有可用的库)
  • 必须提供对 HTTP 1.1 的支持(不知道是否重要)

感谢您的任何建议:)

【问题讨论】:

    标签: c++ web-services interface webserver


    【解决方案1】:

    WSGI 用于 Python 应用程序;如果您的语言是 C++,这不是一个选项。

    FCGI 是一个不错的选择。 FCGI可以作为标准CGI调用,方便调试和测试,然后在生产中作为FCGI运行。

    CGI 与 FCGI 的性能在很大程度上取决于您尝试执行的操作以及您期望的流量。具有大量启动开销的任务从 FCGI 中受益最多; FCGI 控制器可以配置为产生额外的进程来处理繁重的负载。

    几乎任何网络服务器都可以以最少的配置运行 CGI;您可能需要一个额外的模块来运行 FCGI,但这取决于 Web 服务器。

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

    【讨论】:

    • 很高兴知道,FCGI 现在是我的首选:p
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-22
        • 1970-01-01
        • 2015-06-03
        • 2014-05-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多