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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【STM32】HAL库 STM32CubeMX教程六—-定时器中断

    【STM32】HAL库 STM32CubeMX教程六—-定时器中断前言:今天我们来学习定时器,32的定时器有着非常丰富的功能,输入捕获/输出比较,PWM,中断等等。是我们学习STM32最频繁使用到的外设之一,所以一定要掌握好,这节我们讲解定时器中断,本系列教程将对应外设原理,HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用所用工具:1、芯片:STM32F407ZET6/STM32F103ZET62、ST…

    2022年5月27日
    101
  • SQL基础语句汇总[通俗易懂]

    SQL基础语句汇总[通俗易懂]引言语法基础连接数据库查看数据库使用数据库查看表查看表结构建表修改表添加字段移除字段变更字段插入全字段插入个别字段插入普通查询单表全字段查询单表个别字段查询多表查询条件查询单表条件查询多表条件查询嵌套查询并查询交查询删除更新常用函数求和求平均值计数求最大值求最小值常用的修饰符distinct字段中值唯一limit查询结果数限制

    2022年5月2日
    54
  • 特征选择/筛选方法总结

    作者:jlianghttps://blog.csdn.net/jliang31.特征选择介绍1)特征分类相关特征:对于学习任务(例如分类问题)有帮助,可以提升学习算法的效果; 无关特征:对于我们的算法没有任何帮助,不会给算法的效果带来任何提升; 冗余特征:不会对我们的算法带来新的信息,或者这种特征的信息可以由其他的特征推断出;2)特征选择的目的对于一个特定的学习算法…

    2022年4月7日
    44
  • 实时数据库 内存数据库_实时数据库产品

    实时数据库 内存数据库_实时数据库产品这是一款实时和嵌入式软件,用来管理持续增长的复杂数据,来支持高级应用的特性。性能和可靠性,更短的产品开发周期等需求,驱使开发者在他们的设计中,考虑采用经验证的、成熟的商业数据库系统组件来,来满足应用层的这些需求。  McObject公司的eXtremeDB嵌入式数据库系列产品是将高性能、稳定性和简单易用性等特性同时融入了工业基的数据库引擎。  了解eXtremeDB产品系列或eXtreme…

    2022年10月14日
    7
  • 罗技mx master 3连接不上接收器_罗技mx master 3打游戏

    罗技mx master 3连接不上接收器_罗技mx master 3打游戏默认1通道是USB连接,如果匹配过蓝牙的话通道的信号被占用了,需要下载软件匹配,您可以根据软件提示进行匹配的呢。优联软件下载:https://support.logi.com/hc/articles/360025297913(如果打不开,可以科学上网)安装后打开,根据软件步骤依次关闭电脑蓝牙,重启鼠标,等待几秒后即可正常连接。…

    2022年10月15日
    3
  • java高并发 pdf_Java高并发编程详解 PDF 下载

    java高并发 pdf_Java高并发编程详解 PDF 下载推荐序一推荐序二推荐序三推荐序四前言第一部分多线程基础第1章快速认识线程1.1线程的介绍1.2快速创建并启动一个线程1.3线程的生命周期详解1.4线程的start方法剖析:模板设计模式在Thread中的应用1.5Runnable接口的引入以及策略模式在Thread中的使用1.6本章总结第2章深入理解Thread构造函数2.1线程的命名2.2线程的父子关系2.3Thread与…

    2022年5月12日
    47

发表回复

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

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