理解nginx 和 php(fastcgi)的关系

前言:

在配置nginx和php(fastcgi)的时候,感觉云里雾里的。总是依葫芦画瓢,不能举一反三。于是想了解什么他们的关系。写过近三年的.net程序也没有关心iis和 aspnet_isapi.dll之间的关系,因为iis太不需要配置了。

何为nginx,和iis做的是同样的事情,那是干什么事情呢。他们都是http服务器 ,也称web服务器。

何为fastcgi ,稍后介绍,可以充当cgi的功能但比cgi的效率高约5倍,

什么是WEB服务器(iis、nginx、apache……)

WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。
(1)应用层使用HTTP协议。
(2)HTML文档格式。
(3)浏览器统一资源定位器(URL)。
WWW代表万维网的意思
WWW 是 Internet 的多媒体信息查询工具,是 Internet 上近年才发展起来的服务,也是发展最快和目前用的最广泛的服务。正是因为有了WWW工具,才使得近年来 Internet 迅速发展,且用户数量飞速增长。

CGI,FastCGI

CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。

CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。

CGI环境变量列表

CGI详细介绍

FastCGI is a fast, open, and secure Web server interface that solves the performance problems inherent in CGI, without introducing the overhead and complexity of proprietary APIs (Application Programming Interfaces).

Fast CGI的白皮书

web服务器和CGI的关系

Web服务器可以解析(handles)HTTP协议。当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应 (response),例如送回一个HTML页面。为了处理一个请求(request),Web服务器可以响应(response)一个静态页面或图片,进行页面跳转(redirect),或者把动态响应(dynamic response)的产生委托(delegate)给一些其它的程序例如CGI脚本,JSP(JavaServer Pages)脚本,servlets,ASP(Active Server Pages)脚本,服务器端(server-side)JavaScript,或者一些其它的服务器端(server-side)技术。无论它们的目的如何,这些服务器端(server-side)的程序通常产生一个HTML的响应(response)来让浏览器可以浏览。

待充分理解了,再来补充


原文地址:https://www.cnblogs.com/ericwen/p/1496388.html