Làm cách nào để định cấu hình ký tự IIS cho tên miền phụ tài khoản (như Basecamp)?


8

Thực tế, tôi đang làm việc trên một ứng dụng SaaS nơi tôi muốn cung cấp cho người đăng ký tên miền phụ của họ để truy cập thông tin của họ (theo mã tôi sẽ lấy phần đầu tiên của tên miền phụ để sử dụng làm tên tài khoản của họ), tương tự như cách Basecamp et công việc. Chẳng hạn, một thuê bao có thể có URL acme.myapp.com. Vì có thể có hàng trăm người đăng ký, tôi không thể thêm tiêu đề máy chủ khác nhau cho mỗi khách hàng.

Apache cho phép bạn chỉ định ký tự đại diện (*) và sẽ chuyển hướng acme.myapp.com đến myapp.com, trong đó tôi có thể thực hiện logic của mình để truy xuất tên tài khoản của người dùng dựa trên tên miền phụ. Tôi không chắc chắn làm thế nào để tự động làm điều này với IIS (Đã được một thời gian kể từ khi tôi phải cấu hình IIS cho mọi thứ trừ một trang web duy nhất).

Ngoài ra, có bất kỳ quy định đặc biệt mà tôi cần phải thực hiện điều này? Khi ứng dụng của tôi đã sẵn sàng và tôi đang xem lưu trữ cho nó, tôi sẽ cần bất cứ điều gì cụ thể từ máy chủ lưu trữ sẽ giới hạn các lựa chọn của tôi? Tôi cũng đang cân nhắc sử dụng Windows Azure để tận dụng lợi thế của đám mây - liệu tôi vẫn có thể làm điều này nếu tôi sử dụng Azure với tư cách là một nền tảng lưu trữ?


Phiên bản nào của IIS là phiên bản này, 6 hoặc 7
Sam Cogan

IIS7 (hộp cục bộ chạy Win7). Hosting có thể sẽ có trên Server 2008 vì vậy tôi có thể giả sử IIS7 luôn.
Wayne Molina

Câu trả lời:


5

Như Joe đã đề cập, bạn sẽ làm điều này nhiều hơn với DNS hơn IIS.

IIS không hỗ trợ cho các tên miền ký tự * .domain.com. Thay vào đó, bạn sẽ tạo một trang web trong IIS không có tiêu đề máy chủ, do đó sẽ đáp ứng tất cả các yêu cầu trên IP mà không được chọn bởi các trang web khác có tiêu đề máy chủ. Sau đó, bạn sẽ tạo mục nhập DNS ký tự đại diện của mình để trỏ đến IP của trang web đó và bạn đã hoàn tất.


Vì vậy, không có cách nào để "giả mạo" nó mà không cần thiết lập tên miền và thực hiện nó với DNS? Tôi đang hỏi vì tôi muốn kiểm tra phần tài khoản (ví dụ: acme.myapp.xxx lấy tài khoản cho Acme), nhưng nếu tôi hiểu đúng thì có nghĩa là tôi không thể kiểm tra điều này với IIS trừ khi tôi mua tên miền và đặt lên địa chỉ IP?
Wayne Molina

2
Chà, nếu bạn chỉ muốn kiểm tra nó, bạn có thể thiết lập IIS, sau đó đặt một số mục trong tệp HOST cục bộ của bạn cho các tên miền phụ bạn muốn kiểm tra, vì vậy chúng trỏ đến máy chủ IIS của bạn, điều này sẽ cho phép bạn kiểm tra chúng trên máy của bạn mà không cần mua tên miền.
Sam Cogan

Miễn là bạn chỉ có một ứng dụng cho mỗi cổng trong IIS của bạn.
Marc Climent

2

Nếu tôi hiểu bạn chính xác, bạn có thể sử dụng DNS để làm điều này. Giả sử myapp.com là miền của bạn, thì trong vùng DNS myapp.com của bạn chỉ cần thêm bản ghi CNAME (acme) trỏ đến bản ghi A cho trang web của bạn (www.myapp.com). Điều đó sẽ gửi chúng đến trang web chính của bạn, nơi mã của bạn sẽ tiếp quản và chuyển hướng chúng đến ứng dụng thích hợp.

Bạn cũng có thể sử dụng bản ghi ký tự đại diện DNS (*) để bắt mọi thứ, chẳng hạn như acme.myapp.com, joeschmoe.myapp.com, v.v.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.