Проксирование на aws/alb
Anton Bessonov
exelib на gmail.com
Чт Май 25 10:37:50 UTC 2017
Здравстуйте,
есть такой сетап:
интернет -> внешний alb -> энджин (ECS-Cluster) -> внутренний alb ->
кучка сервисов (ECS-Cluster).
alb меняет время от времени свой айпи адрес, а энджин новый адрес не
резольвит. Нашол
https://distinctplace.com/2017/04/19/nginx-resolver-explained/. Как
узнать айпи адрес резольвера? ЛоадБалансер прикреплён к двум AZ: CIDR
10.180.24.0/21 <http://10.180.24.0/21> и 10.180.32.0/21
<http://10.180.32.0/21>. Правильно ли я понимаю, что конфигурация должна
выглядить следующим образом (особенно айпи резольвера при ECS):
server {
listen 0.0.0.0:8000 <http://0.0.0.0:8000>;
location /service {
resolver 10.180.24.2 10.180.32.2 valid=5s;
set $upstream_endpoint http://${ALB_URL};
proxy_pass $upstream_endpoint;
}
location /otherservice {
resolver 10.180.24.2 10.180.32.2 valid=5s;
[...]
Как я понимаю, то при смене айпи есть вероятность в течении 5ти секунд,
что возникнет предыдущая ощибка:
connect() failed (113: No route to host) while connecting to upstream
Как можно избежать этого?
Ну и вопрос удобства. Что можно куда вынести из локейшн? В данный момент
конфиг выглядит следующим образом:
upstream frontend {
server ${ALB_URL};
}
server {
listen 0.0.0.0:8000 <http://0.0.0.0:8000>;
location /service {
proxy_pass http://frontend;
}
location /otherservice {
proxy_pass http://frontend;
}
[...]
И так как блоков сервер и локейшн много, не хотелось бы копипейстить.
Где и что можно применять стоит в документации, но вопрос в том, будет
ли работать хак с обновлением айпи адреса в резольвере?
С уважением,
Антон
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20170525/57d21eaa/attachment.html>
Подробная информация о списке рассылки nginx-ru