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

巨鹿网站建设公司番禺区网站建设

巨鹿网站建设公司,番禺区网站建设,海口网页建站模板,wordpress 手机浏览一、需要搞清楚几个名词概念1. CGI#xff08;Common Gateway Interface#xff0c;CGI#xff09;通用网关接口, 是Web 服务器运行时外部程序的规范#xff0c;按CGI 编写的程序可以扩展服务器功能。CGI 应用程序能与浏览器进行交互#xff0c;还可通过数据API与数据库服…一、需要搞清楚几个名词概念1. CGICommon Gateway InterfaceCGI通用网关接口, 是Web 服务器运行时外部程序的规范按CGI 编写的程序可以扩展服务器功能。CGI 应用程序能与浏览器进行交互还可通过数据API与数据库服务器等外部数据源进行通信从数据库服务器中获取数据。格式化为HTML文档后发送给浏览器也可以将从浏览器获得的数据放到数据库中。几乎所有服务器都支持CGI可用任何语言编写CGI包括流行的C、C 、Java、VB 和Delphi 等。所以说CGI是一个协议不是进程。CGI的存在可以使用户通过浏览器来访问执行在服务器上的动态程序CGI是Web服务器与CGI程序间传输数据的标准服务器端 CGI 程序接收信息有三种途径环境变量、命令行和标准输入。命令行form表单的MethodGET向CGI 传递表单编码信息是通过命令方式来进行的。标准输入form表单的MethodPOST向CGI 传递表单编码信息是通过标准输入方式来进行的。环境变量表单编码信息是通过环境变量QUERY_STRING 来传递。浏览器传递数据方式POST:发送数据大小不受限制环境变量CONTENT_LENGTH 存放这发送数据的长度,CGI程序检查环境变量REQUEST_METHOD 确定是否采用了POST决定是否使用标准输入。GET:发送数据小于1024字节可使用URL?属于GET方式CGI工作机制传统的CGI程序执行过程2. FastCGIFast Common Gateway Interface快速通用网关接口是CGI的优化升级。FastCGI发展传统CGI接口方式主要的缺点是性能差因为每次HTTP服务器遇到动态程序时需要重新启动脚本解析器(php-cgi)来执行解析然后结果返回给HTTP服务器。那么在处理高并发时几乎是不可用的。FastCGI接口方式采用C/S结构可以将HTTP服务器和脚本解析服务器分开同时在脚本解析服务器上启动一个或者多个脚本解析守护进程。当HTTP服务器每次遇到动态程序时可以将其直接交付给FastCGI进程来执行然后将得到的结果返回给浏览器。这种方式可以让HTTP服务器专一地处理静态请求或者将动态脚本服务器的结果返回给客户端这在很大程度上提高了整个应用系统的性能。FastCGI 与传统 CGI 模式的区别之一则是 Web 服务器不是直接执行 CGI 程序了而是通过 socket 与 FastCGI 响应器FastCGI 进程管理器进行交互Web 服务器需要将 CGI 接口数据封装在遵循 FastCGI 协议包中发送给 FastCGI 响应器程序。正是由于 FastCGI 进程管理器是基于 socket 通信的所以也是分布式的Web服务器和CGI响应器服务器分开部署。基于FastCGI进程管理器程序执行过程3. PHP-CGI是PHP解释器它是个CGI程序本身只能解析请求不能管理进程。4. PHP-FPM(FastCGI Process ManagerFastCGI进程管理器)是用来调度管理PHP-FastCGI进程的程序在PHP5.3.3之前是php内核的一个补丁包在后来的版本中php内核集成了php-fpm。二、NginxFastCGI的工作过程Nginx不支持对外部程序的直接调用或者解析所有的外部程序包括PHP必须通过FastCGI接口来调用。FastCGI接口在Linux下是socket这个socket可以是文件socket也可以是ip socket。为了调用CGI程序还需要一个FastCGI的wrapperwrapper可以理解为用于启动另一个程序的程序这个wrapper绑定在某个固定socket上如端口或者文件socket。当Nginx将CGI请求发送给这个socket的时候通过FastCGI接口wrapper接收到请求然后派生出一个新的线程这个线程调用解释器或者外部程序处理脚本并读取返回数据接着wrapper再将返回的数据通过FastCGI接口沿着固定的socket传递给Nginx最后Nginx将返回的数据发送给客户端这就是NginxFastCGI的整个工作过程。三、PHP-FPM对进程的管理Fastcgi是一个协议不是进程。PHP-FPM实现了这个协议是对Fastcgi程序php-cgi的进程管理器。首先先启一个master解析配置文件初始化执行环境然后再启动多个worker。当请求过来时master会传递给一个worker然后立即可以接受下一个请求。这样就避免了重复的劳动效率自然是高。而且当worker不够用时master可以根据配置预先启动几个worker等着当然空闲worker太多时也会停掉一些这样就提高了性能也节约了资源。这就是php-fpm的对进程的管理。php-fpm的管理对象是php-cgi。四、PHP-FPM实现平滑重启1. WorkerMan平滑重启WorkerMan分为主进程和子进程主进程负责监控子进程子进程负责接收客户端的连接和连接上发来的请求数据做相应的处理并返回数据给客户端。当业务代码更新时其实我们只要更新子进程便可以达到更新代码的目的。当WorkerMan主进程收到平滑重启信号时主进程会向其中一个子进程发送安全退出(让对应进程处理完毕当前请求后才退出)信号当这个进程退出后主进程会重新创建一个新的子进程这个子进程载入了新的PHP代码然后主进程再次向另外一个旧的进程发送停止命令这样一个进程一个进程的重启直到所有旧的进程全部被置换为止。2. Nginx平滑重启Nginx的进程分为master主进程和work工作进程master进程主要管理事件信号接受和分发所有的请求处理都由work进程处理并返回结果Nginx的平滑重启或重载配置文件等升级首先是向master发送重启或重载配置文件信号然后master告诉所有的work进程不再接受新的请求然后master另起新的work进程最后告诉旧的work进程可以光荣退出了。3. PHP-FPM平滑重启 php-fpm对此的处理机制是新的worker用新的配置已经存在的worker处理完手上的活就可以歇着了通过这种机制来平滑过度。五、PHP-FPM详解PHP-FPM(PHP FastCGI Process Manager)意PHP FastCGI 进程管理器用于管理PHP 进程池的软件用于接受web服务器的请求。PHP-FPM提供了更好的PHP进程管理方式可以有效控制内存和进程、可以平滑重载PHP配置。1. 为什么会出现php-fpmfpm的出现是因为php-fastcgi出现为了很好的管理php-fastcgi而实现的一个程序。2. 什么是php-fastcgiphp-fastcgi 只是一个cgi程序,只会解析php请求并且返回结果不会管理(因此才出现的php-fpm)。3. 为什么不叫php-cgi其实在php-fastcgi出现之前是有一个php-cgi存在的,只是它的执行效率低下因此被php-fastcgi取代。4. fastcgi和cgi有什么区别这区别就大了当一个服务web-server(nginx)分发过来请求的时候通过匹配后缀知道该请求是个动态的php请求会把这个请求转给php。在cgi的年代思想比较保守总是一个请求过来后,去读取php.ini里的基础配置信息初始化执行环境每次都要不停的去创建一个进程,读取配置初始化环境返回数据退出进程久而久之启动进程的工作变的乏味无趣特别累。当php来到了5的时代大家对这种工作方式特别反感想偷懒的人就拼命的想我可不可以让cgi一次启动一个主进程(master),让他只读取一次配置然后在启动多个工作进程(worker),当一个请求来的时候通过master传递给worker这样就可以避免重复劳动了。于是就产生了fastcgi。5. fastcgi这么好启动的worker用完怎么办当worker不够的时候master会通过配置里的信息动态启动worker等空闲的时候可以收回worker6. 到现在还是没明白php-fpm 是个什么东西?就是来管理启动一个master进程和多个worker进程的程序。PHP-FPM 会创建一个主进程控制何时以及如何将HTTP请求转发给一个或多个子进程处理。PHP-FPM主进程还控制着什么时候创建(处理Web应用更多的流量)和销毁(子进程运行时间太久或不再需要了)PHP子进程。PHP-FPM进程池中的每个进程存在的时间都比单个HTTP请求长,可以处理10、50、100、500或更多的HTTP请求。六、PHP-FPM安装PHP在 5.3.3 之后已经把php-fpm并入到php的核心代码中了。所以php-fpm不需要单独的下载安装。要想php支持php-fpm只需要在编译php源码的时候带上 --enable-fpm 就可以了。七、PHP-FPM配置在Centos中PHP-FPM 的主配置文件是 /etc/php7/php-fpm.conf。指定一段时间内有指定个子进程失效了PHP-FPM重启以上内容希望帮助到大家很多PHPer在进阶的时候总会遇到一些问题和瓶颈业务代码写多了没有方向感不知道该从那里入手去提升对此我整理了一些资料包括但不限于分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6laravelYII2RedisSwoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家需要戳下方PHP进阶架构师视频、面试文档免费获取​docs.qq.com或者关注咱们下面的知乎专栏PHP大神进阶​zhuanlan.zhihu.com来源https://www.cnblogs.com/fengguozhong/articles/11803389.html
http://wiki.neutronadmin.com/news/241018/

