Proxy Tool
    • Tổng quan
    • Bussiness | Logic
      • Logic nghiệp vụ
    • Project
      • Tool
        • Architecture
          • Database Schema
          • System Architecture
          • Code Structure
        • Public API
          • Auth
            • Đăng nhập
            • Đăng ký người dùng
            • Lấy thông tin cá nhân hiện tại
          • Users
            • Danh sách người dùng
            • Tạo người dùng mới (Admin)
          • Proxies
            • Danh sách tất cả Proxy
            • Thêm Proxy hàng loạt
            • Nhập proxy từ file Excel/CSV
          • Get proxy
            • Lấy một Proxy trống (Client Tool)
          • Webhooks
            • Trả lại Proxy sau khi dùng
          • Info
            • Thông tin hệ thống (Root)
            • Kiểm tra tình trạng hệ thống
            • Xem tệp nhật ký (Logs)
        • Deployment
          • Staging
          • Product
          • Local
    • Schemas
      • CreateUser
      • Proxy

    Tổng quan

    TÀI LIỆU TỔNG QUAN: SƠ ĐỒ VẬN HÀNH HỆ THỐNG PROXY TOOL#

    1. Mục Đích & Vai Trò Của Hệ Thống#

    Hệ thống Proxy Tool đóng vai trò là một Middleware (Tầng trung gian) chuyên biệt cho việc quản lý và cấp phát Proxy tự động.
    Vấn đề cần giải quyết:
    Các Tool automation, tool SEO, crawler nội bộ của công ty cần một lượng lớn địa chỉ IP liên tục để bypass (vượt qua) được cơ chế rate-limit hoặc anti-bot của các nền tảng lớn (Google, Facebook...). Tuy nhiên việc quản lý tài khoản từ nhiều nguồn bán Proxy (Providers) vô cùng phân mảnh.
    Nhiệm vụ của Proxy Tool:
    1.
    Repository (Quản lý tập trung): Quản lý toàn bộ cấu hình, tài khoản từ nhiều nguồn cung cấp Proxy (Proxy Providers, Packages).
    2.
    Auto Rotation (Tự động xoay IP): Đảm bảo kho proxy luôn có kho dải IP "fresh" thông qua cơ chế tự động rotate (làm mới IP) định kỳ với nhà mạng.
    3.
    Distribution (Cấp phát động): Cung cấp các Rest API để Frontend, hoặc hệ thống bên ngoài (Clients) gọi vào lấy Proxy sạch (Available Proxy) dùng cho tiến trình của họ.

    2. Các Thành Phần Tương Tác (Actors)#

    Hệ thống hoạt động với 3 đối tượng tương tác chính:
    👤 Hệ Quản Trị (Admin / Ops): Thực hiện khai báo cấu hình đầu vào thông qua hệ thống GUI, như thiết lập Proxy Providers, Proxy Packages và đẩy danh sách các Proxy thô ban đầu lên Database.
    ⚙️ Background Worker (Cron Job): Service chạy ngầm trên background, liên tục rà soát trạng thái của kho Proxy, xử lý cron logic để nhận biết Proxy nào need_rotate, tiến hành gửi request lấy IP mới và check live.
    💻 Công Cụ Tiêu Thụ (Clients/Automation Tools): Đóng vai trò là Consumer, gọi HTTP API của Proxy Tool thông qua Endpoint /api/get-proxy để nhận IP về sử dụng.

    3. Sơ Đồ Vận Hành Chi Tiết (Nghiệp Vụ Hoạt Động)#

    Hệ thống được thiết kế với 2 luồng xử lý bất đồng bộ (Asynchronous) chạy song song. Kiến trúc này giúp luồng API cấp phát cho Client (cần real-time) không bị block dính bởi độ trễ (latency) của bên API Provider (nhà mạng thứ 3).

    🔄 Luồng 1: Bảo Dưỡng & Rotate IP (Background Cron Job)#

    (Luồng này đảm bảo hệ thống luôn duy trì một Proxy Pool trạng thái "Sẵn Sàng")
    1.
    Quét định kỳ (Cron Tick): Worker sẽ liên tục chạy quét (Scan) trong Database để lọc ra các Proxy đã "đến hạn đổi IP" (dựa trên cấu hình rotate_time và next_rotate).
    2.
    Gọi đổi IP (Rotate via Provider API): Khi một Proxy đến hạn, hệ thống trigger request lên API của Nhà cung cấp (ZingProxy...) yêu cầu một IP mới cho dải mạng này.
    3.
    Thẩm định kết nối (Check Live Connection):
    Sau khi Provider trả ra IP mới thành công về mặt response, Worker sẽ không tin tưởng ngay mà tiếp tục tiến hành Ping / Test Socket thực tế xem IP đó có sống để ra Internet hay không. Hệ thống tự retry tối đa 3 lần.
    Thành công (Live): Ghi đè trạng thái trong Database là Sẵn sàng, cập nhật giá trị ip_public mới, reset count người dùng và thời gian rotate.
    Thất bại (Dead connection): Đánh dấu trạng thái lỗi (is_error = true), ghi log lại error từ Provider, chờ cơ chế retry tiếp theo xử lý.

    🚀 Luồng 2: Cấp Phát Proxy Cho Client (Luồng HTTP API Endpoint)#

    (Nơi chịu tải Request và đẩy output cho các hệ thống automation nội bộ sử dụng)
    1.
    Client Request: Automation Tool gửi API Request tới GET /api/get-proxy. Request có thể đi kèm một số parameters truy vấn bổ sung (Ví dụ: area gán vị trí địa lý của Proxy IP).
    2.
    Xác định định danh (Client IP Address): Hệ thống chặn header log lại request ip nguồn của cái Tool đang tiến hành gọi API nhằm tracking rate-limit và giới hạn số proxy trên 1 máy ảo Tool.
    3.
    Truy xuất Query: Phía server sẽ query vào Database để allocate ra 1 Proxy đang ở trạng thái trống, được mark Live và rảnh rỗi dựa vào filter count người dùng.
    4.
    Response Data: Khi Allocate thành công, API Response trả về một Struct JSON chứa thông số kỹ thuật (IP, Port, Username, Password) để Tool đó tự inject lên Network Adapter / Playwright / Selenium để hoạt động ẩn danh.
    5.
    Webhook Push (Tính năng Option): Luồng luân chuyển mở rộng, hệ thống có cấu hình một số loại Webhook URL, kết thúc một vòng đời tác vụ, server báo cáo trạng thái ra URL bên ngoài thông qua Hook.

    4. Business Flowchart (Mô Hình Rút Gọn)#

    Dưới đây là Data Flow mô phỏng sự tương tác phối hợp luồng dữ liệu hệ thống:
    [ ADMIN / OPS ] ---> (Khai báo/CRUD dữ liệu Providers, Packages, Users, list Proxy)
                                    |
                                    v
                   +-----------------------------------------------+
                   |              PROXY TOOL SERVER                |
                   |                                               |
                   |  (Luồng Worker Cron Job chạy ngầm độc lập)    |
                   |  1. Scan Proxy đến hạn đổi (Rotate Time).     |
                   |  2. Execute Request API lấy IP mới lên Vendor.|
                   |  3. Run Health Check Connection thực tế IP mới|
                   |  4. Update Status -> [ SẴN SÀNG ] in Database |
                   +-----------------------------------------------+
                                    ^
                                    | (1) API HTTP Request: Xin cấp Proxy (Kéo Filter Area)
                                    | 
                                    | (2) API Response: Body JSON { host, port, auth... }
                                    v
                   [ CÁC CLIENT TOOLS / AUTOMATION SYSTEMS ]
                                    |
                                    v
                  Tiếp nhận Profile mạng, inject vào session trình duyệt nội bộ.
    Ngày cập nhật 2026-03-31 06:54:59
    Tiếp theo
    Logic nghiệp vụ
    Built with