nginx keeps locking up. I've been being DDOSed for the past couple days now. It's a large POST flood. Well, a mixture between GET and POST. The GET doesn't seem to be effective, and I've put a page in front of the login page so that users have to fill in a CAPTCHA before logging in, to prevent the login flood the user was attempting before. (He's still attempting it, flooding both my login pages). Now he's flooding my page that verifies the CAPTCHA, which is the only thing that's managing to affect it now. I'm not sure why it's affecting my server so well, though. It makes the web server completely unreachable. There seems to be a large delay between requests to the verification page, so I believe what he's doing is simply telling nginx that he's going to send POST data, and then sends it very slowly to hold the connection open. Is there a way I can basically time out the connection in this case?
ALSO, now it's a HEAD flood, which doesn't seem to be having any effect whatsoever. Watching all these connections fly by on my terminal.
EDIT: Yup, now I know it's a slow HTTP request attack. Some of these requests are 30k bytes just to login or to submit a CAPTCHA. nginx is taking 20-300 seconds to reply to some of them.
EDIT: To expand on that, I'm fairly certain it's a slow POST flood.