Попробуй во втором вариенте вместо break использовать last. Там несколько иной механизм. Обычно break используется внутри location, а такой реврайт надо использовать вне всех локейшнов.
Если пользовательские приложения поддерживают 301 редирект - можно использовать вариант, который дал sim3x. Но в этом случае пользователь будет генерировать два запроса вместо одного.
Svav: resolver используется для разрешения имен в случае, если ты проксируешь не на IP-адрес, а на доменное имя. Если я правильно помню (надо в документации посмотреть), то nginx резолвит имена в конфиге один раз при старте. В случае, если у тебя стоит сторонний адрес - прибавь ко времени старта время, которое ушло на запрос для резолвинга имени. Если же у тебя есть локальный DNS, гораздо проще спрашивать у него - если имя уже есть в кеше DNS - резолвинг выполнится не за 50-100 мс, а гораздо быстрее.
Про картинку - я бы сделал так в секции server: rewrite ^/adb/logo.png$ /logo.png last;
Можно также вместо last попробовать break. Но, вроде как, особого различия в данном случае это дать не должно.