Зависит ещё и от данных, но в общем случае: отказываемся от AR, юзаем key-value вроде redis (идея описана, например, тут), весь процессинг делаем какой-нибудь очередью, например, zeromq.
Хм, у меня связка nginx+php держит сложный проект. В среднем 1 запрос потребляет 2-3Mb и выполняется ~0.015сек + для гостей отдаю кеш страницы ( на уровне nginx ). Я не отказывался от AR и тд, при этом выставил обработку до 600 клиентов/сек, остальные становятся в очередь. Отслеживаю ботов на уровне логов nginx и дропаю через ipset.