question about nginx, slowloris and fastcgi

Michiel van Es info at pcintelligence.nl
Thu Jul 2 00:22:30 MSD 2009



Maxim Dounin wrote:
> Hello!
> 
> On Wed, Jul 01, 2009 at 03:19:08PM +0200, Michiel van Es wrote:
> 
>>
>> -------- Original Message --------
>> Subject: Re: question about nginx, slowloris and fastcgi
>> From: Maxim Dounin <mdounin at mdounin.ru>
>> To: nginx at sysoev.ru
>> Date: 07/01/2009 02:30 PM
>>
>>> Hello!
>>>
>>> On Wed, Jul 01, 2009 at 01:59:31PM +0200, Michiel van Es wrote:
>>>
>>>> Hi,
>>>>
>>>> i am new to Nginx and I am testing the latest stable Nginx as webserver
>>>> with slowloris.
>>>> When I test slowloris on my php enabled website I see Nginx running to
>>>> 100% and get the following error:
>>>>
>>>> 500 Internal Server Error
>>>>
>>>> I don't think Nginx crashes (although the 100% cpu concerns me) but I
>>>> think fastcgi/php is crashing.
>>> What's in error_log?
>> 2009/07/01 13:43:01 [alert] 25226#0: accept() failed (24: Too many open
>> files)
>> 2009/07/01 13:43:01 [alert] 25226#0: accept() failed (24: Too many open
>> files)
>> 2009/07/01 13:43:01 [alert] 25226#0: accept() failed (24: Too many open
>> files)
>> 2009/07/01 13:43:01 [alert] 25226#0: accept() failed (24: Too many open
>> files)
>> 2009/07/01 13:43:01 [alert] 25226#0: accept() failed (24: Too many open
>> files)
>> 2009/07/01 13:43:01 [alert] 25226#0: accept() failed (24: Too many open
>> files)
>> 2009/07/01 13:43:01 [alert] 25226#0: accept() failed (24: Too many open
>> files)
>> 2009/07/01 13:43:01 [alert] 25226#0: accept() failed (24: Too many open
>> files)
>> 2009/07/01 13:43:01 [alert] 25226#0: accept() failed (24: Too many open
>> files)
>>
>>> Symptoms suggest that you've run out of file descriptors in your 
>>> OS.  At start nginx tries to warn you about the problem if 
>>> worker_connections are more than open file resource limit, but 
>>> even this isn't enough (since every connection usually allocates at 
>>> leas 2 file descriptors, and system-wide limit for all processes 
>>> isn't taken into account).
>> You're right but how can I stop this?
> 
> See your OS tuning guides.  Under FreeBSD use something like:
> 
> sysctl kern.maxfiles=65535
> sysctl kern.maxfilesperproc=60000
> 
> Note that other OS limits likely needs tuning too.

I have to tune CentOS file handles and network proc's right?
And then it should protect me from slowloris?

> 
>> Or how canI stop the slowloris attack..is it php fastcgi which is
>> vulnerable to the slowloris DoS?
> 
> When nginx with fastcgi_pass used in front of fastcgi - slowloris 
> attack won't reach fastcgi.

What is the fastcgi_pass? Is it included in the nginx installation?
I am using a rather old nginx install from the Epel repositories for CentOS.

> 
> Maxim Dounin
> 
Michiel





More information about the nginx mailing list