Articles of php fpm

高性能AWS EC2 / RDS + Nginx + PHP-FPM设置

问题的一般描述 我们目前正在运行PHP的PaaStypes解决scheme上的应用程序。 他们的解决scheme基于AWS云计算,由于他们的计划不适合我们的扩展需求,我们决定直接迁移到AWS,应用程序在每分钟400个请求的应用程序响应中执行“很好”〜100ms在生产中,但在AWS上进行响应需要很长时间。 请记住,这些请求中的每一个都会执行数据库插入+一些计算统计信息的昂贵select。 当前AWS安装尝试 1中RDS服务器(这是不是瓶颈,因为我已经检查)1中型运行nginx + PHP的r3 EC2服务器FPM + Ubuntu的x64 14.04我一直在运行一些基准,并试图模拟我们的正常stream量负载尽可能接近它只是在恒定的负荷下开始行动。 当前使用Config Nginx的 user www-data; worker_processes 2; pid /run/nginx.pid; worker_rlimit_nofile 30000; events { worker_connections 8192; #multi_accept on; use epoll; } http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay off; keepalive_timeout 30; types_hash_max_size 2048; server_tokens off; # increase buffer and timeouts […]

Apache 2.4 / PHP-FPM ProxyPassMatch和访问限制

我有Apache / PHP的设置完全是这样的: https : //wiki.apache.org/httpd/PHP-FPM 它包括所提到的ProxyPassMatch规则: ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/path/to/files/$1 这发送所有请求.php在它的代理,并最终服务的PHP就好了。 但是,我一直在尝试做一些访问控制,代理似乎优先。 我的文件夹结构是这样的: / <– PHP files /extra/ <– PHP files /css/ /img/ 应该有权访问根目录中的PHP文件,但我想限制访问extra目录。 我已经将这些行添加到我的主要configuration: <Directory "/extra"> Order deny,allow Deny from all </Directory> 但PHP文件仍然执行…当我把一个不同types的文件在文件夹中,它被成功阻止,所以指令工程。 我猜ProxyPassMatch规则是禁止它为PHP文件工作。 我已经尝试了一些东西,比如将ProxyPassMatch规则放在一个<Directory>块中(不起作用,因为你不能在这样的块中使用ProxyPassMatch )并用[P]标志replaceProxyPassMatch来写一个RewriteRule (类似于这个: Apache 2.4 + PHP-FPM + ProxyPassMatch ,但是没有被代理)。 我的问题几乎和这个一样: http : //www.gossamer-threads.com/lists/apache/users/417758 。 然而,它没有得到明确的答案。 让我感到困惑的是你需要有代理规则,但是当你把它放进去的时候,没有其他东西似乎很重要(.htaccess也不能工作了)。 此外,这提出了有关安全的问题。 所有带.php东西都没有受到我想象的访问规定的影响,直接进入系统的内部。 如何将PHP-FPM与Apache中正确的安全规则结合起来?

apache php-fpm – max_children达到 – >服务器无响应,直到php-fpm重启

我们的一台服务器设置非常特殊,对未知事件非常敏感。 硬件: Xen – VM 22个内核(采用英特尔至强4 * 6内核) RAID 6 SSD 60 GB RAM 组态: Suse Openlinux 13.1 Apache2.4 – 事件 PHP 5.5.14 mod_proxy_fcgi PHP-FPM 33年5月5日,MariaDB的 工作量: 围绕120个不同的网站 Typo3-Sites(其余的也是由php驱动的)中的60个是120个。 问题: 但有时候,例如,当我们有一个包括mysqldump运行的备份工作时,我们有一个又一个的虚拟主机发出“max_children达到”信号并停止响应的问题。 当然,我们在低交通时间做备份,我们会接受一个短暂的“没有回应”,但这个僵局或封锁永远不会自行结束。 在手动重新启动php-fpm之后,任何事情都是好的。 即使在高交通时间,这个系统的正常行为也是完美无瑕,闪电般的。 大多数的核心是驴,我知道的其他参数是好的。 当然,在消息日志中(除​​了“max_children reached”之外)都没有提示日志文件条目,也没有任何的apache / vhosts日志。 是的,内存使用和开放的过程迅速增加。 有没有人有像我们这样的设置(我知道这个怪物里面有很多特别的东西),并且具有相同的或者看起来像是类似的问题,以及如何debugging这个问题的很酷的想法?

使用Nginx和PHP FPM进行primefaces部署

我试图获得primefaces部署,我不想丢失/丢弃任何请求。 我使用Capistrano部署代码,经典的情况是你有一个'当前'目录,这是'release'文件夹中最新版本的符号链接。 我正在使用Nginx,带有Opcache的PHP 5.5 FPM。 遵循在Nginx中使用$ realpath_root的想法,我期望一个简单的nginx重载就足够了,但事实并非如此。 用nginx重新加载,似乎我没有丢失任何请求,但php-fpm仍在执行前一个旧目录中的代码。 如果我做了一个“PHP的FMP重新加载”,然后PHP FPM阅读新的目录,但我仍然可以看到,我失去了一些要求: 'recv()失败(104:连接重置对等),而从上游读取响应头“ 问题是: 我应该重新加载PHP FPM吗? 根据我的理解,nginx将path传递给php-fpm,并从nginxdebugging日志中看到,通过的path是正确的,但是php-fpm仍然执行旧path。 2014/09/23 17:13:22 [debug] 26234#0: *1742 http script var: "/shop/www/htdocs/current/web" 2014/09/23 17:13:22 [debug] 26234#0: *1742 posix_memalign: 00000000010517A0:4096 @16 2014/09/23 17:13:22 [debug] 26234#0: *1742 http script copy: "SCRIPT_FILENAME" 2014/09/23 17:13:22 [debug] 26234#0: *1742 http script var: "/shop/www/htdocs/ive/releases/20140923124417/web" 2014/09/23 17:13:22 [debug] 26234#0: *1742 […]

networking服务器上奇怪的CPU加载峰值

我在我的网站上有奇怪的,非常奇怪的CPU负载高峰。 正常加载2-3个左右,当我有这个峰值时,大约是100-150个峰值,可能是在任何时候。 不取决于我正常的加载情况(例如上午6点),峰值2-3-5分钟 CPU负载影响networkingstream量和nginx请求的数量。 这一次我没有很多Web服务器的请求。 服务器是与另一台服务器上的nginx,php-fpm,redis,rabbit-mq,mysql分开的web服务器。 我真的需要build议,我怎么知道这个来源。 当我知道源,我会消除它。 我会很感激你的build议。 来自zabbix监控的图表:

Nginx服务器块不能正常工作

免责声明:只是澄清,我是Linux的全新,但我已经通过谷歌search和个人研究configuration一切。 我有一个Debian Wheezy服务器,我打算使用LEMP堆栈作为域的主机。 我得到了DNS的工作,所以当我进入域,我得到“欢迎nginx”页面。 麻烦的出现是因为我已经创build了将要托pipe该站点的目录,并使用该站点的文件(index.php是主页面)填充该目录,并且还configuration了服务器块(/ etc / nginx / sites- available / example.com)如下所示: UPDATED Server block server { listen 80; server_name example.com www.example.com; root /var/www/example.com; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.html; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/www/example.com; } location ~ […]

Php-fpm进程总是运行

我使用Nginx的Php-fpm(php 5.5 +操作码)为一个非常高的stream量网站,php-fpm状态端点来监视正在发生的事情。 经过一个大的交通高峰期,200个“活跃的过程”仍然运行,尽pipe没有更多的stream量。 这里我的php-fpm池configuration: pm.max_children = 1024 pm.start_servers = 32 pm.min_spare_servers = 32 pm.max_spare_servers = 64 pm.max_requests = 500 这里的“永远运行”过程的php-fpm状态的结果是: { pid: 24223, state: "Running", start time: 1415881336, start since: 1307629, requests: 186, request duration: 1306169216849, request method: "GET", request uri: "/index.php?loca…..", content length: 0, user: "-", script: "/home/ebuildy/app/index.php", last request cpu: 0, last […]

php5-fpm调用了oom-killer

我的一台服务器(Ubuntu 12.04,16CPU,32GB RAM)运行我的网站(Nginx 1.1.19,PHP5-FPM,Php 5.3.10,Symfony2 Web Framework) 突然,用户开始得到HTTP 5 **错误。 当我在服务器上,有大量的磁盘IO,罪魁祸首是[flush] 。 当我使用dmesg浏览内核日志时,显示了[flush]的原因是php5-fpm invoked oom-killer 事件发生时的内核日志条目: Jan 31 12:39:01 ip-10-0-0-160 kernel: [78817.295736] php5-fpm invoked oom-killer: gfp_mask=0x280da, order=0, oom_adj=0, oom_score_adj=0 Jan 31 12:39:01 ip-10-0-0-160 kernel: [78817.295740] php5-fpm cpuset=/ mems_allowed=0 Jan 31 12:39:01 ip-10-0-0-160 kernel: [78817.295743] Pid: 13310, comm: php5-fpm Not tainted 3.2.0-69-virtual #103-Ubuntu Jan 31 12:39:01 […]

configurationCentos7 Apache 2.4 php-fpm以用户身份运行

我想configuration一个Centos 7 Apache 2.4 Linode使用php-fpm来执行php作为文件所有者。 以前Centos6 / Apache2.2的文档不起作用,我在Centos7上设置Lamp服务器的configuration只是作为apache用户运行。 有没有好的教程来做到这一点,或者有人可以提供configuration文件和虚拟主机指令需要这样做吗? 谢谢。

NGINX / PHP-FPM:Ajax缓慢的第一个请求,好的下一个

CMS是Elxis ,它来自Joomla(PHP)的一个变体。 服务器正在使用PHP-FPM运行nGinx 所有的请求被logging和执行,最终,但! 当通过URL栏发起特定请求时,请求立即执行。 但是,当通过Ajax触发(通过jQuery),同样的请求有一个非常奇怪的行为。 即:首先请求(在媒体pipe理器上)查看图片的详细信息,将被解雇Ajax。 它被logging在浏览器上,但不在服务器上…不仅仅是…在一些好的40-50秒之后,请求出现在服务器上,然后立即作出响应。 所有以下请求立即执行,没有问题。 只有第一个是粗糙的 我遇到了麻烦,因为没有任何地方logging任何错误:除了第一个请求到达服务器的延迟之外,一切似乎都很正常。 这不是路由(网站已经启动,请求已经服务),这不是parsing(IP是在我的/ etc / hosts文件中)。 并添加一个小樱桃蛋糕上,尝试捕获服务器上的数据包(tcpdump)不产生输出:请求不在这里呢…在客户端也试过:没有输出 – 至less40秒.. 。 这一切都在浏览器上,开发者控制台显示没有错误,只是一个待处理的请求。 这有没有给任何人敲响钟声? The server: nginx version: nginx/1.6.2 PHP 5.6.7-1 (cli) PHP 5.6.7-1 (fpm-fcgi) jQuery版本1.11 客户端:试用Firefox 39(Ubuntu)和Chromium 41 注:我已经问过在stackoverflow相同的问题,因为我不能清楚地指出,如果它的代码或体系结构的责任…