Para preparar a autorização com o captcha, precisamos do próprio 
nginx e de seus plugins 
sessão criptografada , 
entrada de formulário , 
ctpp2 , 
eco , 
headers-more , 
auth_request , 
auth_basic , 
set-misc . (Forneci links para meus garfos, porque fiz algumas alterações que até agora não puderam ser enviadas para os repositórios originais. Você também pode usar a imagem 
pronta .)
Para começar, definimos
encrypted_session_key "abcdefghijklmnopqrstuvwxyz123456"; 
Em seguida, por precaução, desative o cabeçalho da autorização
 more_clear_input_headers Authorization; 
Agora protegemos tudo com autorização
 auth_request /auth; location =/auth { internal; subrequest_access_phase on;  
Para usuários autorizados, mostramos o conteúdo da pasta
 location / { alias html/$remote_user/; } 
E, na falta de autorização, mostramos o formulário de autorização com captcha
 error_page 401 = @error401; location @error401 { set_escape_uri $request_uri_escape $request_uri;  
login.html
 <html> <body> <form method="post"> <input type="hidden" name="csrf" value="<TMPL_var csrf>" /> username: <input type="text" name="username" placeholder="Enter User Name..." /><br /> password: <input type="password" name="password" /><br /> captcha: <img src="/captcha?csrf=<TMPL_var csrf>"/><input type="text" name="captcha" autocomplete="off" /><br /> <input type="submit" name="submit" value="submit" /> </form> </body> </html>