Mục đích thiết kế của nb proxy
Nếu chỉ nói về tiến trình cốt lõi thì chỉ cần nhớ 3 lệnh sau là đủ:
Trong hầu hết các trường hợp, những gì bạn sử dụng nb proxy để thực hiện về cơ bản là ba bước sau:
- Trước tiên hãy sử dụng
useđể chọn chế độ chạy của nhà cung cấp hiện tại - Sau đó sử dụng
generateđể tạo cấu hình mục nhập theo env và tên miền - Cuối cùng sử dụng
reloadđể cấu hình có hiệu lực
Nếu b ạn đang sử dụng Caddy, chỉ cần thay thế nginx trong lệnh bằng caddy. Nếu Nginx được cài đặt trực tiếp trên máy, chỉ cần thay thế docker bằng local.
Đây cũng là trải nghiệm mà lớp nb proxy này muốn cung cấp nhất: bạn không cần vào chi tiết cấu hình của Nginx hoặc Caddy trước, chỉ cần kết nối lối vào theo quy trình cố định.
Tại sao chỉ cần nhớ 3 mục này trước là đủ?
Bởi vì vấn đề được nb proxy giải quyết thực sự rất hội tụ: **Cung cấp cho ứng dụng một lối vào truy cập bên ngoài ổn định. **
Nếu bạn đã xem Tổng quan về triển khai môi trường sản xuất, bạn có thể nhớ nó riêng biệt với nb app autostart như thế này:
nb app autostartphụ trách "cách tiếp tục chạy ứng dụng sau khi khởi động lại máy"nb proxychịu trách nhiệm về "cách ứng dụng có thể cung cấp quyền truy cập bên ngoài ổn định thông qua Nginx hoặc Caddy"
Vì vậy, trong quy trình triển khai phổ biến nhất, nb proxy không đòi hỏi nhiều đầu óc. Hầu hết thời gian là:
- Chọn chế độ hoạt động
- Tạo cấu hình
- Việc tải lại có hiệu lực
Đủ.
Ba bước này đang làm gì?
use
use giải quyết được vấn đề "quản lý đại lý hiện tại như thế nào".
Ví dụ:
nb proxy nginx use dockernb proxy nginx use local
Bạn có thể coi việc này giống như việc chọn trình điều khiển mặc định của nhà cung cấp hiện tại trước tiên. Các lệnh sau start, reload và status sẽ hoạt động theo cách này.
generate
generate giải quyết vấn đề "hiển thị cấu hình mục nhập theo env hiện tại".
Ví dụ:
Bước này sẽ kết hợp thông tin trong env với các tham số mà lớp đầu vào yêu cầu để tạo cấu hình proxy có thể sử dụng được. Đầu vào quan trọng nhất ở đây thường là:
--env: CLI nào quản lý env để hiển thị--host: Tên miền nào cần liên kết
Nói cách khác, generate quản lý cấu hình sản phẩm chứ không phải trạng thái xử lý.
reload
reload giải quyết vấn đề "làm cho cấu hình mới được tạo thực sự hiệu quả".
Sự tách biệt này có lợi ích trực tiếp: việc tạo cấu hình và các hành động xử l ý không bị trộn lẫn. Khi bạn thay đổi tên miền, cổng hoặc đường dẫn công cộng, hãy tạo lại nó trước rồi quyết định làm cho nó có hiệu lực. Toàn bộ quá trình sẽ rõ ràng hơn.
##Tại sao phải thiết kế như use → generate → reload
Bởi vì ba bước này chỉ tương ứng với ba hành động ổn định nhất của lớp lối vào:
- Quyết định đầu tiên cách thức điều hành đại lý
- Sau đó quyết định mục nào sẽ tạo cho môi trường nào -Cuối cùng để cấu hình có hiệu lực
Nếu bạn đặt tất cả các bước này vào một lệnh hộp đen, sẽ có vẻ như có ít lệnh hơn trên bề mặt. Tuy nhiên, một khi sự cố xảy ra, rất khó để xác định liệu trình điều khiển được chọn sai, cấu hình không được tạo chính xác hay tác nhân chưa được tải lại.
Bây giờ sau khi tháo rời nó như thế này, con đường điều tra sẽ thẳng hơn:
useSai thì cắt driver thôigeneratekhông chính xác, hãy tạo lại cấu hình.- Cấu hình đúng nhưng chưa có hiệu lực, chỉ
reload
Tại sao chúng ta cần nb proxy riêng
Bởi vì thứ nb proxy muốn thống nhất không phải là một tệp cấu hình Nginx nhất định mà là các hành động chung của lớp mục nhập.
Điều bạn thực sự quan tâm thường không phải là:
- File cấu hình rơi vào đường dẫn nào?
- Sự khác biệt về lệnh giữa Nginx và Caddy
- Sự khác biệt về hoạt động giữa local và docker
Điều bạn quan tâm hơn là:
- Làm cách nào để phơi bày env này?
- Làm cách nào để thay đổi tên miền của tôi?
- Làm cách nào để cấu hình mới có hiệu lực?
nb proxy là hội tụ những hành động này vào cùng một tập hợp các mục CLI. Bằng cách này, nếu bạn nhớ quy trình cốt lõi trước tiên, bạn có thể bao quát được hầu hết các tình huống. Chỉ khi bạn muốn tiếp tục khắc phục sự cố một cách chi tiết hoặc cần cấu hình đặc biệt, chỉ cần nhìn xuống trang riêng của nhà cung cấp.
Tổng thể
nb proxyCông dụng cốt lõi của trí óc làuse → generate → reload- Đối với hầu hết người dùng, việc nhớ 3 lệnh này là đủ
- Trọng tâm của thiết kế của nó không phải là ẩn tất cả các chi tiết mà trước tiên là sửa các quy trình cấp đầu vào phổ biến nhất.
Nếu muốn tiếp tục xem các lệnh cụ thể, bạn có thể truy cập trực tiếp vào nb proxy. Nếu bạn đã sẵn sàng kết nối với lối vào chính thức, bạn cũng có thể tiếp tục xem Reverse Proxy.

