10 điểm bởi xguru 2021-09-27 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
<p>- Một playground cho phép tự do thay đổi cấu hình nginx để thử nghiệm <br /> → nhập config và lệnh `curl`/`http`, rồi nhấn Run để thực thi<br /> → hiển thị kết quả của lệnh đã chạy và log lỗi của nginx <br /> - Frontend Vue.js + backend Go (chỉ công khai mã máy chủ qua Gist)<br /> - Khi nhấn nút chạy, backend Go sẽ thực hiện các việc sau <br /> → lưu file cấu hình thành file tạm<br /> → tạo network namespace mới <br /> `ip netns add $RANDOM_NAMESPACE_NAME`<br /> → chạy go-httpbin trên cổng 777<br /> → khởi động nginx<br /> → đợi 100ms cho đến khi nginx chạy đúng; nếu thất bại thì trả về log lỗi nginx<br /> → chạy lệnh do người dùng nhập vào (kiểm tra xem có phải `curl` / `http` hay không)<br /> → trả về đầu ra của request <br /> - Xử lý mọi request bằng một máy chủ dùng chung duy nhất <br /> <br /> - Cách tiếp cận về bảo mật: một chút isolation, một chút YOLO <br /> → frontend được host trên CDN <br /> → không dùng DB, chỉ dùng local storage của trình duyệt<br /> → đặt mọi nginx trong network namespace riêng của nó, chặn không cho truy cập Internet <br /> → dùng gói miễn phí của fly.io <br /> → đưa vào FAQ để mọi người hành xử tử tế <br /> <br /> - Hiệu năng<br /> → instance rất nhỏ (1 shared CPU, 256MB RAM)<br /> → frontend ở trên CDN nên backend chỉ chạy khi thực sự được dùng<br /> → mỗi request mất khoảng 400ms. Không tệ <br /> → phiên bản Go của httpbin nhẹ hơn bản Python gốc <br /> → hiệu năng frontend không quá tốt </p>

Chưa có bình luận nào.

Chưa có bình luận nào.