相关文章:

  • 自己的域名搭建网站分类目录seo wordpress
  • 做网站需要神虚拟主机如何搭建网站
  • 珠海专业做网站制作专业广州网站建设
  • 中国建设行业信息网站针对人群不同 网站做细分
  • 网站建设幽默做单机游戏破解的网站
  • 网站怎么进入网站建设软件哪个最好
  • 做传销网站的程序员犯法吗网址导航大全
  • 网站推广名片如何注册网站的名字
  • 凡科网建站系统源码vs2012网站开发
  • 台州品牌网站建设市场营销策略论文参考文献
  • 云南智能建站百度指数对比
  • 做网站深圳搭建网站有哪些
  • 万维网官方网站官方网站下载水印相机
  • 网站建设的关键问题图书馆网站建设情况总结
  • 科技成果转化网站建设方案江苏建设招投标网
  • wordpress建站视频教程网站首页是什么意思
  • 网站字体一般大小移动端网站建设的请示
  • 网站建设后还有什么费用网站建设 长沙开福区
  • 网站代码基础知识宝塔wordpress动静分离
  • 唐山网站建设方案咨询苏州关键词优化怎样
  • 山东聊城建设局网站哪个网站有做彩平的材质贴图
  • 教师招聘网站长城建设集团爱获客电销系统
  • 建设银行网站用户注册不了电商网站建设 数商云
  • 建站工具 营销济宁商城网站建设
  • 宁波自助建网站建设网站的颜色
  • 备案时网站名称数据网站排名
  • 开网站需要什么流程怎么轻松搭建自己的网站
  • h5企业网站定制排名网页设计入门软件有哪些
  • 学做网站多长时间阿里云购买网站空间
  • 电商网站设计系列wordpress网址打不开