# needed if your proxy destination specified with domain name instead of IP address
resolver 8.8.8.8;
location /home/ {
proxy_set_header Host HOST1;
# setup other proxied headers if needed
if ($http_referer ~ ^https?://dev.xyz.com/home) {
rewrite ^/home(/.*)$ HOME_PAGE$1 break;
proxy_pass https://HOST1:8080; # this can be specified by IP address
}
}
При таких настройках запросы на your_domain.com/home/path/file
от dev.xyz.com/home/...
(но не от dev.xyz.com/any/other/path
!) Будут проксироваться до https://HOST1:8080/HOME_PAGE/path/file
.Если вы указываете адрес прокси-сервера с именем домена вместо IP-адреса, вам потребуется указать дополнительный параметр resolver
в конфигурации вашего сервера.Вы можете использовать свой локальный сервер имен, если он у вас есть, или использовать что-то внешнее, например, общедоступный DNS Google (8.8.8.8) или DNS, предоставленный вам вашим провайдером.В любом случае такая конфигурация приводит к дополнительным поискам DNS, поэтому, если вы можете, укажите адрес прокси-сервера с IP-адресом.
Обновление
Есть еще один способ сделать это с помощьюvalid_referers
директива:
# needed if your proxy destination specified with domain name instead of IP address
resolver 8.8.8.8;
location /home/ {
proxy_set_header Host HOST1;
# setup other proxied headers if needed
valid_referers example.com/home;
if ($invalid_referer = "") {
rewrite ^/home(/.*)$ HOME_PAGE$1 break;
proxy_pass https://HOST1:8080; # this can be specified by IP address
}
}