前言:

在配置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可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。



iis 和 nginx 80端口冲突_运维iis 和 nginx 80端口冲突_运维_02CGI环境变量列表


iis 和 nginx 80端口冲突_网络_03

    SERVER-NAME:运行CGI序为机器名或IP地址。

iis 和 nginx 80端口冲突_网络_03

  SERVER-INTERFACE:WWW服务器的类型,如:CERN型或NCSA型。

iis 和 nginx 80端口冲突_网络_03

  SERVER-PROTOCOL:通信协议,应当是HTTP/1.0。

iis 和 nginx 80端口冲突_网络_03

  SERVER-PORT:TCP端口,一般说来web端口是80。

iis 和 nginx 80端口冲突_网络_03

  HTTP-ACCEPT:HTTP定义的浏览器能够接受的数据类型。

iis 和 nginx 80端口冲突_网络_03

  HTTP-REFERER: 发送表单的文件URL。(并非所有的浏览器都传送这一变量)

iis 和 nginx 80端口冲突_网络_03

  HTTP-USER-AGENT:发送表单的浏览器的有关信息。

iis 和 nginx 80端口冲突_网络_03

  GETWAY-INTERFACE:CGI程序的版本,在UNIX下为 CGI/1.1。

iis 和 nginx 80端口冲突_网络_03

  PATH-TRANSLATED: PATH-INFO中包含的实际路径名。

iis 和 nginx 80端口冲突_网络_03

  PATH-INFO:浏览器用GET方式发送数据时的附加路径。

iis 和 nginx 80端口冲突_网络_03

  SCRIPT-NAME: CGI程序的路径名。

iis 和 nginx 80端口冲突_网络_03

  QUERY-STRING:表单输入的数据,URL中间号后的内容。

iis 和 nginx 80端口冲突_网络_03

  REMOTE-HOST:发送程序的主机名,不能确定该值。

iis 和 nginx 80端口冲突_网络_03

  REMOTE-ADDR:发送程序的机器的IP地址。

iis 和 nginx 80端口冲突_网络_03

  REMOTE-USER:发送程序的人名。

iis 和 nginx 80端口冲突_网络_03

  CONTENT-TYPE:POST发送,一般为applioation/xwww-form-urlencoded。

iis 和 nginx 80端口冲突_网络_03

  CONTENT-LENGTH:POST方法输入的数据的字节数

 

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)来让浏览器可以浏览。

 

待充分理解了,再来补充