FastCGI简介

FastCGI简介FastCGI实际上是以CGI变化而来的。因此,首先要了解CGI,下面通过介绍FastCGI来详细了解。CGI是一个协议,他描述了web服务器(nginx)和应用程序网关(php,python,等等)之间的信息交换。在实践中,当web服务器收到一个应该转发到该程序网关的请求时,只是简单的执行所需的命令(所需的应用程序)。客户端请求的详细信息通过命令行参数或环境变量来传递,然而实际的数据

大家好,又见面了,我是你们的朋友全栈君。

FastCGI实际上是以CGI变化而来的。因此,首先要了解CGI,下面通过介绍FastCGI来详细了解。
CGI是一个协议,他描述了web服务器(nginx)和应用程序网关(php,python,等等)之间的信息交换
。在实践中,当web服务器收到一个应该转发到该程序网关的请求时,只是简单的执行所需的命令(所需的
应用程序)。客户端请求的详细信息通过命令行参数或环境变量来传递,然而实际的数据则通过标准的输入设备利用POST或PUT方法来传递,在调用应用程序,然后将处理完的文本内容写入标准的输出设备,最后内容由web服务器重新捕获。
这种技术看上去简单并且足够有效,但它也存在一些明显的不足。
1,为每一个请求产生一个唯一的进程,从一个请求到另一个请求,内存和其他的信息将全部丢失;
2,开启一个进程会消耗系统的资源,大而重的并发请求(每一个产生的进程)数量很快会使服务器一团糟;
3,很难设计一个架构,从而把web服务器和应用程序网关放在不同的服务器上。

FastCGI
CGI协议相关服务效率低下,为了寻求解决方法,产生了FastCGI。
虽然目的一样,但是fastcgi做了重大的改进,他基于下面的原理。
  1.    fastcgi使用了能够处理多个请求的持续进程,而不是针对每个请求都产生新的进程。
  2.    web服务器和应用程序网关通信是通过TCP套接字或POSIX本地IPC套接字进行的,因此,两个进程可能在网络上的不同计算机中。
  3.    web服务器将客户断请求转发到应用程序网关,并使用单个连接来收到响应,其他的请求也可以跟进,从而不用再为其他的请求建立连接。注意,在大部分web服务器上,包括nginx和apache,fastCGI的执行不支持多路技术。
  4. fastcgi是一个基于套接字的协议,因此他能够适用于任何平台及任何编程语言。

主要指令

在默认情况下,fastcgi模块包含在已编译的nginx中,不用在编译时手动开启。
fastcgi_pass     使用环境 location,if
指定什么请求应该转递飞fastcgi服务器,具体做法是先定义fastcgi_pass,然后再在location中应用。
语法:
       对于TCP套接字    fastcgi_pass hostname:port
       对于unix套接字    fastcgi_pass unix:/path/to/fastcgi.socket;
       也可以参考upstream块   fastcgi_pass myblock;
           示例:
                       fastcgi_pass localhost:9000
                       fastcgi_pass 127.0.0.1:9000
                       fastcgi_pass unix:/tmp/fastcgi.socket;
                        #upstream块
                                      upstrwam fastcgi {
                                                         server 127.0.0.1:9000
                                                         server 127.0.0.1:9000
                                         }
                          location ~*  \.php$ {
                                       fastcgi_pass fastcgi;
                                        }
    
fastcgi_param    使用环境:http,server,location 
 允许配置传递给FastCGI服务器的请求。对于所有FastCGI的要求,有两个参数必须的  
  SCRIPT_FILENAME和QUERY_STRING。
  示例:
fastcgi_param SCRIPT_FILENAME   /home/website.com/www$fastcgi_script_name;

fastcgi_pass_header   使用环境:http,server,location
 指定传递到fastcgi服务器额外的头信息。
语法:fastcgi_pass_header headername;

fastcgi_hide_header 使用环境:http,server,location
指定fastcgi服务器应该隐藏的头信息。
 语法:fastcgi_hide_header headername;

fastcgi_index  使用环境:http,server,location
 fastcgi服务不支持自动 目录索引–如果uri请求以/结尾。
语法:fastcgi_index 文件名。
示例:fastcgi_index index.php;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157668.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python表白代码-python告白代码,只属于程序员的浪漫

    python表白代码-python告白代码,只属于程序员的浪漫不知何时,不知何因,程序员这个行业成为大家茶余饭后取乐的无辜群体。只要说到程序员,脑海中就浮现出刻板印象,标配穿搭:格子衫,牛仔裤,黑框眼镜。当然秃顶也是必须的,更狠的吐槽还有邋里邋遢,不懂浪漫,不知人情世故!开始可能只是幽默玩笑,后面慢慢就越传越多,大家便信以为真!可是程序员真的是这样吗?随着现在编程这个行业的普遍高薪收入,程序员又成为大家关注的焦点,深入的了解后,发现程序员其实是很可爱的一个群…

    2022年5月5日
    57
  • TranslateMessage和DispatchMessage作用[通俗易懂]

    TranslateMessage和DispatchMessage作用[通俗易懂]PostMessage是将消息放入到窗体的消息队列中,窗体过程需要等待一段时间,以便从队列中取出了消息之后,才处理消息SendMessage不将消息放入消息队列,而只是把直接让窗体过程处理这个消息,所以消息一般能立刻响应。TranslateMessage函数是将消息转化成某一个,或更多的消息,比如,当消息循环接收一个WM_KEYDOWN消息时,如果用户按下了字母键,那么Translat

    2025年9月11日
    6
  • 真正的趋势之王指标_accer指标优点缺点

    真正的趋势之王指标_accer指标优点缺点四个基本概念TP、TruePositive真阳性:预测为正,实际也为正FP、FalsePositive假阳性:预测为正,实际为负FN、FalseNegative假阴性:预测与负、实际为正TN、TrueNegative真阴性:预测为负、实际也为负。【一致判真假,预测判阴阳。】以分类问题为例:(word公式为什么粘不过来??头疼。)…

    2022年8月31日
    5
  • navicat15 临时激活码(最新序列号破解)

    navicat15 临时激活码(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    149
  • 《java核心技术卷I》[通俗易懂]

    《java核心技术卷I》[通俗易懂]《java核心技术卷I》java老师讲课的内容PPT代码基本是来自于这里,感觉还不错,里面的代码也是循序渐进的。这本书本身也是老师开始讲课时推荐的或者说参考的书的第一本。

    2022年7月7日
    23
  • 暴力破解带有密码的压缩文件

    暴力破解带有密码的压缩文件一暴力破解,就是不断生成新的密码去尝试能否破解成功。假如我们的密码位数为3位,其里面的值有可能是0或者1,其产生的密码集的数量为2的3次幂,也就是八个,然后一个一个去破解。而这生成这8个密码的过程就有一个递归规则存在。我们传入深度deep和对应字符串passwd两个参数,如果深度为1,直接输出字符串passwd,如果深度不为1,把深度deep减一,并把可能存在的字符串集合[0,1]遍历,添加…

    2022年5月7日
    111

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号