Форум пользователей Impera CMS
Impera CMS - отличный движок для лёгкого создания интернет магазина.
Обладает невероятным количеством функций, необходимых в онлайн торговле.

502 Bad Gateway

Следить
Главная
23:35
13 ноя
#
?
написал:

Заметил, если часто работать с сайтом, адинкой и т.д., то через некоторое время при попытке зайти на страницу товара вылетает - 502 Bad Gateway
На сайт, в категорию товара заходит без проблем, но если нажать непосредственно на товар, то 502 Bad Gateway.

От броузера не зависит, на разных компах и у разных людей.
Помогает только чистка кукисов, но через некоторое время опять тоже самое. Доставляет неудобства.
Как лечить?

12:42
14 ноя
#
?
Svetlakoff.m написал:

Выдержка из Wikipedia: ru.wikipedia.org/wiki/Список_кодов_состояния_HTTP#502

502 Bad Gateway - сервер в роли шлюза или прокси-сервера получил сообщение о неудачном выполнении промежуточной операции.
Из википедии DiPHOST: wiki.diphost.ru/Error502

Некоторые популярные программы написаны без соблюдения стандартов. При этом nginx служит неким фильтром "битых" запросов, чтобы избавить от обработки их внутренний уровень веб-системы. При невозможности передать запрос к apache, nginx выдаёт ошибку 502. Например, магазин PrestaShop хранит много информации в так называемых cookie, которые передаются в заголовках HTTP-запросов. По стандарту, они не могут превышать 4Kb. Однако PrestaShop игнорирует это ограничение. При попытке передать запрос с размером заголовков более 4Kb к apache, nginx выдаёт ошибку 502. Ошибка обнаруживается только просмотром специальных журналов, поскольку запрос не дошёл до apache, и устраняется установкой на страх и риск клиента конфигурации для сайта с "поправкой" на предел размера заголовков.
От себя:

В журнале nginx_error.log ошибка 502 обычно сопровождается записью типа upstream sent too big header while reading response header from upstream. Клиент может не знать, где смотреть лог и как в аккаунте хостинга сконфигурировать для сайта "поправку" на предел размера принимаемых заголовков. Тогда в шаблон index.tpl перед тегом body разумно добавить javascript автоматической чистки кукисов. Все по тому же стандарту, для одного значения path число куков не может быть больше 20, а их объем не должен превышать 4кб.

<script language="javascript">

    // удаление
    function eraseCookie (name) {
        var date = new Date();
        date.setTime(date.getTime() - 24 * 60 * 60 * 1000);
        document.cookie = name + '=; expires=' + date.toGMTString() + '; path=/';
    }

    // чистка
    function purgeCookie (count, size) {
        var buf_size = 0;
        var items = document.cookie.split(';');
        for (var i = 0; i < items.length; i++) {
            var name = items[i];
            while (name.charAt(0) == ' ') name = name.substring(1, name.length);
            buf_size += name.length;
            if ((i > count) || (buf_size > size)) {
                var offset = name.indexOf('=');
                name = name.substring(0, offset);
                eraseCookie(name);
            }
        }
    }

    // чистим кукисы, кроме первых 20 или превышающих 4кб
    purgeCookie(20, 4096);

</script>
15:43
14 ноя
#
написал:

Спасибо, Ваше решение простое и вполне гибкое. Хотя и удаляет превышенные куки без учета их важности, тем не менее искусственно держит посылку браузером заголовочной части запроса страницы на сайт в рамках стандарта.

18:24
26 ноя
#
?
написал:

Работает. Спасибо

14:54
29 ноя
#
?
написал:

при добавлении в корзину 10 и больше товаров, сайт опять выпадает в 502 Bad Gateway
если добавлять штук 20 товаров, то начинаются жуткие тормоза сайта...

если товаров меньше, то все нормально

Написание ответа

Перед публикацией рекомендуется использовать Предпросмотр, чтобы увидеть конечный вид сообщения.


Обратите внимание! Для противодействия спаму новые посты форума проявляются с задержкой от нескольких минут, пока не пройдут модерацию.