当前位置: 首页 > news >正文

ngnix——FastCGI 相关参数调优

当 LNMP 组合工作时,首先是用户通过浏览器输入域名请求 Nginx Web 服务,如果请求的是静态资源,则由 Nginx 解析返回给用户;如果是动态请求(如 PHP),那么 Nginx 就会把它通过 FastCGI 接口发送给 PHP 引擎服务(即 php-fpm)进行解析,如果这个动态请求要读取数据库数据,那么 PHP 就会继续向后请求 MySQL 数据库,以读取需要的数据,并最终通过 Nginx 服务把获取的数据返回给用户,这就是 LNMP 环境的基本请求流程。 FastCGI 介绍:CGI 通用网关接口,是 HTTP 服务器与其他机器上的程序服务通信交流的一种工具,CGI 接口的性能较差,每次 HTTP 服务器遇到动态程序时都需要重新启动解析器来执行解析,之后结果才会被返回 HTTP 服务器,因此就有了 FastCGI ,FastCGI 是一个在 HTTP 服务器和动态脚本语言间通信的接口,主要是把动态语言和 HTTP 服务器分离开来,使得 HTTP 服务器专一地处理静态请求,提高整体性能,在 Linux 下,FastCGI 接口即为 socket ,这个 socket 可以是文件 socket 也可以是 IP socket

worker_processes 1;

events {

worker_connections 1024;

}

http {

include mime.types;

default_type application/octet-stream;

sendfile on;

keepalive_timeout 65;

fastcgi_connect_timeout 240; # Nginx服务器和后端FastCGI服务器连接的超时时间

fastcgi_send_timeout 240; # Nginx允许FastCGI服务器返回数据的超时时间,即在规定时间内后端服务器必须传完所有的数据,否则Nginx将断开这个连接

fastcgi_read_timeout 240; # Nginx从FastCGI服务器读取响应信息的超时时间,表示连接建立成功后,Nginx等待后端服务器的响应时间

fastcgi_buffer_size 64k; # Nginx FastCGI 的缓冲区大小,用来读取从FastCGI服务器端收到的第一部分响应信息的缓冲区大小

fastcgi_buffers 4 64k; # 设定用来读取从FastCGI服务器端收到的响应信息的缓冲区大小和缓冲区数量

fastcgi_busy_buffers_size 128k; # 用于设置系统很忙时可以使用的 proxy_buffers 大小

fastcgi_temp_file_write_size 128k; # FastCGI 临时文件的大小

# fastcti_temp_path /data/ngx_fcgi_tmp; # FastCGI 临时文件的存放路径

fastcgi_cache_path /data/ngx_fcgi_cache levels=2:2 keys_zone=ngx_fcgi_cache:512m inactive=1d max_size=40g; # 缓存目录

server {

listen 80;

server_name www.abc.com;

location / {

root html/www;

index index.html index.htm;

}

location ~ .*.(php|php5)?$ {

root html/www;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include fastcgi.conf;

fastcgi_cache ngx_fcgi_cache; # 缓存FastCGI生成的内容,比如PHP生成的动态内容

fastcgi_cache_valid 200 302 1h; # 指定http状态码的缓存时间,这里表示将200和302缓存1小时

fastcgi_cache_valid 301 1d; # 指定http状态码的缓存时间,这里表示将301缓存1天

fastcgi_cache_valid any 1m; # 指定http状态码的缓存时间,这里表示将其他状态码缓存1分钟

fastcgi_cache_min_uses 1; # 设置请求几次之后响应被缓存,1表示一次即被缓存

fastcgi_cache_use_stale error timeout invalid_header http_500; # 定义在哪些情况下使用过期缓存

fastcgi_cache_key http://$host$request_uri; # 定义 fastcgi_cache 的 key

}

}

}

作者简介: 
陈志珂(头条号:强扭的瓜不好吃)公众号“铅笔学园”运维内容合作作者之一,目前就职于中国最大的安卓应用软件公司,任高级工程师现在公司任php开发工程师,python开发工程师,高级运维工程师。
铅笔学园:IT资源分享|知识分享,做初级程序员的指明灯

转载于:https://www.cnblogs.com/qianbixueyuan/p/9574999.html

相关文章:

  • jmeter 使用cookie管理器
  • 小米OJ刷题日志
  • 广义后缀自动机
  • 编程基本功训练:流程图画法及练习
  • Python入门学习-DAY36-GIL全局解释器锁、死锁现象与递归锁、信号量、Event事件、线程queue...
  • SqlMap使用
  • Maven打war包命令
  • Linux常用Office办公软件
  • 如何在Eclipse下查看JDK源代码
  • legend---三、方法集思路
  • [POI2007] ZAP-Queries (莫比乌斯反演)
  • re:从零开始的数位dp
  • I/O多路复用
  • Nginx配置HTTPS
  • 正则表达式 整理
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • Angular6错误 Service: No provider for Renderer2
  • angular学习第一篇-----环境搭建
  • CentOS6 编译安装 redis-3.2.3
  • Centos6.8 使用rpm安装mysql5.7
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • Java 23种设计模式 之单例模式 7种实现方式
  • js中的正则表达式入门
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • NSTimer学习笔记
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 基于webpack 的 vue 多页架构
  • 解析带emoji和链接的聊天系统消息
  • 排序算法之--选择排序
  • 前端js -- this指向总结。
  • 全栈开发——Linux
  • 如何在GitHub上创建个人博客
  • 设计模式走一遍---观察者模式
  • 学习JavaScript数据结构与算法 — 树
  • 用jQuery怎么做到前后端分离
  • 如何正确理解,内页权重高于首页?
  • ​Java并发新构件之Exchanger
  • ​渐进式Web应用PWA的未来
  • ​你们这样子,耽误我的工作进度怎么办?
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #14vue3生成表单并跳转到外部地址的方式
  • #define、const、typedef的差别
  • #QT项目实战(天气预报)
  • $.ajax中的eval及dataType
  • (ibm)Java 语言的 XPath API
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (四) 虚拟摄像头vivi体验
  • (一)认识微服务
  • (转)为C# Windows服务添加安装程序
  • .apk文件,IIS不支持下载解决
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .NET6实现破解Modbus poll点表配置文件
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • .net流程开发平台的一些难点(1)