Basic_auth в nginx?
Доки читать не пробовали?
В них явно написано, что месторасположение локейшинов значения не имеют, приоритет идет у регулярных выражений. Посмотрите доклад Игоря по этому поводу, он там хорошо объясняет. Вот только как видео называется не помню, но он и не так много докладов делал по поводу конфига своего продукта ).
В общем, единственным рабочим на данный момент решением оказалось такое извращение:

location ~ /somewhere/.* {
auth_basic «Please log in»;
auth_basic_user_file /var/somewhere/.htpasswd;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/site.ru/somewhere$fastcgi_script_name;
include fastcgi_params;
gzip_static on;
}

При подобной сборке локейшена и скрипт исполняется, и авторизация работает. Однако мне очень и очень не нравится монструозность подобной конструкции. Буду благодарен, если кто-то поможет найти более элегантное решение.