nginx вопрос по regexp
Во-первых /[a-zA-Z0-9\.]+\.(pgp|gpg|key)$ будет соответствовать любому URI оканчивающемуся на /*.pgp (в том числе и /something/*.pgp), вы сами не привязали регулярку к началу "^".

Во-вторых, так уже прямо вам реврайт нужен?

location ~* ^/[a-z0-9\.]+\.(pgp|gpg|key)$ {
    try_files /www/http/_global/key.pgp =404;
}
вот тут хорошо описаны приоритеты локейшенов.