Добрый день.
Есть следующая ситуация.
Есть куча несколько бакэндов (серверов):
srv1.company-internal.com
...
srvN.company-internal.com
Есть 1 кэширующий прокси, который обслуживает домены:
srv1.company.com
...
srvN.company.com
Смысл такой, что прокси кэширует запросы к бакэндам (proxy_store) по куче
разных location'ов.
Проблема в том, что бакэнды имеют разные IP и каждый запрос на публичный
домен надо отправлять на
соответствующий private домен. То есть хочется на прокси сделать что-то вроде:
server {
server_name srv1.company.com .. srvN.company.com;
location1 {
...
error_page 404 = @fetch;
}
...
locationN {
...
error_page 404 = @fetch;
}
location @fetch {
internal;
if ($host ~ "^(.*).company.com$") {
set $h $1.company-internal.com;
}
proxy_pass http://$h;
#
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
proxy_store /path/$host$request_uri;
proxy_store_access user:rw group:rw all:r;
}
}
Вопрос - как это лучше сделать? Делать "server {}" для каждого домена очень
не хочется...
--
Best regards,
Sukhachev Andrew