Блог специалистов
25.05.2017

На загружаются все картинки/изображения на сайте

Если у вас VDS и подобное, то вы могли столкнуться с проблемой, когда при открытии или перезагрузке страницы отображаются не все картинки. Если открыть консоль, то можно увидеть ошибку, вроде этой:
GET https://devfix.ru/bitrix/templates/devfix_btstrp/img/support.png 503 (Service Temporarily Unavailable)
Т.е. какие-то изображения не загружаются, выдавая 503 ошибку. В логах nginx (если у вас Vesta Panel они находятся для каждого домена в /home/admin/web/ваш_домен/logs/ваш_домен.error.log) вы найдете строку подобную этой:
2017/05/25 12:24:43 [error] 1177#1177: *1326 limiting requests, excess: 15.140 by zone "dynamic", client: 95.153.132.94, server: devfix.ru, request: "GET /bitrix/templates/devfix_btstrp/img/logos//support.png HTTP/1.1", host: "devfix.ru", referrer: "https://devfix.ru/"
По логам видно, что превышен лимит запросов на статику с одного IP. Т.к. IP наш и мы уверены, что это были мы, значит картинки на сайте загружаясь превышают разрешенный лимит.
Выход прост. Нужно в конфиге nginx просто увеличить лимит. В /etc/nginx/nginx.conf (CentOS Vesta Panel) правим строку
limit_req_zone $binary_remote_addr zone=dynamic:10m rate=5r/s;
Заменяем, например, на 40:
limit_req_zone $binary_remote_addr zone=dynamic:10m rate=40r/s;
и перезапускаем nginx.
Обновляем сайт Ctrl+F5 несколько раз и смотрим консоль браузера, если ошибок нет, то можно чуть уменьшить лимит, например, 20, и снова перезапускаем и пробуем, пока не появятся ошибки, чтобы найти наше значение, когда не будет ошибок, но и не выставить совсем уж большое значение, т.к. этот лимит стоит для защиты сервера.

Можно пойти другим путем и например, использовать технологию Lazy Load, чтобы уменьшить первоначальное количество загружаемый картинок.

Количество показов: 638




Возврат к списку