1

Я пишу веб-страницу, которая отображает изображение SVG. Сценарий java должен загружать множество маленьких миниатюр (около 400) в этом svg, добавляя теги <image> . Как показывает вывод результатов отладки браузерами, загружаются не все эти эскизы. Многие терпят неудачу с «Ошибка 403».

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

Я подозреваю, что отправляю слишком много одновременных файловых запросов. Я, вероятно, не могу иметь прямой доступ к серверу, но это, вероятно, apache2 на Linux. Существуют ли параметры, управляющие максимальным количеством файлов на клиента или жестко заданные ограничения (например, есть параметр MaxKeepAliveRequests), или есть другие проблемы, которые могут вызвать это поведение?

Есть ли способ найти IP-адрес фактического компьютера, на котором работает сервер (Конечно, я нахожу IP-адрес, в который преобразуется URL-адрес, но, насколько я вижу, этот компьютер не работает на реальном сервере. Порт может быть переадресован)?

Несмотря на то, что это может быть не по теме: есть ли рекомендуемое решение Java-сценария для решения таких проблем при загрузке большого количества файлов?


Я нашел некоторую конфигурацию apache, которая могла бы быть соответствующей. Кажется, чтобы загрузить mod_evasive . Может ли это быть так?

Соответствующая конфигурация

<IfModule mod_evasive20.c>
    DOSHashTableSize    3097
    DOSPageCount        10
    DOSSiteCount        50
    DOSPageInterval     1
    DOSSiteInterval     3
    DOSBlockingPeriod   20
    DOSEmailNotify      ""
    DOSLogDir           "/var/log/apache2/mod_evasive.log"
</IfModule>

1 ответ1

0

Это звучит как некое ограничение скорости. Есть несколько модулей Apache, которые будут делать это, mod_qos является одним из них. Обычно они возвращают короткий текст в дополнение к запрещенному коду 403 forbidden с чуть более подробной информацией, такой как ссылка на Политику допустимого использования или подобное. Посмотрите, может ли ваш скребковый скрипт показать это в дополнение к 403 коду ошибки. Также может быть обратный прокси-сервер, прежде чем Apache сделает ограничение.

В качестве решения, оставьте минимальным количество ваших одновременных запросов на один и тот же сайт (если не 1). И подчиняться robots.txt ! Также обратите внимание на Условия использования сайта назначения и Политику приемлемого использования .

ОБНОВЛЕНИЕ да, mod_evasive также сделает это. Вы можете отключить его (если у вас есть контроль над сайтом) или настроить его параметры. В частности , в вашем случае, это будет блокировать , если вы делаете больше , чем DOSSiteCount запросов в DOSSiteInterval времени. Таким образом, вам нужно увеличить разрешенное количество запросов или уменьшить скорость извлечения (ограничивая параллелизм загрузки и / или вставляя задержку после каждого)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .