Tôi đã tạo một ứng dụng web với NextJS mà tôi bán b2b, nơi người dùng (khách hàng của khách hàng của tôi) có thể đăng ký một vị trí. Họ cung cấp tên của họ và nhận được một số kiểm tra trong. Ứng dụng hiển thị thông tin liên quan đến khách hàng (giờ mở cửa, địa chỉ,â¦)
Phần thứ hai của ứng dụng là bảng quản trị để khách hàng của tôi đăng nhập và xem tất cả các tên cũng như số đăng ký và có thể cung cấp thêm thông tin.
Hiện tại, tôi đang ở giai đoạn thử nghiệm và khách hàng của tôi là các công ty của bạn bè, nhưng ứng dụng đang mở rộng quy mô rất tốt và tôi cần một cách tiếp cận tốt hơn những cách sau:
- khách hàng của tôi mua VPS và miền
- Tôi cài đặt ngăn xếp LEMP
- Tôi proxy tên miền trong nginx thành localhost:3000
- Tôi định cấu hình cơ sở dữ liệu để lưu trữ khách hàng
- Tôi sao chép thư mục gốc của ứng dụng của mình vào máy chủ và chạy nó (npm run build && npm run start)
Tôi làm điều này cho mọi khách hàng (hiện tại là 25). Khi có một khách hàng mới hoặc một bản cập nhật của ứng dụng, đó là công việc thủ công khó khăn.
Điều rất quan trọng là khách hàng của tôi không thấy rằng có những công ty khác đang sử dụng ứng dụng của tôi.
Điều tôi muốn thực hiện bây giờ là ý tưởng sau đây và tôi muốn biết liệu có cách tiếp cận nào tốt hơn hoặc đây có phải là cách thực hành tốt hay không:
- Tôi muốn mở rộng quy mô tới hơn 500 khách hàng
- Tôi sử dụng VPS của riêng mình
- Mỗi khách hàng có một tên miền phụ của tên miền của riêng tôi (điều này không sao đối với khách hàng của tôi)
- Khách hàng của tôi không cần thêm máy chủ nữa
- Tôi tạo một bảng trong cơ sở dữ liệu MySQL của mình với thông tin khách hàng (giờ mở cửa, địa chỉ,â¦)
- Trong ứng dụng Nextjs, tôi phát hiện tên miền phụ và truy vấn cơ sở dữ liệu của mình
- Tôi có một bảng dành cho khách hàng đã đăng ký liên quan đến bảng cấu hình
- tôi bắt đầu một ví dụ về ứng dụng của tôi
- Tôi định vị tất cả các tên miền phụ cho một phiên bản đó
- khách hàng của tôi có một màn hình đăng nhập của quản trị viên và sau khi đăng nhập, họ tải dữ liệu liên quan đến thông tin đăng nhập (sử dụng JWT để khách hàng không thể lấy dữ liệu từ các khách hàng khác)
- Đối với những khách hàng mới, tôi chỉ cần thêm một tên miền phụ mới và một hàng MySQL và họ đã sẵn sàng hoạt động. Điều này rất dễ quản lý và nếu có bản cập nhật, tôi chỉ cập nhật một phiên bản ứng dụng của mình.