Articles of FastCGI的

Apache与PHP fastcgi不断下降

我有一个configuration了MPM worker和php fast cgi的apache2服务器。 最近apache日志告诉我,MaxClients经常到达,即使它已经非常高。 我的服务器现在不断下降,我在日志中看到了一堆这样的行: [Sun Mar 06 04:25:40 2011] [error] [client 50.16.83.115] FastCGI: comm with (dynamic) server "/var/local/fcgi/php-cgi-wrapper.fcgi" aborted: (first read) idle timeout (20 sec) [Sun Mar 06 04:25:40 2011] [error] [client 50.16.83.115] FastCGI: incomplete headers (0 bytes) received from server "/var/local/fcgi/php-cgi-wrapper.fcgi" 我可以看到我的php-cgi进程非常大(平均大约70mb)。 这里是我的MPM worker的apacheconfiguration:KeepAlive ON KeepAliveTimeout 2 <IfModule mpm_worker_module> StartServers 5 MinSpareThreads […]

nginx导致504错误,但我的应用程序仍在运行

因此,我们使用Node.js来为CompassionPit.com提供动力,并且全部由nginx提供。 nginx正在抛出一个504网关超时 有趣的是,如果我导航到http://compassionpit.com/index.html ,那么我可以访问该页面(我相信所请求的是通过端口8000上运行的节点应用程序路由)。 和http://compassionpit.com/blog/正在工作。 但http://compassionpit.com/已closures。 🙁 帮帮我? root@li70-243:~# cat /etc/nginx/sites-enabled/blog server { listen 80 default; # your server's public IP address server_name compassionpit.com; index index.html; location /blog/wp-content/ { alias /opt/blog/wp-content/; } location /blog/ { root /opt/; include fastcgi_params; fastcgi_pass localhost:8080; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location / { alias /opt/chat/static/; if (-f $request_filename) […]

如何在nginx上添加一个新的网站到fastcgi-mono-server4进程,而无需重启现有的网站?

我知道这可能是相关的,但我有一个脚本,加载configuration文件上定义的网站fastcgi单一服务器,我需要一个新的网站到池,而无需重新加载所有fastcgi进程。 干 nginx -s reload 只需重新加载每个服务器(网站)configuration,我需要一个更stream畅的过程来添加一个新的asp.net网站到当前的工作进程。

mod_spdy问题和猜测

我尝试了mod_spdy,我遇到了一个问题 – 它似乎与AJAX请求和mod_php不兼容,如下所示: https : //www.modspdy.com/blog/2012/04/15/using-mod_spdy -with-PHP / 解决scheme似乎是通过fastCGI运行PHP脚本。 现在我的第一个问题是,为什么呢? 有没有可能是某种解决方法? 这种不兼容性只是暂时的吗? 我不想将整个生产服务器切换到fastCGI。 那会有什么好处呢? 另外,我不明白为什么需要https。 为什么不能简单的说,从mod_spdy的静态,网站获得速度? 我在这里寻找简单的猜测 – 你认为mod_spdy将在没有mod_ssl要求的情况下可用,或者是架构如此不同以至于我不应该期待它? 我希望我能清楚地expression我的想法。 谢谢你的想法。

Haproxy没有正确传递X-Forwarded-For头

我有通过haproxy-> nginx-> fastcgi接收请求的后端Web服务器。 Web应用程序用于查看多个IP在X-Forwarded-For标题中出现,并与逗号(左边最原始的IP)链接在一起。 在最近的某个时间点(刚刚注意到,所以不知道是什么原因造成的)发生了一些变化,现在我只看到一个单一的IP传递到我的Web应用程序的头部。 我用haproxy 1.4.21和1.4.22(最近升级)尝试了相同的行为。 Haproxy有前锋标题集: option forwardfor Nginx的fastcgi_paramsconfiguration定义这个头被传递给应用程序: fastcgi_param HTTP_X_FORWARDED_FOR $http_x_forwarded_for; 任何人有什么想法可能会出错在这里? 编辑:我刚开始在nginx日志中logging$ http_x_forwarded_forvariables,而nginx只能看到一个单一的IP,而不应该永远如此,因为我们应该总是看到我们的haproxy IP添加在那里,对吗? 所以,问题必须在nginx处理的variables进来,或haproxy不适当的build设。 我会继续挖… 编辑#2:我启用HAProxy中的请求和响应头日志logging,它不是吐出X-Forwarded-For任何东西,这似乎很奇怪: Oct 10 10:49:01 newark-lb1 haproxy [19989]:66.87.95.74:47497 [10 / Oct / 2012:10:49:01.467] http service / newark2 0/0/0/16/40 301 574 – – —- 4/4/3/0/0 0/0 {} {} “GET / 2zi HTTP / 1.1”O 以下是我在前台设置的选项: mode http […]

php-fpm是否可以为单个用户池的多个虚拟主机dynamic设置open_basedir?

