server {
listen 80;
server_name xxx.com;
root /var/www/yyy.com/web;
location /adb/ {
resolver 127.0.0.1;
rewrite ^/adb/(.*)$ /$1 break;
proxy_pass http://yyy.com;
proxy_redirect default; #???
proxy_set_header Host yyy.com;
}
}
Не поленитесь поставить named на локалхост. В CentOS, например, достаточно запустить дефолтную конфигурацию (yum install bind && chkconfig named on && service named start). Так будет проще и быстрее резолвить, чем каждый раз стучаться в гуглоднс.
Далее - если не сделать rewrite с break, убрав ваш локейшн, то запрос на xxx.com/adb/ уйдет не на yyy.com, а на yyy.com/adb/. И если там такого урла нет - получим 404 или что-нибудь еще хуже.
Далее - если собрались проксировать трафик на yandex.ru, то при проксировании подставляйте заголовок "Host yandex.ru". Если оставить, как есть "Host $host", то получится, что на yandex.ru придет ваш запрос, который ищет xxx.com на хосте с yandex.ru, как следствие - 404.
Далее -
nginx.org/ru/docs/http/ngx_http_proxy_module.html#... - стоит разобраться с proxy_redirect. Для разных узлов возможны разные значения. Обычно хватает default, но вполне может понадобиться и off или другие параметры.
Чтобы заблокировать xxx.com/adb/logo.png при проксировании:
location ~ ^/adb/logo\.png$ {
empty_gif;
}
В location можно также и так:
location = /adb/logo.png {
Либо вместо empty_gif если надо отдавать свою картинку - тогда можно, например, сделать rewrite в нужный урл и отдавать картинку от себя.
P.S. Можно также сделать пару локейшнов для статических элементов, чтобы обрабатывать их отдельно и класть в локальный кеш - сокращается трафик и ускоряется доступ.