Здравстуйте,
есть такой сетап:
интернет -> внешний 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;
}
[...]
И так как блоков сервер и локейшн много, не хотелось бы копипейстить.
Где и что можно применять стоит в документации, но вопрос в том, будет
ли работать хак с обновлением айпи адреса в резольвере?
С уважением,
Антон
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru