Относительно MD5 вопрос только в части того, почему до сих пор нет встроенной функции, а вместо неё приходится работать через perl, что явно ресурсозатратнее, чем если была бы строенная.
Второй вопрос более актуален. Перелопатив всю возможную документацию не смог найти как в nginx получить значение переменной из memcached?
Нужно что-то вроде:
if (memcachedget('denyip'.$remote_addr)==1) {return 444;}
Пока как вариант получается нужно определив скриптом клиента для блокировки запихать его в файл, и через geo вытаскивать nginx-ом, к тому же, если я правильно понимаю, не забыв еще и nginx reload сделать, что как бы в миллион раз затратнее.