LINUX.ORG.RU

Тестовый вебсайт для воспроизведения проблем с curl-ом

 


0

1

Столкнулся с проблемой с curl-ом, написал багрепорт. Мне предложили попытаться воспроизвести баг с патченным curl-ом. Проблема в том, что для воспроизведения файл должен качаться, условно говоря, с минуту. Сайт, на котором я обнаружил проблему, за это время успел совсем сдохнуть. Большинство вебсайтов сейчас работают быстро и не любят, когда в них долбятся curl-ом и прочими самопальными качалками.

Вопрос: какой самый простой способ поднять локальный HTTP-сервер с урезанной до предела скоростью скачивания (GET) и поддержкой докачки? Например, умеет ли так идущий в комплекте с Python http.server? Или есть реальный сайт, который удовлетворяет этим требованиям?

P.S. Poorconn не поддерживает докачку.

★★★★★

Последнее исправление: question4 (всего исправлений: 1)
Ответ на: комментарий от One

Nginx - limit_rate

Что для этого нужно? Просто поставить пакет Nginx и запустить его из командной строки с нужными параметрами? Gentoo.

P.S. И какая разница между ngnix и ngnix-unit?

question4 ★★★★★
() автор топика
Последнее исправление: question4 (всего исправлений: 1)
Ответ на: комментарий от One

Как nginx запускать без рута? Как задать лог, pid-файл и прочее?

$ nginx --error-log-path=./error_log --pid-path=./nginx.pid --lock-path=./nginx.lock
nginx: invalid option: "-"

Хотя

$ nginx -V
nginx version: nginx/1.26.3
built with OpenSSL 3.3.3 11 Feb 2025
TLS SNI support enabled
configure arguments: --prefix=/usr --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error_log --pid-path=/run/nginx/nginx.pid --lock-path=/run/lock/nginx.lock --with-cc-opt=-I/usr/include --with-ld-opt=-L/usr/lib64 --http-log-path=/var/log/nginx/access_log --http-client-body-temp-path=/var/lib/nginx/tmp/client --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --with-compat --with-http_v2_module --with-pcre --without-pcre2 --with-threads --with-http_realip_module --with-http_ssl_module --without-stream_access_module --without-stream_geo_module --without-stream_limit_conn_module --without-stream_map_module --without-stream_return_module --without-stream_split_clients_module --without-stream_upstream_hash_module --without-stream_upstream_least_conn_module --without-stream_upstream_zone_module --without-mail_imap_module --without-mail_pop3_module --without-mail_smtp_module --user=nginx --group=nginx

Или для этого надо бинарник пересобирать?

question4 ★★★★★
() автор топика

Кстати, скачай просто какой-нибудь дистрибутив Linux. Установочные ISO с полным окружением весят 3-4 ГБ. Чтобы оно скачалось за минуту нужен канал 500 МБит/сек и выше. А если хорошо поискать, можно и 7-8 ГБ ISO найти, а это уже гигабит. Но даже если у тебя гигабит, не каждый сервер отдаёт на такой скорости (тем более что популярные дистрибутивы качаешь не только ты в один и тот же момент времени). Плюс можно выбрать какое-нибудь зачуханное зеркало.

Ещё можно занизить свою скорость связи подключившись к wifi 2.4ггц вместо 5, раздав мобильный интернет на комп, войдя под VPN и т д.

При этом ссылки на скачку дистрибутивов как правило curl-friendly, потому что их часто качают скриптами. Ну и как они тебя забанят, там даже учеток нет.

KivApple ★★★★★
()
Последнее исправление: KivApple (всего исправлений: 1)
Ответ на: комментарий от question4

Как nginx запускать без рута?

Так же как и с рутом - запуском его бинарника.

Как задать лог, pid-файл и прочее?

Обычно в комплекте с установленным nginx-ом есть дефолтный конфиг для примера - исправь в нём что нужно. Ну и, поскольку у тебя сложности в «не рутом», на всякий случай уточню: чтобы редактировать конфиг от нерута, его надо сначала скопировать из /etc себе в $HOME, а потом nginx-у указать в командной строке новый путь к нему. А вообще https://nginx.org/ru/docs/

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)

для воспроизведения файл должен качаться, условно говоря, с минуту
с урезанной до предела скоростью скачивания

Ну нагенери себе dd файл любого размера и качай хоть сутки

slowpony ★★★★★
()
Последнее исправление: slowpony (всего исправлений: 1)
Ответ на: комментарий от KivApple

Не забанит, всем пофиг. Максимум отдаст 401/403 непосредственно самому curl, если не хватит какого-нибудь заголовка

Или 403 для всех запросов из подсети на несколько часов/дней/недель.

question4 ★★★★★
() автор топика