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