Задать вопрос
  • Как отдать ответ клиенту без ожидания завершения скрипта?

    Daemon23RUS
    @Daemon23RUS
    Vitsliputsli,
    Маскирует значит. А когда мы задачу убрали из fpm в "очередь" и оно завалится гдето в базе или гдето в кроновой задаче, это не маскировали?

    Вы реально не понимаете в чем проблема fpm с долгим временем исполнения? Вот это, на мой взгляд, очень опасная привычка для разработчика.
  • Как отдать ответ клиенту без ожидания завершения скрипта?

    Daemon23RUS
    @Daemon23RUS
    Vitsliputsli, у автора запрос к другому сервису занимает много время
    Исходя из этого: fastcgi_finish_request перед долгим запросом к стороннему серверу - говнокод.
    Дальнейший разбор, как и гадания не имели смысла. Абсолютно не имеет значения какой конфиг VPS и сколько памяти. fastcgi_finish_request путь к падению сайта в целом с HTTP 502 . Можно, но не оптимально.
    ТС нужно решение проблемы долгой отдачи страницы пользователю. Ваше не решает, а маскирует ее. В частных случаях оно может вполне оправдано, но вот в общем случае - это плохое решение.
    Напомню Вам с чего началось обсуждение: с комментария рекомендуется пользоваться этим с осторожностью Вы же утверждаете, что осторожность тут излишняя.
    ТС для решения задачи надо внести изменения в свой код. Какие ? Тут есть варианты, и в известных исходных условиях fastcgi_finish_request бомба которая может разнести (постоянно ронять) его сайт. Если это не говнокод, то что это ?
  • Как отдать ответ клиенту без ожидания завершения скрипта?

    Daemon23RUS
    @Daemon23RUS
    Vitsliputsli, Ну наконец-то! Все же не говнокод и не грабли, а нормальный инструмент. Хоть с этим разобрались.
    fastcgi_finish_request перед долгим запросом к стороннему серверу - говнокод.
    rPman, красиво все сразу расписал:
    говнокод это не повод для расстройства, просто нужно это держать в голове
    простота решения - плюс
    скрытые проблемы - минус (не каждый сразу поймет почему сервер перегружен зависшими процессами)

    Вам же захотелось технических деталей. Вы получили. Ну теперь потрудитесь привести доводы, почему Вы топите за решение имеющее проблему: при использовании fastcgi_finish_request для того чтобы уронить сайт не надо жмакать F5 достаточно просто по нему шарится, ведь теперь клиент не ожидает завершения потока, а порождает новые в процессе навигации.
  • Потеря скорости TX на устройство Wifi OpenWrt со временем, куда копать?

    Daemon23RUS
    @Daemon23RUS
    immortal555, Даунгрейдите не раздумывая, проблема присутствует, ждем когда поправится (в какой версии)
  • Как отдать ответ клиенту без ожидания завершения скрипта?

    Daemon23RUS
    @Daemon23RUS
    Vitsliputsli, Сама по себе функция fastcgi_finish_request ни какие не грабли, использование ее в кейсе ТС вот это грабли. Признак говнокода - то, что сайт можно уронить жмакая F5 на странице. Все, точка. В кейсе ТС плюс минус так и будет. Количество запросов до падения сайта зависит от фаз луны (доступности стороннего сервиса и времени его ответа) - тоже признак говнокода. При все при этом fastcgi_finish_request ну никак на это не влияет, она дает мнимое ощущение что проблема решена. На что rPman Вам и указал. Даже больше, при использовании fastcgi_finish_request для того чтобы уронить сайт не надо жмакать F5 достаточно просто по нему шарится, ведь теперь клиент не ожидает завершения потока, а порождает новые в процессе навигации.
  • Как отдать ответ клиенту без ожидания завершения скрипта?

    Daemon23RUS
    @Daemon23RUS
    Vitsliputsli, Хорошо, начнем с известных данных от ТС: требуется сделать запрос на другой сервис и сохранить полученные данные в файл, но запрос к другому сервису занимает много время, и клиенту приходится ждать пока завершится скрипт, Пожалуй это и будет основным критерием.
    Имеем Nginx и PHP (что наиболее вероятно будет в варианте php-fpm)
    max_children в конфиге php-fpm У ТС спрогнозировать сложно, но предположим что у него простой VPS и эффективное значение max_children будет в районе 20-30

    - Не особождаем воркер? Ну так он на то и воркер, чтобы работать.
    php-fpm воркер для того, чтобы отработать скрипт и отдать контекст клиенту, взять следующий запрос. Одна из немаловажных метрик - время обработки. Чем оно меньше тем меньше воркеров потребуется для нормальной работы сайта при нагрузке (не важно большой или маленькой, это другая история). У ТС воркер будет "спать" ожидая ответ от другого сервиса.

    - Кол-во воркеров это какое-то лимитированное число, которые нельзя менять?
    Вполне себе изменяемое значение

    - Чем лучше, если эту же работу будет делать не fpm-воркер, а просто воркер-процесс?
    сторонний процесс не расходует важный ресурс который отвечает за возможность обработать запрос пользователя и показать ему страницу. С fpm-воркер если сторонний сервис упадет, мы набираем 20-30 запросов которые ждут таймаута, а к сайту ТС уже нет доступа получаем HTTP 502, причем для всего сайта в целом.

    - Что будет если процессов будет в разы больше чем процессоров?
    Тут я не совсем понимаю, это вроде как ваша идея смотреть в сторону увеличения воркеров.

    - Чем лучше, если вся производительность упадет в пол по CPU, вместо ожидания fpm-воркера для отдельных запросов?
    И здесь мне непонятно почему производительность должна упасть в пол.

    У ТС тривиальная задача, получать ответы от удаленного сервиса и сохранять их в файл, один процесс с очередью, асинхронной обработкой этих запросов прекрасно справится. fastcgi_finish_request это потенциальные грабли на которых он по незнанию потом может очень долго скакать не понимая причин HTTP 502

    Достаточно обоснованно ?
    Написано
  • Как отдать ответ клиенту без ожидания завершения скрипта?

    Daemon23RUS
    @Daemon23RUS
    Vitsliputsli,
    Скрытых проблем здесь нет,

    Видишь суслика?
    — Нет.
    — И я не вижу. А он есть!


    Поддержу коллегу rPman, он верно заметил, что это так себе решение. Все может лечь гораздо раньше чем мы куда либо упремся. Мы не освобождаем поток, а их количество конечно и определено в конфиге, например сколько раз надо нажать F5 на этой волшебной странице, чтобы уронить полностью весь сайт ?
    Написано
  • Как сделать так, чтобы nginx не слушал http, а только https?

    Daemon23RUS
    @Daemon23RUS
    Everything_is_bad, Плюсом вангую, что конфиг чатжэпити запилил. Тут уже работает математика и статистика, где прямо коррелирует использование оного и подрыв выше обозначенного в общении с живыми людьми.
    Написано
  • Не работает apt update && apt upgrade в Kali Linux. Что делать?

    Daemon23RUS
    @Daemon23RUS
    Руслан, Смотрите в сторону "туннелей" у Вас все для этого есть из коробки.
    Написано
  • Не работает apt update && apt upgrade в Kali Linux. Что делать?

    Daemon23RUS
    @Daemon23RUS
    Руслан, Проходя мимо, решил поинтересоваться: Что может Kali, и не может Ubuntu ?
    Может я чего не знаю, и пора менеджеров и бухгалтеров с убунты на кали пересаживать ;)
    Написано
  • Как могло пропустить DMARC?

    Daemon23RUS
    @Daemon23RUS
    luckyjenro0, Тут есть нюанс, мы видим что прошло, но не видим что пихалось изначально, и причем пихалось такое что после регулярки остался пробел ...
    Написано
  • Как могло пропустить DMARC?

    Daemon23RUS
    @Daemon23RUS
    luckyjenro0, Полагаю, что валидный sender позволяет пихать что угодно в from, ошибочное поле from при наличии sender ошибка не критичная, и письмо проходит. DKIM валидный, SPF тоже. А вот получить политику DMARC маил не может, а это считай политика не указана. Нет политики - нет проверки, что и требовалось получить.
    Ну а Аватарка это другой "сервис" там может пробел значения не имеет
    Написано
  • Как могло пропустить DMARC?

    Daemon23RUS
    @Daemon23RUS
    luckyjenro0, From: noreply@tbank.ru - между tbank.ru и переводом строки - пробел
    Думаю в маил ру недоработали одмины... не подтягивает политику с пробелом ...
    Написано
  • Как могло пропустить DMARC?

    Daemon23RUS
    @Daemon23RUS
    luckyjenro0,
    Authentication-Results: mxs.mail.ru; spf=pass (exim-mx-5b6ddbb58-dxxpc: domain of ###.ru designates ###.###.###.### as permitted sender) smtp.mailfrom=###@###.ru smtp.helo=mail.####.ru;
    	 dkim=pass header.d=####.ru; dmarc=pass header.from=####@####.ru

    Вот пройденный DMARK
    Написано
  • Как могло пропустить DMARC?

    Daemon23RUS
    @Daemon23RUS
    AUser0, До DMARK дело не дошло, DKIM сгенерирован для .ceo и проверку прошел,
    для DMARK запрашиваем политику с домена указанного в from, а там в конце доменного имени пробел. Как там у маилру сработало - хз, но по заголовкам видим что отметки нет и DMARK политика не применялась. Успешный DKIM+SPF рейтинг повысил.
    Написано
  • Как могло пропустить DMARC?

    Daemon23RUS
    @Daemon23RUS
    luckyjenro0, Стоп, в ночи не усмотрел, DMARC и DKIM, DKIM - пройден по вышеобозначенному признаку. А DMARC не проверялся, т.к наверно запись не обнаружена. Предположу, что проверку на политику проходил домен tinkoff.ru%20 а не tinkoff.ru, политика не обнаружена и имеем то что имеем.
    P.S. еще в ascii кодах надо посмотреть, может подмена символа ...
    Написано
  • Как могло пропустить DMARC?

    Daemon23RUS
    @Daemon23RUS
    luckyjenro0, DKIM не проверяет поле from и sender - он добавляет только подпись, которая показывает, что значимые части заголовка письма не были изменены и что письмо прошло через почтовый сервер, ответственный за определённый домен. Как следствие dkim=pass получен по полю sender
    В общем ситуация неприятная, на заголовки не насмотришься ...
    Написано
  • Как могло пропустить DMARC?

    Daemon23RUS
    @Daemon23RUS
    luckyjenro0, Sender: noreply@tinkoff.ceo, вот он и проверяется
    Написано
  • Radeon rx 470 ошибка 43. куда копать?

    Daemon23RUS
    @Daemon23RUS
    An, Работающий под линь рендер ≠ полностью рабочий GPU.
    Написано
  • Что означает # в номере входящего звонка?

    Daemon23RUS
    @Daemon23RUS
    aleks-th, Вынесите в ответ, актуально, мы не одиноки с этим вопросом.
    Написано