php-fpm重启

http 502 和 504 的区别

蓝咒 提交于 2020-03-24 12:26:33
文章转载自: http 502 和 504 的区 首先看一下概念: 502:作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。 503:由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。如果能够预计延迟时间,那么响应中可以包含一个 Retry-After 头用以标明这个延迟时间。如果没有给出这个 Retry-After 信息,那么客户端应当以处理500响应的方式处理它。 注意:503状态码的存在并不意味着服务器在过载的时候必须使用它。某些服务器只不过是希望拒绝客户端的连接。 504:作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到响应。  注意:某些代理服务器在DNS查询超时时会返回400或者500错误. 通俗的来说,nginx作为一个代理服务器,将请求转发到其他服务器或者php-cgi来处理,当nginx收到了无法理解的响应时,就返回502。当nginx超过自己配置的超时时间还没有收到请求时,就返回504错误。 502 上面说到nginx收到了无法理解的响应,什么是无法理解的响应呢? nginx无法与php-fpm进行连接。 nginx在连接php-fpm一段时间后发现与php-fpm的连接被断开。

关于cgi、FastCGI、php-fpm、php-cgi(复制)

老子叫甜甜 提交于 2020-03-13 10:56:56
首先,CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者。 web server(比如说nginx)只是内容的分发者。比如,如果请求/index.html,那么web server会去文件系统中找到这个文件,发送给浏览器,这里分发的是静态数据。好了,如果现在请求的是/index.php,根据配置文件,nginx 知道这个不是静态文件,需要去找PHP解析器来处理,那么他会把这个请求简单处理后交给PHP解析器。Nginx会传哪些数据给PHP解析器呢?url要 有吧,查询字符串也得有吧,POST数据也要有,HTTP header不能少吧,好的,CGI就是规定要传哪些数据、以什么样的格式传递给后方处理这个请求的协议。仔细想想,你在PHP代码中使用的用户从哪里来 的。 当web server收到/index.php这个请求后,会启动对应的CGI程序,这里就是PHP的解析器。接下来PHP解析器会解析php.ini文件,初始 化执行环境,然后处理请求,再以规定CGI规定的格式返回处理后的结果,退出进程。web server再把结果返回给浏览器。 好了,CGI是个协议,跟进程什么的没关系。那fastcgi又是什么呢?Fastcgi是用来提高CGI程序性能的。 提高性能,那么CGI程序的性能问题在哪呢?"PHP解析器会解析php.ini文件

转】关于cgi、FastCGI、php-fpm、php-cgi

风流意气都作罢 提交于 2020-03-13 10:55:45
首先,CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者。 web server(比如说nginx)只是内容的分发者。比如,如果请求/index.html,那么web server会去文件系统中找到这个文件,发送给浏览器,这里分发的是静态数据。好了,如果现在请求的是/index.php,根据配置文件,nginx 知道这个不是静态文件,需要去找PHP解析器来处理,那么他会把这个请求简单处理后交给PHP解析器。Nginx会传哪些数据给PHP解析器呢?url要 有吧,查询字符串也得有吧,POST数据也要有,HTTP header不能少吧,好的,CGI就是规定要传哪些数据、以什么样的格式传递给后方处理这个请求的协议。仔细想想,你在PHP代码中使用的用户从哪里来 的。 当web server收到/index.php这个请求后,会启动对应的CGI程序,这里就是PHP的解析器。接下来PHP解析器会解析php.ini文件,初始 化执行环境,然后处理请求,再以规定CGI规定的格式返回处理后的结果,退出进程。web server再把结果返回给浏览器。 好了,CGI是个协议,跟进程什么的没关系。那fastcgi又是什么呢?Fastcgi是用来提高CGI程序性能的。 提高性能,那么CGI程序的性能问题在哪呢?"PHP解析器会解析php.ini文件

CGI FastCGI Nginx

