Uygulama başına bir ELB kullanmak buraya gitmenin yoludur.
İlk olarak, her uygulama kendi etki alanındaysa ve SSL'yi desteklemeniz gerekiyorsa, bunlara yine de ihtiyacınız olabilir. Amazon ELB'leri şu anda her etki alanı için yalnızca bir SSL sertifikasına izin vermekte ve her SSL etkin etki alanı için ayrı ELB'ler gerektirmektedir. (Joker karakterli SSL sertifikaları bir istisnadır).
Buradaki zorluk, ELB sağlık kontrollerinin şu anda bir EC2 örneğinde barındırılan belirli bir sanal etki alanına yönlendirilememesidir. ("Ana Bilgisayar:" başlığı gönderilmez). ELB durum ping'leri, sanki tarayıcınızda EC2 örneği için IP adresini yüklemişsiniz gibi her zaman varsayılan etki alanına gider. Bu nedenle, varsayılan etki alanındaki sağlık denetimlerini almak ve daha sonra belirli bir uygulamanın sağlık durumu ile yanıt vermek için biraz tutkal gerekir.
İşte bir Nginx server
yönergesine eklenebilecek çalışan bir örnek yapılandırma . Yük dengelemeli EC2 bulut sunucularının her birine kurulacaktır.
# This goes in the `server` block noted by 'default_server', often /etc/nginx/sites-enabled/default
# All AWS Health Checks from the ELBs arrive at the default server.
# Forward these requests on the appropriate configuration on this host.
location /health-check/ {
rewrite ^/health-check/(?<domain>[a-zA-Z0-9\.]+) /api/v1/status break;
# Lie about incoming protocol, to avoid the backend issuing a 301 redirect from insecure->secure,
# which would not be considered successful.
proxy_set_header X-Forwarded-Proto 'https';
proxy_set_header "Host" $domain;
proxy_pass http://127.0.0.1;
}
"First-application.com" için ELB'nin "Sağlık Kontrolü" ayarında, "HTTP" ve Bağlantı Noktası 80'i seçip aşağıdaki gibi bir yol girersiniz:
/health-check/first-application.com
Ana bilgisayarda yukarıdaki Nginx yapılandırması çalıştığında, istek varsayılan etki alanında alınır ve aynı ana bilgisayardaki Nginx yapılandırmasından gelen yanıtı https://first-application.com/api/v1/status için proxy olarak belirtir.
Bu yaklaşımla Nginx'te uygulama başına yapılandırma yoktur. Her uygulama benzersiz bir alan adına sahip olduğu sürece, her uygulama için bir ELB ayarladığınızdan emin olmanız yeterlidir.