Tôi muốn tạo một ứng dụng SaaS ví dụ, nhờ đó người dùng có thể đăng ký, tạo trang web, sử dụng mẫu và/hoặc tùy chỉnh chúng với css tùy chỉnh, phục vụ trang web của họ tắt tên miền tùy chỉnh.Cách phân phát miền tùy chỉnh trỏ đến tên miền phụ trong Saas App
Tôi đã xem xét lưu mẫu trên S3/CDN khác, cùng với tệp phương tiện/tệp định kiểu/tệp js. Trong khi tất cả là kỹ thuật có thể (thực tế? Có thể gây tranh cãi). Dù sao, tôi đã có một thời gian khó khăn để tìm hiểu làm thế nào các trang web sẽ được phục vụ ra khỏi tên miền tùy chỉnh trong trường hợp này? Ví dụ: khi họ đăng ký, họ có thể nhận được địa chỉ subdomain.domain.com
. Tuy nhiên, làm thế nào để họ chỉ customerdomain.com
để khi customerdomain.com
được nhập vào, nó phục vụ cùng một nội dung như customerdomain.domain.com
và URL vẫn customerdomain.com
Thêm vào đó, nếu tôi muốn có một "feature
" trong đó, lĩnh vực tùy chỉnh có thể là một tính năng thanh toán. Làm thế nào để hạn chế nó cho người dùng trả phí?
Thông thường khi, chúng tôi thiết lập trang web, chúng tôi chỉ định trang web đó trong tệp cấu hình máy chủ ảo (apache) và cung cấp bí danh, vì vậy, tìm kiếm và cung cấp các bí danh đó. Trong trường hợp này, tôi không muốn có một tệp vhost riêng cho từng người đăng ký. Có cách nào khác không? Làm thế nào tôi có thể lập trình này? Có bất kỳ gotchas để được nhận thức?
Một giải pháp mà tôi đã thấy là để máy chủ phân phát miền ký tự đại diện, ví dụ: *.domain.com
và vhost riêng cho mỗi miền tùy chỉnh, tuy nhiên tôi muốn tránh nếu có thể.
Cảm ơn.
cảm ơn, mã psuedocode của bạn đã giúp hiểu rõ giải pháp. Giới thiệu về bộ nhớ cache DNS, trên một máy chủ là nó không phải là mặc định? Tôi có nghĩa là các truy vấn DNS được lưu trữ bởi hệ điều hành (ubuntu). Tôi có cần phải làm gì thêm cho điều đó không? – Nasir
Điều đó tùy thuộc vào cách bạn triển khai "get_cname_record". Nếu bạn sử dụng gethostbyaddr() hoặc một dẫn xuất (tùy chọn có khả năng nhất), hệ thống của bạn thường cung cấp một số loại bộ nhớ đệm đã có. Nhưng làm điểm chuẩn nó bằng cách lặp lại một loạt các tra cứu để bạn không rơi vào một cái bẫy với điều này. Tôi đã nhìn thấy nó xảy ra, vì vậy chỉ là một FYI. – GomoX