Браузер, прокси и tcp

Поддержка
  • Есть прокси которые ограничиваются потоками на основе tcp соединений и собственно вопрос в том можно ли каким-то магическим способом заставить браузер баса жрать не 15 потоков а 1, как на пост гете?

  • @fluffik said in Браузер, прокси и tcp:

    Есть прокси которые ограничиваются потоками на основе tcp соединений и собственно вопрос в том можно ли каким-то магическим способом заставить браузер баса жрать не 15 потоков а 1, как на пост гете?

    Нет, можно только по максимуму запретить запросы в браузере. Такие прокси мало подходят для браузера, либо нужно проплачивать большое число доступных потоков.

  • @fluffik said in Браузер, прокси и tcp:

    Есть прокси которые ограничиваются потоками на основе tcp соединений и собственно вопрос в том можно ли каким-то магическим способом заставить браузер баса жрать не 15 потоков а 1, как на пост гете?

    Вероятно, можно поставить между прокси-провайдером и BAS, load-balancer, который будет ограничивать кол-во соединений к прокси-провайдеру и ставить в очередь запросы от BAS .

    BAS browser -->> haproxy TCP load balancer with limits and queue --> proxy provider

    Смотри подробнее https://www.haproxy.com/blog/protect-servers-with-haproxy-connection-limits-and-queues/, по ссылке как раз написано про лимиты и очереди запросов, что ожидают выполнения.

  • @sergerdn В итоге скорей всего сайт не загрузится нормально потому что большая часть запросов закончится таймаутом

  • @UserTrue said in Браузер, прокси и tcp:

    @sergerdn В итоге скорей всего сайт не загрузится нормально потому что большая часть запросов закончится таймаутом

    Не уверен, надо тестировать. Надо подбирать timeout на стороне браузера BAS и haproxy. Уверен, что задача решаема в большинстве случаев.

    https://peter.sh/experiments/chromium-command-line-switches/#timeout

  • @sergerdn said in Браузер, прокси и tcp:

    @UserTrue said in Браузер, прокси и tcp:

    @sergerdn В итоге скорей всего сайт не загрузится нормально потому что большая часть запросов закончится таймаутом

    Не уверен, надо тестировать. Надо подбирать timeout на стороне браузера BAS и haproxy. Уверен, что задача решаема в большинстве случаев.

    https://peter.sh/experiments/chromium-command-line-switches/#timeout

    Это не тот таймаут. Запрос ресурсов сайта и просто fetch запросы будут крашиться из-за таймаута

  • @UserTrue said in Браузер, прокси и tcp:

    @sergerdn said in Браузер, прокси и tcp:

    @UserTrue said in Браузер, прокси и tcp:

    @sergerdn В итоге скорей всего сайт не загрузится нормально потому что большая часть запросов закончится таймаутом

    Не уверен, надо тестировать. Надо подбирать timeout на стороне браузера BAS и haproxy. Уверен, что задача решаема в большинстве случаев.

    https://peter.sh/experiments/chromium-command-line-switches/#timeout

    Это не тот таймаут. Запрос ресурсов сайта и просто fetch запросы будут крашиться из-за таймаута

    Так напиши "тот" самый timeout. Ты так уверенно пишешь, как будто уже протестировал предложенное мной решение с haproxy. Как писал выше - надо тестировать.

  • @sergerdn said in Браузер, прокси и tcp:

    Так напиши "тот" самый timeout. Ты так уверенно пишешь, как будто уже протестировал предложенное мной решение с haproxy. Как писал выше - надо тестировать.

    Я просто прочитал внимательно описание того что ты нашел.

    Issues a stop after the specified number of milliseconds. This cancels all navigation and causes the DOMContentLoaded event to fire. ↪
    

    Проще говоря это не увеличит ожидания выполнения запросов.

  • @UserTrue said in Браузер, прокси и tcp:

    @sergerdn said in Браузер, прокси и tcp:

    Так напиши "тот" самый timeout. Ты так уверенно пишешь, как будто уже протестировал предложенное мной решение с haproxy. Как писал выше - надо тестировать.

    Я просто прочитал внимательно описание того что ты нашел.

    Issues a stop after the specified number of milliseconds. This cancels all navigation and causes the DOMContentLoaded event to fire. ↪

    Вероятно, я не внимательно прочитал описание конкретно это параметра. Спасибо, что указал мне на это.
    Какие твои предложения по увеличение времени ожидания запроса на стороне браузера BAS?

  • @sergerdn said in Браузер, прокси и tcp:

    Вероятно, я не внимательно прочитал описание конкретно это параметра. Спасибо, что указал мне на это.
    Какие твои предложения по увеличение времени ожидания запроса на стороне браузера BAS?

    У меня их нет ) Я обычно пишу на запросах в таком случае. Еще можно пробросить dns для сайта на свой сервер, а так делал в командой строке есть такая опция, я каждый поток пробрасывал на свой порт и там уже распределял трафик, но это больше про кэширование и подмену данных.

  • Еще можно использовать кэш, подгружать только динамический контент.

  • @UserTrue said in Браузер, прокси и tcp:

    Еще можно пробросить dns для сайта на свой сервер, а так делал в командой строке есть такая опция, я каждый поток пробрасывал на свой порт и там уже распределял трафик, но это больше про кэширование и подмену данных.

    Интересное решение через dns. Я чтобы манипулировать контентом ставил man-in-the-middle прокси между BAS и прокси провайдером.

  • @sergerdn said in Браузер, прокси и tcp:

    @UserTrue said in Браузер, прокси и tcp:

    Еще можно пробросить dns для сайта на свой сервер, а так делал в командой строке есть такая опция, я каждый поток пробрасывал на свой порт и там уже распределял трафик, но это больше про кэширование и подмену данных.

    Интересное решение через dns. Я чтобы манипулировать контентом ставил man-in-the-middle прокси между BAS и прокси провайдером.

    Я прямо из бас в node запустил самописный сервер и на него пробрасывал ))

  • @sergerdn said in Браузер, прокси и tcp:

    @fluffik said in Браузер, прокси и tcp:

    Есть прокси которые ограничиваются потоками на основе tcp соединений и собственно вопрос в том можно ли каким-то магическим способом заставить браузер баса жрать не 15 потоков а 1, как на пост гете?

    Вероятно, можно поставить между прокси-провайдером и BAS, load-balancer, который будет ограничивать кол-во соединений к прокси-провайдеру и ставить в очередь запросы от BAS .

    BAS browser -->> haproxy TCP load balancer with limits and queue --> proxy provider

    Смотри подробнее https://www.haproxy.com/blog/protect-servers-with-haproxy-connection-limits-and-queues/, по ссылке как раз написано про лимиты и очереди запросов, что ожидают выполнения.

    @fluffik @UserTrue

    Я протестировал идею. У меня работает, пробовал загружать пачку сайтов в цикле, сходу не словил каких-то ошибок. В том числе тыкал по всем ссылкам на https://www.amazon.com/. На стороне BAS никаких timeouts не настраивал.

    Я настроил proxy ip в BAS на свой сервер, на своем сервере поставил haproxy и прикрутил лимит соединений к прокси-провайдеру.

    Схема идеи осталась той же:
    BAS browser -->> haproxy TCP load balancer with limits and queue --> proxy provider

    Статистика соединений:

    Config haproxy:

    global
        log /dev/log	local0
        log /dev/log	local1 notice
        chroot /var/lib/haproxy
        stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
        stats timeout 30s
        user haproxy
        group haproxy
        daemon
    
        # Default SSL material locations
        ca-base /etc/ssl/certs
        crt-base /etc/ssl/private
    
        # See: https://ssl-config.mozilla.org/#server=haproxy&server-version=2.0.3&config=intermediate
            ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
            ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
            ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets
    
    defaults
        log	global
        mode	http
        option	httplog
        option	dontlognull
            timeout connect 5000
            timeout client  50000
            timeout server  50000
        errorfile 400 /etc/haproxy/errors/400.http
        errorfile 403 /etc/haproxy/errors/403.http
        errorfile 408 /etc/haproxy/errors/408.http
        errorfile 500 /etc/haproxy/errors/500.http
        errorfile 502 /etc/haproxy/errors/502.http
        errorfile 503 /etc/haproxy/errors/503.http
        errorfile 504 /etc/haproxy/errors/504.http
    
    
    listen stats
        bind :8080
        mode http
        stats enable
        stats hide-version
        stats realm Haproxy\ Statistics
        stats uri /
        stats auth SomeUsername:SomePassword
    
    frontend front_proxy_1
       mode tcp
       maxconn 20000
       bind :22225
       default_backend back_proxy_1
    
    backend back_proxy_1
       mode tcp
       balance leastconn
       timeout queue 30s
       server s1 zproxy.lum-superproxy.io:22225 maxconn 15
    
  • @sergerdn Ну прикольно, тогда ему надо тестить на конкретном сайте, тут еще зависит от скорости прокси и сайта, есть такие что тонну запросов шлют

  • @UserTrue said in Браузер, прокси и tcp:

    @sergerdn Ну прикольно, тогда ему надо тестить на конкретном сайте, тут еще зависит от скорости прокси и сайта, есть такие что тонну запросов шлют

    Можно в haproxy дополнительно заблокировать запросы к сайтам с аналитикой и подобным, чтобы не нагружать прокси-провайдера. Это тоже может как-то помочь.

  • @sergerdn а локально это возможно сделать? а что если много проксей, но порты только разные? И можно если не затруднит инструкцию для не программистов?в идеале видео)) куда тыкнуть что вставить))) В басе то я разбираюсь а как приходит код то тут уже не моя консинстенция

  • @fluffik said in Браузер, прокси и tcp:

    @sergerdn а локально это возможно сделать?

    Haproxy windows не поддерживает.

    @fluffik said in Браузер, прокси и tcp:

    @sergerdn а что если много проксей, но порты только разные?

    Дописать в конфигурации haproxy нужные порты по образцу. Можно как руками, так и набросать не сложный скрипт для этого, если портов много.

    @fluffik said in Браузер, прокси и tcp:

    @sergerdn И можно если не затруднит инструкцию для не программистов?в идеале видео)) куда тыкнуть что вставить)))

    Думаю, что это можно сделать, но это выходит за рамки бесплатной помощи коллеге на форуме.

    @fluffik said in Браузер, прокси и tcp:

    @sergerdn В басе то я разбираюсь а как приходит код то тут уже не моя консинстенция

    Могу предложить учиться и повышать свой личный уровень как программиста. Есть еще вариант нанять человека, кто сделает эту работу за тебя.

    Или ищи другое решение твоей задачи, отличное от моего, который ты сможешь реализовать. Я выше написал решение, как делал бы я, если стояла такая задача. Вероятно, мое решение не единственное существующее.

  • @FastSpace Как?)

  • 0 Votes
    4 Posts
    547 Views
  • 0 Votes
    18 Posts
    1776 Views
  • 0 Votes
    6 Posts
    903 Views
  • 0 Votes
    3 Posts
    1343 Views
  • 0 Votes
    15 Posts
    7348 Views