守給你的承諾、 提交于 2020-03-12 13:40:28
CGI 什么是CGI CGI全称通用网关接口,是一种让客户端(web浏览器)与web服务器(nginx等)程序进行通信(数据传输)的协议 用来规范web服务器传输到php解释权中的数据类型以及数据格式,包括URL、查询字符串、post数据、http header等,也就是为了保证webserver传递过来的数据是标准格式的 CGI可以用任何一种具有标准输入、输出和环境变量的语言编写,如php、perl、tcl等。不同类型语言写的程序只要符合cgi标准,就能作为一个cgi程序与web服务器交互,早期的cgi大多都是c或c++编写的 一般说的cgi指的是用各种语言编写的能实现该功能的程序 CGI程序的工作原理 每次webserver收到index.php这种类型的动态请求后,会启动对应的CGI程序(php的 解析器) php解析器会解析php.ini配置文件,初始化运行环境,然后处理请求,处理完成后将数据按照cgi规定的格式返回给webserver然后退出进行进程 最后webserver再把结果返回给浏览器 CGI程序的特点 高并发时性能较差 cgi程序的每一次web请求都会有启动和退出过程,也就是最为人诟病的fork-and-execute模式(每次HTTP服务器遇到动态请求时都需要重新启动脚本解析器来解析php.ini,重新载入全部dll扩展并初始化全部数据结构

memcache缓存服务器(安装-配置-测试篇)

旧巷老猫 提交于 2020-03-07 03:36:46
部署环境: 主机 ip地址 操作系统 nginx 172.16.1.100 CentOS 7.3 php+memcache 172.16.1.110 CentOS 7.3 Mysql 172.16.1.120 CentOS 7.3 memcached 172.16.1.130 CentOS 7.3 一, 环境准备: 搭建LNMP环境(动态解析) 1,安装nginx 1)安装依赖工具包: [root@nginx-server ~]# yum -y install gcc* pcre-devel openssl-devel zlib-devel make vim 2)创建nginx用户组和用户: [root@nginx-server ~]# groupadd -r nginx && useradd -r -g nginx -s /bin/false -M nginx 3)解压源码包,配置&&编译安装: [root@nginx-server ~]# tar zxf nginx-1.8.0.tar.gz [root@nginx-server ~]# cd nginx-1.8.0 [root@nginx-server nginx-1.8.0]# ./configure --help ##可以查看自己需要的模块 --with,或取消的模块–without #根据自己的需求添加不同的模块

php-fpm进程数管理

孤人 提交于 2020-03-05 18:51:21
先来了解一些名词概念: CGI是Common Gateway Interface(通用网管协议),用于让交互程序和Web服务器通信的协议。它负责处理URL的请求,启动一个进程,将客户端发送的数据作为输入,由Web服务器收集程序的输出并加上合适的头部,再发送回客户端。 FastCGI是基于CGI的增强版本的协议,不同于创建新的进程来服务请求,使用持续的进程和创建的子进程来处理一连串的进程,这些进程由FastCGI服务器管理,开销更小,效率更高。 PHP-FPM是PHP实现的FastCGI Process Manager(FastCGI进程管理器), 用于替换PHP FastCGI的大部分附加功能,适用于高负载网站。支持的功能如: 平滑停止/启动的高级进程管理功能 慢日志记录脚本 动态/静态子进程产生 基于php.ini的配置文件 PHP-FPM在5.4之后已经整合进入PHP源代码中,提供更好的PHP进程管理方式,可以有效控制内存和进程,平滑重载PHP配置。如果需要使用,在./configure的时候带上-enable-fpm参数即可,使用PHP-FPM来控制FastCGI进程: // 支持start/stop/quit/restart/reload/logrotate参数 // quit/reload是平滑终止和平滑重新加载,即等现有的服务完成 ./php-fpm --start

Linux的学习--配置LNMP环境

