2016-09-10 21 views
6

Mam instancję nginx w AWS, która ma warstwę aplikacji upstream.nginx keepalive i dns resolver

Istnieją dwa wymagania dla nginx
- keepalive
- używają do rozpoznawania nazw dynamicznie rozwiązać upstream

jestem w stanie zrobić żadnej z nich nie działa.

Oto config do wykonywania pracy keepalive:

upstream "backend" { 
    server "appserver.example.com:443"; 
    keepalive 250; 
} 

server {   
    resolver 10.0.0.2 valid=60s; 
    server_name _; 
    location/{ 
       proxy_http_version 1.1; 
       proxy_pass https://backend; 
    } 
} 

Oto config do rozpoznawania nazw DNS do pracy:

server {   
    resolver 10.0.0.2 valid=60s; 
    server_name _; 
    set $backend appserver.example.com:443; 
    location/{ 
       proxy_http_version 1.1; 
       proxy_pass https://$backend; 
    } 
} 

Jak mogę uzyskać zarówno rozpoznawania nazw DNS i podtrzymywanie pracy bez korzystania wtyczka innej firmy w otwartym kodzie źródłowym NGinx

+0

Można to zrobić natywnie za pomocą Nginx Plus. Zastanawiam się, dlaczego utrzymanie ruchu jest wymagane, czy dany serwer znajduje się w innym miejscu niż Nginx, a opóźnienie pomiędzy wysokimi? – Anatoly

Odpowiedz

0

Zgodnie z tym Nginx wiki page wydaje się, że jest jdomain Plugin

http { 
    resolver 8.8.8.8; 
    resolver_timeout 10s; 

    upstream backend { 
     jdomain www.baidu.com; 
     # keepalive 10; 
    } 
    server { 
     listen  8080; 

     location/{ 
      proxy_pass http://backend; 
     } 
    } 
} 
Powiązane problemy