¿Puedo negar en nginx basado en URI e IP?

¿Puedo negar en nginx basado en URI e IP?

Básicamente tengo un sitio de WordPress (con una tienda de comercio electrónico y un inicio de sesión social). He negado todo acceso a wp-login.php según la dirección IP. El problema es que el inicio de sesión social utiliza este archivo wp-login. Entonces me pregunto si es posible: - bloquear casi todas las consultas a wp-login.php por dirección IP y permitir por IP solo consultas específicas. Es decir,
wp-login.phppermitir 1 ip denegar todo
wp-login.php?action=lostpasswordpermitir 1 ip denegar todo
wp-login.php?action=rp&key=.*?&login=.*permitir 1 ip denegar todo
.
.
wp-login.php?ywsl_social=google permitir todas las ip
wp-login.php?ywsl_social=twitter permitir todas las ip

Algo como esto:

location = /wp-login.php {
    if ($query_string = "ywsl_social=google|ywsl_social=twitter") 
        {
            allow all;
            fastcgi_pass   unix:/var/sockets/sock.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
            fastcgi_param HTTPS on;
    }
    else {
            allow 1.1.1.1;
            deny all;
            fastcgi_pass   unix:/var/sockets/sock.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
            fastcgi_param HTTPS on;
        }

información relacionada