Sử dụng một ELB cho mỗi ứng dụng là cách để đi đến đây.
Trước tiên, bạn có thể cần chúng bằng mọi cách nếu mỗi ứng dụng nằm trên miền riêng của nó và bạn cần hỗ trợ SSL. Các ELB của Amazon hiện chỉ cho phép một chứng chỉ SSL cho mỗi tên miền, yêu cầu ELB riêng cho từng miền hỗ trợ SSL. (Chứng chỉ SSL Wildcard là một ngoại lệ).
Thách thức ở đây là kiểm tra sức khỏe ELB hiện không thể được chuyển đến một miền ảo cụ thể được lưu trữ trên một phiên bản EC2. (Không có tiêu đề "Máy chủ:" được gửi). Các lệnh sức khỏe ELB luôn đi đến miền mặc định, như thể bạn đã tải địa chỉ IP cho phiên bản EC2 trong trình duyệt của bạn. Vì vậy, một số keo được yêu cầu để nhận các kiểm tra sức khỏe trên miền mặc định và sau đó trả lời với trạng thái sức khỏe của một ứng dụng cụ thể.
Đây là một cấu hình ví dụ hoạt động có thể được thêm vào một lệnh Nginx server
. Nó sẽ được cài đặt trên mỗi phiên bản EC2 đang được cân bằng tải.
# 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;
}
Trong cài đặt "Kiểm tra sức khỏe" của ELB cho "first-application.com", bạn sẽ chọn "HTTP" và Cổng 80 và nhập một đường dẫn như:
/health-check/first-application.com
Với cấu hình Nginx ở trên đang chạy trên máy chủ, yêu cầu sẽ được nhận trên miền mặc định và ủy quyền phản hồi từ cấu hình Nginx trên cùng một máy chủ cho https://first-application.com/api/v1/status
Với phương pháp này, không có cấu hình cho mỗi ứng dụng trong Nginx. Miễn là mỗi ứng dụng có một tên miền duy nhất, bạn chỉ cần đảm bảo rằng bạn đã thiết lập ELB cho mỗi ứng dụng một cách thích hợp.