Edit report at http://bugs.php.net/bug.php?id=54499&edit=1
ID: 54499
User updated by: danger at freebsd dot org
Reported by: danger at freebsd dot org
Summary: FPM ping and status_path return HTTP 404 even though
I get the correct output
-Status: Feedback
+Status: Assigned
Type: Bug
Package: FPM related
Operating System: FreeBSD
PHP Version: 5.3.6
Assigned To: fat
Block user comment: N
Private report: N
New Comment:
I'm actually not using tcp between fpm and lighttpd in my setup, here's
my config:
$HTTP["host"] =~ "^web1$" {
fastcgi.server = ( "/php-" =>
(
( "socket" => "/tmp/php.sock",
"check-local" => "disable",
# "fix-root-scriptname" => "enable",
# "broken-scriptfilename" => "enable",
)
)
)
}
I also tried with combinations of "fix-root-scriptname" and
"broken-scriptfilename" enabled.
Previous Comments:
------------------------------------------------------------------------
[2011-04-09 13:10:26] [email protected]
I've setup a similar env with nginx in front instead of lighttpd. Ping
and status pages return 200
and everything works as expected.
As you're using TCP between lighttpd and FPM, can you trace the network
traffic to verify what FPM
returns:
tcpdump -X -s 0 -i any host 127.0.0.1 and port 9000
I really think FPM will return 200, and lighttpd converts it somehow in
404.
thx for the confirmation
------------------------------------------------------------------------
[2011-04-09 12:15:38] danger at freebsd dot org
the same HTTP Status code is returned for status too:
danger@[danger-mbp ~]> curl http://web1/php-status
pool: www
process manager: dynamic
accepted conn: 433678
idle processes: 32
active processes: 6
total processes: 38
max children reached: 0
danger@[danger-mbp ~]> curl -I http://web1/php-status
HTTP/1.1 404 Not Found
Content-type: text/html
Date: Sat, 09 Apr 2011 10:15:15 GMT
Server: Lighttpd 1.4.x
------------------------------------------------------------------------
[2011-04-09 12:14:18] danger at freebsd dot org
Description:
------------
I have set up status_path and ping features and I verified them to give
a correct output. However the php-fpm.conf states following:
"; This directive may be used to customize the response of a ping
request. The
; response is formatted as text/plain with a 200 response code.
; Default Value: pong"
Well that is my expectation too, as I would like to use the ping feature
together with some health checking, however although it responds with
the correct body set in ping.response (set to 1), the HTTP status header
is set to 404:
danger@[danger-mbp ~]> curl -I http://web1/php-ping
HTTP/1.1 404 Not Found
Content-type: text/html
Date: Sat, 09 Apr 2011 10:08:28 GMT
Server: Lighttpd 1.4.x
danger@[danger-mbp ~]> curl http://web1/php-ping
1
For this reason my health checking doesn't work correctly as it expects
200 OK.
As you can see, I am using lighttpd, with the configuration from the
last post from http://redmine.lighttpd.net/boards/2/topics/3923.
Expected result:
----------------
HTTP/1.1 200 OK
Actual result:
--------------
HTTP/1.1 404 Not Found
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=54499&edit=1