返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >Nginx 之 fastcgi 常用参数详解
  • 490
分享到

Nginx 之 fastcgi 常用参数详解

nginx服务器php 2023-09-01 13:09:28 490人浏览 薄情痞子
摘要

目录 fastcgi 是什么fastcgi 常用参数1、fastcgi_pass2、fastcgi_param3、fastcgi_index4、fastcgi_connect_timeout5

目录

fastcgi 是什么

这个在上篇文章已经提到过了一个 PHP 请求的执行过程,这里在讲一次

早期的 WEBserver 只处理 html 等静态文件,但是随着技术的发展,出现了像 PHP 等动态语言。为了解决不同的语言解释器(如 phppython 解释器)与 webserver 的通信,于是出现了 cgi协议。只要你按照 cgi协议去编写程序,就能实现语言解释器与 webwerver 的通信。

但是,webserver每收到一个请求,都会去 fork 一个 cgi 进程,请求结束再kill掉这个进程。这样有10000个请求,就需要fork、kill php-cgi进程10000次。这样的话很浪费资源,于是,出现了 cgi 的改良版本,fast-cgifast-cgi 每次处理完请求后,不会 kill 掉这个进程,而是保留这个进程,使这个进程可以一次处理多个请求。这样每次就不用重新 fork 一个进程了,大大提高了效率。

fastcgi 常用参数

具体参数详情可参考官网:Module ngx_http_fastcgi_module

以下参数都在Nginx的配置文件中配置,配置范围:Http, server, location。

1、fastcgi_pass

这个命令是指定将http代理到哪个fastcgi服务端接口。fastcgi_pass后面是填写fastcgi服务端地址的,这个地址可以是域地址,也可以是Uninx-域套接字。

fastcgi_pass unix:/tmp/php-cgi.sock;fastcgi_pass 127.0.0.1:9000;

2、fastcgi_param

这个命令是设置 fastcgi 请求中的参数,具体设置的东西可以在 PHP 的 $_SERVER 中获取到。参考最后的店fastcgi_param参数配置。

3、fastcgi_index

fastcgi默认的主页资源,示例:fastcgi_index index.php;这个功能和index index.html功能一样。当SCRIPT_FILENAME没有命中脚本的时候,使用的就是fastcgi_index设置的脚本。

  fastcgi_index  index.php;

4、fastcgi_connect_timeout

nginx与后端fastcgi server连接超时时间。

  fastcgi_connect_timeout 60s;

5、fastcgi_send_timeout

指定nginx向后端传送请求超时时间(指已完成两次握手后向fastcgi传送请求超时时间)。

 fastcgi_send_timeout 60s;

6、fastcgi_read_timeout

指定nginx接受后端fastcgi响应请求超时时间 (指已完成两次握手后nginx接受fastcgi响应请求超时时间)。

 fastcgi_send_timeout 60s;

7、fastcgi_buffer_size

指定nginx读取fastcgi响应第一部分需要用多大的缓冲区,这个值表示将使用一个64kb的缓冲区响应第一部分应答(应答头)可以设置为fastcgi_buffers缓存区大小。

fastcgi_buffer_size 4k; # 单位为k,一般为4的整数倍

8、fastcgi_buffers

指nginx需要用多大的缓冲区缓冲fastcgi的应答请求(整个应答),如果一个php脚本所产生的页面大小为256kb,那么会分配4个64kb缓冲区来缓存,如果页面大于256kb,那么大于256kb的部分会缓存到fastcgi_temp指定的路径中,但是因为内存中数据处理远快于磁盘, 所以这个值应该为站点中php所产生的页面大小的中间值, 如果站点大部分php脚本产生的页面为:256kb, 那么可以设置成成"8 16k 4 64k"。

fastcgi_buffers 8 4k;  # 单位为k,一般为4的整数倍

9、fastcgi_busy_buffers_size

整个数据请求需要多大的缓存区,建议设置为fastcgi_buffers值的两倍。

fastcgi_busy_buffers 8k; # 单位为K,一般为fastcgi_buffers值的2倍

10、fastcgi_temp_file_write_size

写入缓存文件使用多大的数据块,默认值是fastcgi_buffer值的2倍。

fastcgi_temp_file_write_size 8k; # 单位为K,一般为fastcgi_buffers值的2倍

11、fastcgi_cache_path

定义fastcgi缓存的路径及其他设置。

fastcgi_cache_path path [levels=levels] [use_temp_path=on|off] keys_zone=name:size [inactive=time] [max_size=size] [loader_files=number] [loader_sleep=time] [loader_threshold=time] [purger=on|off] [purger_files=number] [purger_sleep=time] [purger_threshold=time];

