微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么要将Web应用程序实现为FastCGI而不是新的Web服务器?

我了解FastCGI在其他网关接口上的性能方面的目的。但是,如果实施FastCGI的库已经需要经过实施安全高效TCP服务的艰辛措施,那为什么不把应用程序写成Web服务器呢?前端Web服务器实现逆向代理的效率比FCGI低吗?还是FCGI的规范比HTTP简单得多?

解决方法

我有一个Web服务器程序,我替换了一个FCGI程序。部分原因是因为程序的要求。它需要在现有的Web服务器下运行,因为这样做不需要额外的配置。

一个要求是能够跟踪可能频繁变化的一些状态值。现有的程序效率不高,可以从外部跟踪这些状态值,并为每个请求重新加载它们。 FCGI程序的一个优点是它是持久的,所以它可以轮询这些状态值,它们将可用并为每个请求做好准备。

我没有实现任何FCGI规范,我只是使用了一个现有的FCGI库,它处理了与我的Web服务器的所有通信。与我写的嵌入式Web服务器的其他应用程序相比,使用FCGI库实现的应用程序相对简单。

FCGI的另一个优点是FCGI应用程序不需要实际驻留在Web服务器可访问的磁盘上。您可以将服务器配置为与其他服务器上的FCGI应用程序的实例建立TCP连接。如果您处于无法直接访问Web服务器的情况,这可能非常有用。用其他方法完成同样的事情可能很麻烦,但FCGI应用程序甚至不需要修改。只需配置服务器,启动您的应用程序在FCGI主机下,你很好去。

FCGI的另一个优点是您可以配置Web服务器以在预定数量的应用程序实例之间分发请求。如果您的Web应用程序通过同时处理每个请求最有效,FCGI是理想的,因为您可以将每个请求转发到单个实例中,并且该实例可以在单个循环中处理每个请求。如果您想要最多2个,3个或n个实例,您需要做的是更改服务器上的值,您可以实现这一点。

所以,FCGI不是最适合每一种情况。这是你遇到的不寻常的要求,FCGI是最有吸引力的时代。

原文地址:https://www.jb51.cc/html/232787.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