允我心安 提交于 2020-03-05 05:41:43
最近,回到公司,发现电脑都换成linux系统了。。。很无力。。。 配置环境,跑起项目来就花了一天。。。额。。。在这里记录一下~~ 系统是ubuntu 12.04。 一、安装nginx 1:ubuntu因为安全策略,一般是禁用了root用户,所以每次执行命令时一般需要加上sudo去操作。为了方面后面其他步骤操作,可首先切换到root用户,这样后面不需要每次都加sudo了。 sudo su – (切换用户) 2:默认ubuntu默认是官方的源,国内用户访问可能会比较慢,所以将官方的源修改为163的源,修改方法此处不做介绍,可查ubuntu官方的wiki帮助手册。 访问地址:http://wiki.ubuntu.org.cn/Qref/Source 3:源修改完毕后记得要刷新列表: apt-get update 下面就开始安装nginx了 安装nginx的方式有多种,可以通过官方下载nginx源码包编译安装,也可以通过ubuntu软件包的形式安装,个人觉得都可以。大致考虑如下几点因素: 1)如果本身系统就是通过源码编译安装的,那么系统的性能将是比较高的,那么这种情况,通过源码来安装软件,性能是比较好的。而如果系统采用的是ubuntu等发行版安装的,那么软件通过源码编译并不能带来非常明显的性能提升。当然如果你想锻炼一下,或者自我满足一下,也可以试试通过源码安装。 2

PHP基础 CGI,FastCGI,PHP-CGI与PHP-FPM

妖精的绣舞 提交于 2020-03-04 07:21:01
CGI CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。 CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等。 FastCGI FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次(这是CGI最为人诟病的fork-and-execute 模式)。它还支持分布式的运算,即 FastCGI 程序可以在网站服务器以外的主机上执行并且接受来自其它网站服务器来的请求。 FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。众所周知,CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性、Fail- Over特性等等。 FastCGI特点 FastCGI具有语言无关性. FastCGI在进程中的应用程序,独立于核心web服务器运行,提供了一个比API更安全的环境。APIs把应用程序的代码与核心的web服务器链接在一起,这意味着在一个错误的API的应用程序可能会损坏其他应用程序或核心服务器。

Nginx基础知识04

假如想象 提交于 2020-03-03 08:13:00
案例1:构建memcached服务 1.1 问题 本案例要求先快速搭建好一台memcached服务器,并对memcached进行简单的增、删、改、查操作: 安装memcached软件,并启动服务 使用telnet测试memcached服务 对memcached进行增、删、改、查等操作 1.2 方案 memcached是高性能的分布式缓存服务器,用来集中缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的响应速度。访问拓扑如图-1所示。 使用1台RHEL7虚拟机作为memcached服务器(192.168.4.5)。 在RHEL7系统光盘中包含有memcached,因此需要提前配置yum源,即可直接使用yum安装,客户端测试时需要提前安装telnet远程工具。 验证时需要客户端主机安装telnet,远程memcached来验证服务器的功能: add name 0 180 10 / / 变量不存在则添加 set name 0 180 10 / / 添加或替换变量 replace name 0 180 10 / / 替换 get name / / 读取变量 append name 0 180 10 / / 向变量中追加数据 delete name / / 删除变量 stats / / 查看状态 flush_all / / 清空所有 提示:0表示不压缩,180为数据缓存时间

Linux下Nginx+PHP+MySQL配置

假如想象 提交于 2020-03-01 03:43:58
Nginx是一个高性能的HTTP和反向代理 服务器 ,同时还是IMAP/POP3/SMTP代理 服务器 , 该程序由俄罗斯Rambler.ru 站点开发,Nginx因为性能稳定、低系统资源消耗而闻名,近几年Nginx在国内已经成炙热化状态,比如像腾讯、网易、51CTO、迅雷、当当网、 51、人人网等诸多大型网站都已经使用Nginx来做Web服务器,所以我们要学会运用Nginx还是非常有必要的,下面我们一起来看一下Nginx是如 何在Linux平台上搭建的 安装前首先使用yum命令安装、升级所需的程序库 yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss