后浪笔记一零二四

CGI(Common Gateway Interface)、FastCGI、SCGI(Simple Common Gateway Interface)以及WSGI(Web Server Gateway Interface)都是用于Web服务器与后端应用程序之间通信的技术或标准。它们各自有不同的特点和应用场景,下面是对这些技术的简要介绍:

  1. CGI (Common Gateway Interface)

CGI是一种标准协议,允许Web服务器执行外部程序,并将这些程序的结果返回给客户端。

当一个请求到达时,Web服务器会为每个请求启动一个新的进程来处理该请求。

这种方法简单但效率较低,因为每次请求都会产生新的进程开销。

优点:实现简单,兼容性好。

缺点:性能较差,不适合高并发场景。

  1. FastCGI

FastCGI旨在解决CGI中每个请求都需创建新进程的问题。

先启动(pre-fork)一大堆子进程,然后等待请求的到来。这些子进程处理完请求后,并不会退出,而是继续等待下一个请求。

优点:支持更高并发量,减少了频繁创建销毁进程的成本。

缺点:配置相对复杂一些。

  1. SCGI (Simple Common Gateway Interface)

SCGI是另一种尝试改进CGI性能的方法,它提供了一个比FastCGI更简单的接口。

与FastCGI类似,动态创建服务器子进程用于处理更多请求(处理完毕将转入睡眠),直至达到配置的子进程上限。

优点:较FastCGI更为简单,易于实现。

缺点:不如FastCGI普及,支持度可能有限。

  1. WSGI (Web Server Gateway Interface)

WSGI是一个Python Web应用的标准接口,定义了Web服务器如何与Python web应用程序进行交互。

它不仅指定了环境变量和输入输出流,还定义了一套调用约定,使得不同类型的Web服务器和框架能够更好地协同工作。

优点:标准化了Python web应用开发流程,促进了组件间的互操作性。

缺点:特定于Python语言生态系统内使用。

总结来说,CGI是最原始且最直接的解决方案,但由于其性能问题,在现代Web应用中已较少使用; FastCGI提供了更好的性能表现,适用于需要处理大量并发请求的情况; SCGI则试图以更简洁的方式达到类似目的; 而WSGI则是针对Python社区的具体需求设计的接口规范,极大地推动了基于Python的web开发。

ngx_http_fastcgi_module

默认开启,编译时,可以使用 –without-http_fastcgi_module 参数禁用它。

ngx_http_scgi_module

默认开启,编译时,可以使用 –without-http_scgi_module 参数禁用它。

ngx_http_uwsgi_module

默认开启,编译时,可以使用 –without-http_uwsgi_module 参数禁用它。


本文发表于 0001-01-01,最后修改于 0001-01-01。

本站永久域名「 jiavvc.top 」,也可搜索「 后浪笔记一零二四 」找到我。


上一篇 « 下一篇 »

赞赏支持

请我吃鸡腿 =^_^=

i ysf

云闪付

i wechat

微信

推荐阅读

Big Image