Hello! On Sat, Jul 05, 2014 at 10:47:43PM -0400, justink101 wrote:
> I have a php-fpm pool of workers which is 6. There are long running requests > being sent, so I have the following fastcgi directives set: > > fastcgi_connect_timeout 15; > fastcgi_send_timeout 1200; > fastcgi_read_timeout 1200; > > However right now, if the php-fpm pool of workers is full, a request waits > the full 20 minutes. I'd like requests to fail with a 502 status code if the > php-fpm pool of workers is full instead. This change should still allow long > running requests (max 20 minutes) though. I would have thought if the > php-fpm pool workers are all being used, a request would timeout in 15 > seconds according to fastcgi_connect_timeout, but this does not seem to be > the case. >From nginx side a connection in a backend listen queue isn't distinguishable from an accepted connection, hence fastcgi_connect_timeout doesn't apply as long as a backend is reacheable and it's listen queue isn't full. (And fastcgi_send_timeout doesn't apply either if a request is small enough to fit into socket send buffer.) To reduce a number of affected requests you may consider using smaller backlog in php-fpm, see here: http://www.php.net/manual/en/install.fpm.configuration.php#listen-backlog -- Maxim Dounin http://nginx.org/ _______________________________________________ nginx mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx
