Thảo luận về cách tạo Backconnect hay Proxy Gateway dùng Rotating Proxies

Discussion in 'Thảo Luận Chung' started by command, Dec 9, 2020.

  1. command

    command Bang Chúng

    Chào các bạn,

    Mình hiện tại đang dùng stormproxies với gói Rotating Proxies, dịch vụ ở đây đảm bảo chất lượng, nhưng giá thì hơi chát tí. Mình có danh sách các proxies và muốn tạo rotating proxies sử dụng proxy gateway như stormproxies thì có open source nào sử dụng ko? Mình tìm trên Internet và github thì có nhiều open source về proxy server, nhưng chưa thấy hỗ trợ rotating proxies. Mô hình này giống như http://scrapoxy.io/ nhưng chạy scrapoxy thì tốn $ tạo VM lắm, nên mình muốn dùng danh sách proxies mình có để tiết kiệm $ :)

    Mô hình giống như sau:
    Crawler ---> Proxy Gateway ---> [tự động chọn proxy trong danh sách proxies và loại bỏ proxy nào chết]

    Mình có thể code chức năng rotating proxies để chạy trong 1 phần mềm, nhưng vì nhu cầu mình muốn tạo proxy gateway như trên để sử dụng trong nhiều crawler scripts khác nhau.

    Cám ơn các bạn tư vấn,
     
    Last edited: Dec 9, 2020
    congloi likes this.
  2. Hoa Mãn Lâu

    Hoa Mãn Lâu Trưởng Môn

    Có cảm giác càng ngày cụ càng dấn thân vào con đường black hat cmnr {boss}
     
    congloi likes this.
  3. Cái bang

    Cái bang Sơ Nhập Giang Hồ

    Ai cũng muốn làm người tử tế, nhưng dòng đời đưa đẩy.
     
  4. command

    command Bang Chúng

    Chỉ là crawl dữ liệu website khác và tạo tập dữ liệu của mình thôi mà, assmin xoắn mạnh thế :)
    --- Double Post Merged, Dec 11, 2020, Original Post Date: Dec 9, 2020 ---
    Đã tìm ra giải pháp này, áp dụng mô hình HAPROXY --> [round robin các proxies]

    Đã thử với Haproxy phiên bản 2.2.* và cấu hình file haproxy.cfg như sau là ổn :)
     
    Vajimi, thitgaluoc and Hoa Mãn Lâu like this.
  5. thitgaluoc

    thitgaluoc Hương Chủ

    haproxy là chuẩn bài rồi bác, nhưng k biết haproxy có check proxy lỗi k nhỉ?
    ngày trước em hay dùng thằng này https://github.com/imWildCat/scylla nhưng giờ thì đã ngừng hỗ trợ, và nó chạy cũng hơi tốn bộ nhớ
    trò này mấy anh Tàu hay xài nên phát triển dữ dội lắm, có 2 project này khá ngon
    https:___github.com/SpiderClub/haipproxy
    https:___github.com/jhao104/proxy_pool
     
    command likes this.
  6. command

    command Bang Chúng

    HAProxy có check theo tần số check mặc định là 15s (tuỳ phiên bản), bạn có thể thay đổi thông số thời gian check với "default-server inter 10s fall 2", những proxy ko hoạt động sẽ bị báo đỏ và bị loại bỏ khỏi load balancing (khi bạn request đến proxy_in tại port 16379 thì round robin chỉ request thông qua proxy sống thôi) cho đến khi proxy sống lại như hình đính kèm (proxy báo đỏ là proxy die).
     

    Attached Files:

    Last edited: Dec 11, 2020
    catd3vjl likes this.
  7. thitgaluoc

    thitgaluoc Hương Chủ

    ngon vãi, thế proxy có tự thêm được vào list bằng api gì k bác? hay mình phải cấu hình trong config? :D
     
  8. Vajimi

    Vajimi Sơ Nhập Giang Hồ

    cám ơn bạn giai pháp rất hay
     
  9. command

    command Bang Chúng

    HAProxy ko hỗ trợ API bạn @thitgaluoc à, giải pháp dùng load balacing proxy này ko phải là mục đích phát triển của HAProxy, họ chủ yếu cân bằng tải các servers và nghĩ về IP servers sống nhiều hơn việc die liên tục như public proxies mà mình đoán bạn muốn thử áp dụng.

    Nhưng bạn có thể trick bằng cách tạo file config với proxies mới và reload config của HAProxy, hoặc có thể áp dụng mô hình 4 HAProxy services như sau:
    Khi đó, giả sử bạn muốn thay đổi danh sách proxies 1 thì reload Sub_HAProxy 1 đó thôi, còn 2 Sub_HAProxy 2 & 3 vẫn sống (mấy services này chỉ round robin đến những proxies sống của nó) nên Main_HAProxy sẽ cân bằng qua các proxies sống của Sub_HAProxy 2 & 3 (khi Sub_HAProxy 1 reload xong, tức là dịch vụ sống thì sẽ có thêm Sub_HAProxy 1). Client request luôn gọi là MainHAProxy nên đảm bảo các requests của bạn vẫn sẽ hoạt động chuẩn cho dù lúc đó bạn đang reload config của Sub_HAProxy nào đó. Khi đó, lúc nào bạn cần tự code 1 script check alive các proxies và phân bổ vào config của một Sub_HAProxy.

    Đó chỉ là tricks dùng HAProxy, còn chuyên hơn thì các Python package bạn nêu có vẻ làm tốt hơn vì nó có nhiều tính năng hơn.
     
    Last edited: Dec 12, 2020
    thitgaluoc and Vajimi like this.