Tôi có thiết lập sau vì tôi đang đặt nginx trước hai dịch vụ ứng dụng Azure ở các khu vực khác nhau - nếu không có dịch vụ này (ví dụ: có các dịch vụ ứng dụng trực tiếp trong khối ngược dòng của tôi), có vẻ như nginx đang kết nối với Azure bằng địa chỉ IP thay vì địa chỉ IP tên máy chủ nên bộ cân bằng tải Azure không biết định tuyến yêu cầu ở đâu - hoặc không đặt tiêu đề Máy chủ thành giá trị chính xác.
Nhưng bây giờ tôi gặp sự cố là khối ngược dòng của tôi sẽ không bị lỗi nếu máy chủ trong khối máy chủ liên quan ngừng hoạt động vì nó đang kết nối với khối máy chủ lưu trữ cục bộ.
Tôi đã thử sử dụng các tùy chọn proxy_next_upstream, nhưng chúng dường như không làm những gì tôi cần.
Tôi có thể đạt được những gì tôi muốn không, có thể cài đặt ngược dòng của tôi trỏ đến ứng dụng cục bộ là vấn đề thực sự nhưng tôi không thể tìm ra cách để nginx chơi bóng với dịch vụ ứng dụng.
ứng dụng cục bộ ngược dòng {
máy chủ cục bộ: 8001;
máy chủ cục bộ:8002;
}
người phục vụ {
địa điểm / {
proxy_pass http://localapps;
hết thời gian chờ lỗi proxy_next_upstream http_403;
proxy_next_upstream_timeout 5 phút;
proxy_next_upstream_tries 20;
proxy_connect_timeout 2;
}
nghe 443 ssl; # được quản lý bởi Certbot
ssl_certificate <path>/fullchain.pem; # được quản lý bởi Certbot
ssl_certificate_key <path>/privkey.pem; # được quản lý bởi Certbot
bao gồm /etc/letsencrypt/options-ssl-nginx.conf; # được quản lý bởi Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # được quản lý bởi Certbot
}
người phục vụ {
nghe 8001;
tên_máy chủ web01;
địa điểm / {
proxy_set_header Máy chủ app1.azurewebsites.net;
proxy_pass https://app1.azurewebsites.net;
proxy_cookie_domain app1.azurewebsites.net mycustomdomain.com;
proxy_ssl_certificate <path>/fullchain.pem;
proxy_ssl_certificate_key <path>/privkey.pem;
bật proxy_ssl_session_reuse;
}
}
người phục vụ {
nghe 8002;
tên_máy chủ web02;
địa điểm / {
proxy_set_header Máy chủ app2.azurewebsites.net;
proxy_pass https://app2.azurewebsites.net;
proxy_cookie_domain app1.azurewebsites.net mycustomdomain.com;
proxy_ssl_certificate <path>/fullchain.pem;
proxy_ssl_certificate_key <path>/privkey.pem;
bật proxy_ssl_session_reuse;
}
}
người phục vụ {
if ($host = myvm.westeurope.cloudapp.azure.com) {
trả lại 301 https://$host$request_uri;
} # được quản lý bởi Certbot
server_name myvm.westeurope.cloudapp.azure.com;
nghe 80;
trả lại 404; # được quản lý bởi Certbot
}