我遇到了一个问题,试图在nginx(和apache)下为php-fpmdynamic地设置open_basedir,当运行php-fpm作为用户“nobody”(出于传统原因)时,其他虚拟主机正在“stream血”。 运用 fastcgi_param PHP_ADMIN_VALUE "open_basedir=/home/mike/htdocs"; 和 fastcgi_param PHP_ADMIN_VALUE "open_basedir=/home/adam/htdocs"; 等适用于每个虚拟主机(PHP 5.3.20) phpinfo显示正确的open_basedir被设置,但最终(相当快)我开始得到错误,其中一个虚拟主机将运行到错误的open_basedir,试图执行一个程序的“迈克”,但有open_basedir“亚当” 。 由于fastcgi_param只是基本上为php-fpm设置环境,我认为正在发生的事情是同一个worker会在处理php文件时改变它的环境。 不知何故服务器,如litespeed也使用fastcgi php进程(无人运行)得到这个权利,正确地工作与open_basedir可以设置外部没有“stream血”之间的虚拟主机。 所以我想知道是否有一个技巧或解决办法,我可以用来保持作为“无人”运行,并保持虚拟主机之间的环境。 我应该注意到我正在使用unix套接字,而不是TCP / IP,但我不认为这是有所作为。

Apache fast-cgi和php-fpm无法运行php文件?

我一直试图将我的服务器从mod php切换到在osx(作为开发机器)上运行的apache服务器上设置的fastcgi。 我的问题是,PHP的FPM似乎并没有处理文件。 当我尝试访问这些页面时,Web服务器只是将它们作为下载传递给他们。 以前,它已经禁止我看到网页,并给我的网页作为纯文本。 我尝试用nginx设置服务器,并得到同样的问题。 我查看了Apache和php-fpm的错误日志。 apache错误日志: [Tue Jul 08 21:30:56 2014] [notice] FastCGI: process manager initialized (pid 1200) [Tue Jul 08 21:30:56 2014] [notice] Apache/2.2.26 (Unix) mod_fastcgi/2.4.6 DAV/2 mod_ssl/2.2.26 OpenSSL/0.9.8y mod_perl/2.0.7 Perl/v5.16.2 configured — resuming normal operations 和PHP的FMP [08-Jul-2014 21:33:49] NOTICE: [pool www] 'user' directive is ignored when FPM is not running as […]

PHP的FPM,位置嵌套与unnested避免代码执行

有什么优势使用: location ~ \.php { location ~ \..*/.*\.php$ { return 403; } fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_split_path_info ^(.+\.php)(/.*)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; fastcgi_param DOCUMENT_ROOT $realpath_root; fastcgi_intercept_errors on; } 相比 location ~ \..*/.*\.php$ { return 403; } location ~ \.php { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_split_path_info ^(.+\.php)(/.*)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; fastcgi_param DOCUMENT_ROOT $realpath_root; fastcgi_intercept_errors on; } 我想避免在这里显示的任意代码执行: […]

Nginx + PHP的FASTCGI失败 – 如何debugging?

我有一个运行Nginx + PHP的AMAZON EC2服务器,通过端口9000与PHP FASTCGI。 服务器运行良好几分钟,过了一会儿(在这种情况下有几千次命中)FastCGI Dies和Nginx返回502错误。 Nginx日志显示 2010/01/12 16:49:24 [error] 1093#0: *9965 connect() failed (111: Connection refused) while connecting to upstream, client: 79.180.27.241, server: localhost, request: "GET /data.php?data=7781 HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "site1.mysite.com", referrer: "http://www.othersite.com/subc.asp?t=10" 我怎样才能debugging是什么造成FastCGI死亡?

IIS6 + PHP + FastCGI 500错误 – 从哪里开始寻找?

我已经用FastCGI设置IIS6来使用php-cgi.exe。 我有一些外部的PHP网站,我试图在testing环境中运行。 其中一个网站只是简单的给我一个FastCGI错误页面。 这不会发生在每个页面上,它似乎只发生在某些页面上,而其他页面则正确显示。 问 :是否有某种方法可以在某处启用日志logging,以便我可以获得有关此问题的更多信息? 我已经看了 事件日志 IIS网站日志(c:\ windows \ system32 \ Logfiles) PHP日志 但没有结果,除了IIS网站日志提到一个500页的返回。 问题 :有没有其他的方式来debugging/检查哪里可能出错? 以下是该页面的样子: FastCGI错误 FastCGI处理程序无法处理请求。 错误详情: FastCGI进程意外退出错误号:-1073741571(0xc00000fd)。 错误描述:未知错误HTTP错误500 – 服务器错误。 Internet信息服务(IIS) 回答 显然,错误消息意味着堆栈溢出,所以debugging是消息。 我不是一个PHP开发人员,所以这是一个非常痛苦的过程。 然而,我们把问题缩小到Ajax请求,但我想这可能会发生任何types的请求: 请求本身导致服务器返回500.在用Fiddler尝试请求之后,我们发现GET请求中的Cookie条目包含一个PHPSESSID项目。 当离开这个,请求确实工作。 所以这个问题的答案(在我们的例子中)是从请求中删除PHPSESSID。 现在剩下的就是搞清楚如何做到这一点:)