Вопрос такой. В качестве акселератора nginx работает совершенно
замечательно, но мы бы хотели попробовать его в качестве
load-balancer. В связи с этим интересно, планируется ли в будущем
поддержка в proxy_pass (или каким-то другим методом) таблиц
маршрутизации запросов по домену? То есть сейчас, насколько я понял,
возможно только жесткое соответствие ext ip -> int ip, и если мы убираем
наши web-сервера на внутренние адреса, мы должны каждому внутреннему
ip сопоставить внешний ip, прописать для него server {}, и
установить там location / { proxy_pass http://internal.ip/; }.
А если надо, предположим, оставить один внешний общий ip, и
раскидывать запросы по внутренним серверам, базируясь на основе
соответствия домен -> внутренний ip сервера?
Описанная схема - это не load-balancer. Load-balancer - это когда
одному домену соответствует несколько одинковых бэкендов.
Жёсткого соответствия ext ip -> int ip нет.
Описанная Вами схема реализуется примерно таким конфигом:
proxy_preserve_host on;
server {
listen 80;
server_name default.domain.net;
location / { proxy_pass http://10.1.1.1/; }
}
server {
listen 80;
server_name one.domain.net;
location / { proxy_pass http://10.1.1.2/; }
}
server {
listen 80;
server_name two.domain.net;
location / { proxy_pass http://10.1.1.3/; }
}
nginx слушает на одном порту (и возможно, адресе) и передаёт
запросы на разные бэкенды в зависимости от имени хоста.
Игорь Сысоев
http://sysoev.ru