12、fastcgi_cache

开启fastcgi_cache并为其定义一个名称,可以防止nginx 502错误,降低cpu负载,不过也会引起其他问题,根据需求来选择。

fastcgi_cache off;

13、fastcgi_cache_valid

为指定的应答代码指定缓存时间。

fastcgi_cache_valid 200 302 1h; # 对于状态码为200 302的网页缓存1小时fastcgi_cache_valid any 1m; # 其他页面缓存1分钟

14、fastcgi_cache_key

以某个值为key,Nginx会取这个key的md5作为缓存文件 如果设置了缓存哈希目录,Nginx会从后往前取相应的位数做为目录。

fastcgi_cache_key "requestmethod://requestmethod://host$request_uri";

15、fastcgi_cache_min_uses

URL至少经过多少次请求将被缓存。

fastcgi_cache_min_uses 1;

16、fastcgi_cache_use_stale

对一些错误提示code,nginx会使用到fast_cache缓存。

fastcgi_cache_use_stale error | timeout | invalid_header | updating | http_500 | http_503 |http_403 | http_404 | off ...;

fastcgi_param参数配置

一般在nginx.conf文件同级有一个 fastcgi.conf 配置文件如下:

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;# 脚本文件请求的路径fastcgi_param  QUERY_STRING       $query_string; # 请求参数 fastcgi_param  REQUEST_METHOD     $request_method;# 请求方法fastcgi_param  CONTENT_TYPE       $content_type; # 请求时正文的格式,对应Content-Type字段fastcgi_param  CONTENT_LENGTH     $content_length; # 请求头正文长度,对应Content-length字段fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;# 脚本名称fastcgi_param  REQUEST_URI        $request_uri; # 请求地址不带参数  fastcgi_param  DOCUMENT_URI       $document_uri; # 与$uri相同fastcgi_param  DOCUMENT_ROOT      $document_root;# 网站的根目录。配置文件中root值fastcgi_param  SERVER_PROTOCOL    $server_protocol;# 请求使用的协议,如:HTTP/1.1   fastcgi_param  REQUEST_SCHEME     $scheme; # 获取http协议fastcgi_param  https              $https if_not_empty; # value非空才进行设置fastcgi_param  GATEWAY_INTERFACE  CGI/1.1; # cgi 版本  fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version; # nginx 版本号,可修改、隐藏 fastcgi_param  REMOTE_ADDR        $remote_addr; # 客户端IP  fastcgi_param  REMOTE_PORT        $remote_port; # 客户端端口  fastcgi_param  SERVER_ADDR        $server_addr; # 服务器IP地址  fastcgi_param  SERVER_PORT        $server_port; # 服务器端口  fastcgi_param  SERVER_NAME        $server_name; # 服务器名,域名在server配置中指定的server_name  # PHP only, required if PHP was built with --enable-force-cgi-redirectfastcgi_param  REDIRECT_STATUS    200;#fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";fastcgi_param PHP_ADMIN_VALUE "open_basedir=/home/wwwroot/:/tmp/:/proc/";

来源地址:https://blog.csdn.net/weixin_43844718/article/details/127027017

--结束END--

本文标题: Nginx 之 fastcgi 常用参数详解

