


Все открытые = O
Таблица: b_crm_role_perms
Ошибка 502 и как с ней бороться
Поискав информацию в интернете, я выяснил, что ошибка 502 (502 Bad Gateway) это ошибка на стороне сервера и никак не связана с браузером пользователя, как пишут на многих ресурсах.
Ошибка возникает на серверах, на которых в качестве бэкенда установлен HTTP-сервер nginx. Дословно переводится как «плохой шлюз» и означает, что HTTP-сервер на фронтенде не смог обработать ответ от nginx.
Проблема обычно возникает из-за лимитов ресурсов сервера, например HTTP-сервер на фронтенде возвращает очень длинные заголовки, которые не помещаются в кеш nginx. Для того, чтобы решить эту проблему, необходимо увеличить число и размер буферов для одного соединения, в которые будет читаться ответ, а также размер буфера, в который будет читаться первая часть ответа, получаемого от проксируемого сервера:
proxy_buffer_size 16k;
proxy_buffers 16 16k;
Делается это в блоке server конфига для вашего доменного имени.
источник:
https://1devblog.ru/bitrixvm/error-502-and-how-to-fight-it/
502 Bad Gateway, это отсутствие ответа nginx от httpd(apache, читай php) за положенное время, может быть множество причин приводящих к сему — и проблемы сервера/хостинга(нехватка ресурсов, недостаточное выделение оных, список может быть длинным) и ошибки разработки сайтов, например одновременно срабатывает несколько агентов с запуском ресурсоемких задач, или есть страницы создающиеся по 10-30 сек, которые нашел робот и рассказал друзьям. В анализе могут помочь google, команда top или htop, просмотр логов httpd с уровнем логирования debug, просмотр состояния httpd в /server-status(нужно разрешить), отключение агентов, общение с разработчиками сайтов с применением сильных мотиваторов пр.
Если нет опыта/времени/желания разобраться, а денег нанять админа нет или нуу все равно нет, то можно купировать проблему(чревато):
— Как только висяк — в консоли service httpd restart, рестарт апача приведет к завершению работы всех его процессов и скорее всего прибьет проблемный.
— Попробовать уменьшить MaxRequestsPerChild на один нолик, текущее значение можно посмотреть в /etc/httpd/bx/conf/prefork.conf а новое задать в /etc/httpd/bx/custom/z_bx_custom.conf, это позволит завершать процессы апача и стартовать новые чаще, в итоге все процессы будут потреблять меньше памяти, но периоде время отклика сайтов увеличится.
источник:
https://dev.1c-bitrix.ru/support/forum/forum32/topic66190/
Upstream prematurely closed connection while reading response header from upstream
У меня установлено битрикс окружение. Частенько начала вылетать ошибка bitrix 502 bad gateway. Посмотрел логи nginx(/var/log/nginx/site_error.log). Там фигурирует одна и таже ошибка upstream prematurely closed connection while reading response header from upstream. Эта ошибка появляется тогда, когда страница генерируется больше времени, чем установленный timeout front-end’a. Обычно она возникает когда nginx отправляет запросы дальше на apache По умолчанию эти таймауты — 60 секунд. Поставим 180 (эти параметры прописываются в \etc\nginx\nginx.conf):
proxy_send_timeout 180s; proxy_read_timeout 180s;
- На Centos конфиг nginx хранится здесь \etc\nginx\nginx.conf
- Логи nginx храниятся здесь /var/log/nginx/site_error.log
Мне помогло это избавиться от 502 ошибки в bitrix
ЗЫ: Буква ‘s’ — обязательна. Без неё ошибок не будет, но и значения не будут учитываться.
источник:
BX.SidePanel.Instance.reload()
BX.message(‘USER_ID’);
function createColumnsArray($end_column, $first_letters = »)
{
$columns = array();
$length = strlen($end_column);
$letters = range(‘A’, ‘Z’);
// Iterate over 26 letters.
foreach ($letters as $letter) {
// Paste the $first_letters before the next.
$column = $first_letters . $letter;
// Add the column to the final array.
$columns[] = $column;
// If it was the end column that was added, return the columns.
if ($column == $end_column)
return $columns;
}
// Add the column children.
foreach ($columns as $column) {
// Don’t itterate if the $end_column was already set in a previous itteration.
// Stop iterating if you’ve reached the maximum character length.
if (!in_array($end_column, $columns) && strlen($column) < $length) {
$new_columns = createColumnsArray($end_column, $column);
// Merge the new columns which were created with the final columns array.
$columns = array_merge($columns, $new_columns);
}
}
return $columns;
}
print_r( createColumnsArray('BZ'));
https://stackoverflow.com/questions/14278603/php-range-from-a-to-zz
$IDUserField = CUserTypeEntity::GetList([], [
«FIELD_NAME» => «UF_CRM_1_1669630759717»
])->Fetch()[«ID»];
var_dump( \CUserFieldEnum::GetList(array(), array(«USER_FIELD_ID» => $IDUserField, «VALUE» => «Белорусская»))->arResult[0][«ID»]);
$userFieldResult = CUserTypeEntity::GetList([], [
"FIELD_NAME" => "UF_CRM_1_1669630759717"
]);
if ($userField = $userFieldResult->Fetch()) {
$userFieldId = $userField[«ID»];
echo «USER_FIELD_ID: » . $userFieldId;
}
Наблюдатели и их права
b_crm_entity_perms