Re: Не понятное поведение при использовании proxy_pass в локейшене

Maxim Dounin mdounin на mdounin.ru
Пт Дек 8 15:27:18 UTC 2017


Hello!

On Fri, Dec 08, 2017 at 04:44:12PM +0200, Alex Domoradov wrote:

> Кстати хорошая идея. Ведь они сами предупреждают, что стоит использовать
> только CNAME при ссылке на ELB так как адреса могут поменяться.
> 
> Because the set of IP addresses associated with a LoadBalancer can change
> over time, you should never create an "A" record with any specific IP
> address. If you want to use a friendly DNS name for your load balancer
> instead of the name generated by the Elastic Load Balancing service, you
> should create a CNAME record for the LoadBalancer DNS name
> 
> В случае с ELK стеком, думаю там тоже стоят балансировщики, судя по выводу
> 
> $ host search-production.us-west-1.es.amazonaws.com
> search-production.us-west-1.es.amazonaws.com has address 52.8.xxx.xxx
> search-production.us-west-1.es.amazonaws.com has address 13.57.xxx.xxx
> 
> $ host 52.8.xxx.xxx
> xxx.xxx.8.52.in-addr.arpa domain name pointer
> ec2-52-8-xxx-xxx.us-west-1.compute.amazonaws.com.
> 
> $ host 13.57.xxx.xxx
> xxx.xxx.57.13.in-addr.arpa domain name pointer
> ec2-13-57-xxx-xxx.us-west-1.compute.amazonaws.com.
> 
> В моем случае получается, что nginx при старте отрезолвил имя
> search-production.us-west-1.es.amazonaws.com в одну пару ip адресов, а со
> временем они поменялись. И скорее всего я и получил эту ошибку. Отслеживать
> в ручную и делать reload это конечно не вариант. А как вообще стоит тогда
> настраивать nginx, если он стоит перед амазоновским elb, чтобы избежать
> подобных проблем в будущем?

Если вы проксируете на имена, которые не контроллируете, и 
IP-адреса могут меняться, то стоит посмотреть в сторону случаев, 
перечисленных в моём первом ответе, 
http://mailman.nginx.org/pipermail/nginx-ru/2017-December/060685.html:

: Исключения - "server ... resolve" в nginx-plus 
: (http://nginx.org/ru/docs/http/ngx_http_upstream_module.html#resolve) 
: и случаи, когда в proxy_pass используются переменные, и 
: соответственно имена не известны в момент парсинга конфигурации.  
: В этих случаях будет использован resolver.

-- 
Maxim Dounin
http://mdounin.ru/


Подробная информация о списке рассылки nginx-ru