本文链接: https://www.lsjlt.com/news/388457.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Nginx 之 fastcgi 常用参数详解
    目录 fastcgi 是什么fastcgi 常用参数1、fastcgi_pass2、fastcgi_param3、fastcgi_index4、fastcgi_connect_timeout5...
    99+
    2023-09-01
    nginx 服务器 php
  • nginx编译安装及常用参数详解
    目录1 基于ansible role实现编译安装nginx2 编译安装参数详解1 基于ansible role实现编译安装nginx 利用ansible控制端10.0.0.8机器,在...
    99+
    2023-01-11
    nginx编译安装参数 nginx编译安装
  • cp命令常用参数详解
    cp 命令,主要用来复制文件和目录,同时借助某些选项,还可以实现复制整个目录,以及比对两文件的新旧而予以升级等功能。 1.查看命令用法 在命令行键入: cp --help 可以看到cp 命令...
    99+
    2023-09-07
    linux 服务器 windows
  • MySQL InnoDB常见参数详解
    一、文件(数据文件、日志文件)      1、相关参数:           innodb_data_home_dir &nb...
    99+
    2024-04-02
  • C++之默认参数详解
    目录一、C++ 默认参数1.举例1.单个参数2.多个参数2.规则总结一、C++ 默认参数 通常情况下,函数在调用时,形参从实参那里取得值。对于多次调用同一函数同一实参时,C++给出了...
    99+
    2024-04-02
  • nginx 常见参数以及重定向参数配置
    nginx 各参数翻译,作用$arg_PARAMETER #这个变量包含GET请求中,如果有变量PARAMETER时的值。$args #这个变量等于请求行中(GET请求)的参数,例如foo=123&bar=blahblah;$bin...
    99+
    2023-06-05
  • 解密AJAX参数:详解常见参数及其功能
    AJAX参数大揭秘:详解常用参数及其作用,需要具体代码示例 在现代Web开发中,AJAX(Asynchronous JavaScript and XML)已经成为了不可或缺的一部分。它通过JavaScript和XML(现在通常是...
    99+
    2024-01-26
    作用 常用
  • Python详解argparse参数模块之命令行参数
    目录前言示例一:最简参数对象示例二:整数求和示例三:文件是否被篡改自定义类型choices选项限定required必选参数子命令前言 help(argparse)查看说明文档,&ld...
    99+
    2024-04-02
  • SQLServer之常用函数总结详解
    SQLServer中的常用函数 字符串函数 len() 计算字符串的长度 select LEN(name) from test1 --计算name的长度 大小写转换...
    99+
    2024-04-02
  • SpringBoot之使用枚举参数案例详解
    接口开发过程中不免有表示类型的参数,比如 0 表示未知,1 表示男,2 表示女。通常有两种做法,一种是用数字表示,另一种是使用枚举实现。 使用数字表示就是通过契约形式,约定每个数字表...
    99+
    2024-04-02
  • SpringBoot参数校验之@Valid的使用详解
    目录简介依赖代码 测试测试1:缺少字段测试2:不缺少字段测试3:缺少字段,后端获取BindResult 简介 说明 本文用示例说明SpringBoot的@Vali...
    99+
    2024-04-02
  • SpringBoot参数校验之@Validated的使用详解
    目录简介依赖用法1:不分组代码测试用法2:分组代码测试简介 说明 本文用示例说明SpringBoot的@Validated的用法。 依赖 <dependency> ...
    99+
    2024-04-02
  • golang学习之详解“不定参数”
    Golang是一门功能强大的编程语言,它在语法结构上比其他语言更加简单直接,这特别适合于处理大量数据和解决高并发问题。其中一个高级功能就是不定参数,也称为可变参数,这使得函数可以接受不确定数量的参数,进而提高程序的灵活性和可重用性。一、不定...
    99+
    2023-05-14
    Golang go语言 不定参数类型
  • 基于springmvc之常用注解,操作传入参数
    目录springmvc常用注解,操作传入参数@RequestParam@RequestBody@PathVariable@RequestHeader@CookieValue@Mode...
    99+
    2024-04-02
  • 详解常用的nginx rewrite重写规则
    在Nginx中,rewrite指令用于重写URL。它允许用户修改请求URI、查询参数以及HTTP请求方法。以下是常用的Nginx r...
    99+
    2023-08-14
    nginx
  • Python Asyncio库之asyncio.task常用函数详解
    目录前记0.基础1.休眠--asyncio.sleep2.屏蔽取消--asyncio.shield3.超时--asyncio.wait_for4.简单的等待--wait5.迭代可等待...
    99+
    2023-03-01
    Python Asyncio asyncio.task Python Asyncio Python asyncio.task
  • SpringBoot开发详解之Controller接收参数及参数校验
    目录Controller 中注解使用传输参数的几种Method获取参数的几种常用注解使用对象直接获取参数使用@Valid对参数进行校验总结Controller 中注解使用 接受参数的...
    99+
    2024-04-02
  • docker-compose常见的参数命令详解
    目录1. Docker Compose 产生背景2. Docker Compose模板文件1.environment2.volumes3.build4.depends_on5.env...
    99+
    2024-04-02
  • nginx 配置指令之location使用详解
    目录前言配置策略具体属性介绍Nginx是支持世界上所有网站三分之一的Web服务器。因为轻巧,模块化,用户友好的配置格式以强大的反向代理能力,Nginx迅速取代其他Web服务器成了互联...
    99+
    2024-04-02
  • linux中find命令的12个常用参数详解
    这篇文章主要介绍“linux中find命令的12个常用参数详解”,在日常操作中,相信很多人在linux中find命令的12个常用参数详解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux中find命令的...
    99+
    2023-06-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作