Edit report at https://bugs.php.net/bug.php?id=60891&edit=1
ID: 60891 Updated by: f...@php.net Reported by: erno dot kovacs at freemail dot hu Summary: FPM status serving should be moved to the master process -Status: Analyzed +Status: Feedback Type: Bug Package: FPM related Operating System: Any PHP Version: 5.3.9 Assigned To: fat Block user comment: N Private report: N New Comment: Here is the first revision of the patch (it needs some verifications and there should be some missing free(), but it works on my side). It can be applied on the last 5.3 snapshot (not sure it will applies correctly on older version/revision). Here's what's new: - new FPM configuration item for pool: pm.status_allow which is unset by default. Add the names of the other pool you want to access from this pool (use a comma (,) as a separator). If one of the element is the char '*', then all pool are available from this pool status page - call the status page of this pool adding a pool=xxx in the query string and there it's supposed to work Exemple: for having a dedicated pool which only respond to the /status page and permit to see all pools status : add the following pool to your php-fpm.conf [status] listen=/tmp/status.sock user = nobody ;use a low privilege user, nothing is needed here group = nogroup pm = ondemand pm.max_children = 1 ;set a higher value if you need parallal requesting to the status page pm.status_path = /status pm.status_allow = * ; allow to see all pool status chroot = /var/empty ; chroot to un empty directory for security reason security.limit_extensions = .nonexistantextesionxxxxx ; limit to only one neverused extension it'll only respond to the /status page (because of the pseudo random security.limit_extensions) and it's possible to see all pool status page: http://xxx/status?pool=pool1 http://xxx/status?pool=pool2&full http://xxx/status?pool=pool3&json&full Waiting to here from you on this. ++ fat Previous Comments: ------------------------------------------------------------------------ [2012-05-28 23:08:16] f...@php.net The following patch has been added/updated: Patch Name: bug60891-v1.patch Revision: 1338246496 URL: https://bugs.php.net/patch-display.php?bug=60891&patch=bug60891-v1.patch&revision=1338246496 ------------------------------------------------------------------------ [2012-01-26 14:57:22] ml at fatbsd dot com for security reason and by design it's not possible to make the master process to listen to those requests. The only possibility is to fork another process only to handle this. And this is quite a a big change. It's on my todo list but no ETA yet. ++ fat ------------------------------------------------------------------------ [2012-01-26 13:08:01] erno dot kovacs at freemail dot hu Description: ------------ When the server is overloaded, you cant query the FPM status page, however it should be its primary goal: being able to check whats going on. This way this cool feature is pointless. Test script: --------------- fpm conf: pm = dynamic pm.max_children = 1 pm.start_servers = 1 pm.min_spare_servers = 1 pm.max_spare_servers = 1 test script: <? sleep(60); ?> And while the only worker process is sleeping, send a query to the status page. It wont be served. Expected result: ---------------- Status page. Actual result: -------------- Hanging ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=60891&edit=1