Câu hỏi
Cách chính xác để định cấu hình Cổng ứng dụng Azure để có thể xử lý các yêu cầu sử dụng tiêu đề máy chủ chỉ có tên máy chủ (nghĩa là không phải tên miền đủ điều kiện) do khách hàng dựa vào danh sách hậu tố tìm kiếm DNS của họ để xử lý việc này.
Chi tiết
Chúng tôi có Cổng ứng dụng Azure được định cấu hình với IP riêng để hoạt động như một bộ cân bằng tải cho nhiều trang web/ứng dụng web nội bộ.
Vì chúng tôi đang xử lý nhiều trang web trên cổng ứng dụng này nên tôi đã định cấu hình trình xử lý nhiều trang web, dựa trên Tiêu đề máy chủ HTTP/1.1 để định tuyến chính xác các yêu cầu tới phần phụ trợ có liên quan.
Nhiều trang web trong số này có FQDN nằm trên hậu tố tên miền chính của chúng tôi; ví dụ. báo cáo.domain.example.com
. Vì miền chính của chúng tôi nằm trong danh sách hậu tố tìm kiếm của thiết bị khách, điều này có nghĩa là thông thường họ có thể nhập Báo cáo
và yêu cầu DNS giải quyết vấn đề này báo cáo.domain.example.com
, đưa họ đến đúng nơi. Tuy nhiên, trình duyệt không gửi FQDN đã phân giải DNS mà gửi tên máy chủ đã nhập của người dùng trong giá trị tiêu đề máy chủ. Điều này có nghĩa là người nghe của tôi sẽ không nhận được tên đầy đủ mà nó mong đợi.
Tôi có thể giải quyết vấn đề này; tạo một trình nghe được định cấu hình với tên máy chủ không có hậu tố DNS để nắm bắt các yêu cầu đến theo cách này; và tôi thậm chí có thể xử lý HTTPS vì chúng tôi có cơ quan cấp chứng chỉ đáng tin cậy của riêng mình (tức là Dịch vụ chứng chỉ AD), vì vậy có thể cấp chứng chỉ bao gồm cả FQDN và biểu mẫu tên ngắn trong danh sách SAN của họ.
Tuy nhiên, tôi đã tìm thấy một điều kỳ lạ sau khi thiết lập một vài trang web... với các trình nghe được định cấu hình như bên dưới:
- thính giả
ví dụ1.domain.example.com
-> chuyển hướng đến một trang web bên ngoài
- thính giả
ví dụ 1
-> chuyển hướng đến người nghe ví dụ1.domain.example.com
- thính giả
ví dụ1-test.domain.example.com
-> ngồi trên một nhóm phụ trợ
Tôi thấy rằng các yêu cầu được thực hiện để https://example1-test.domain.example.com
đang được chuyển hướng đến trang web bên ngoài được định cấu hình trên trình nghe ví dụ1.domain.example.com
.
Tôi đã thử nghiệm với Công cụ dành cho nhà phát triển của Chrome' Mạng
> Vô hiệu hóa bộ nhớ cache
đã chọn tùy chọn này để đảm bảo tôi không bị ảnh hưởng bởi các lỗi 301 đã lưu trong bộ nhớ đệm, đã kiểm tra kỹ cấu hình của cổng ứng dụng để đảm bảo rằng tôi không ánh xạ trình xử lý tới quy tắc định tuyến yêu cầu sai hoặc định cấu hình quy tắc không chính xác, đồng thời xóa và tạo lại trình xử lý cũng như quy tắc trong trường hợp một cái gì đó đã bị hỏng; nhưng không có niềm vui.
Khi tôi thay đổi tên máy chủ của ví dụ 1
người nghe XXXví dụ1
tôi thấy rằng ví dụ1-test.domain.example.com
bắt đầu làm việc như mong đợi.
Tôi không tìm thấy bất kỳ tài liệu nào về thiết lập này, vì vậy không biết liệu đó có phải là lỗi hay không, liệu những gì tôi đang thử không được hỗ trợ hay không, nếu người nghe không sử dụng chuỗi mà là một số dạng tương đương mẫu khớp/regex hoặc nếu có một số cách chính thức khác để xử lý tình huống này thay vì phương pháp mà tôi đã "khám phá".