• Как настроить редиректы на nginx?

    @wassapman72
    if ($arg_lang) { return 301 /$arg_lang$uri; }
    Ответ написан
    Комментировать
  • Docker контейнер для каждого приложения или docker контейнер с pm2 и всеми приложениями?

    @wassapman72
    pm2 по сути супервизор, одна из функций докера так же по сути супервизор, работать будет и так и так, соблюдать docker way или нет это решение за вами, но не соблюдая вы получаете набор проблем на лонгране, как минимум:
    1. в случае перехода к применению инструментов оркестрации вы не сможете применять некоторые фичи или инструмены траблшутинга/мониторинга/масштабирования, а некоторые из них будут работать не корректно.
    2. вы нарушаете "стандарт", и любому кто будет работать с вашим решение вместе с вами или после вас нужно будет понять его суть (а так же разобраться в том как именно вы решаете проблемы и почему именно таким способом).
    Ответ написан
    Комментировать
  • Как грамотнее всего реализовать лимит запросов в проекте?

    @wassapman72
    обращатся в бд на каждом запросе, чтобы его посчитать - это не лучший способ по многим причинам (нагрузка, подержка вашего самописного рэйтлимита и еше тысяча). почитайте https://www.nginx.com/blog/rate-limiting-nginx/
    или тут nginx.org/ru/docs/http/ngx_http_limit_req_module.html и скорее всего этого хватит с головой.
    можно зиспользовать 1 nginx как loadbalancer, можно настроить на каждом из nginx.
    Ответ написан
    Комментировать
  • Как выявить сильное отклонение в массиве?

    @wassapman72
    из комментариев: если убирать все числа у которых отклонение больше 100% от среднего, то 20 и 30 останутся.
    потому просто просто Threshold нужный подбирайте, можете его на $avg завязать.

    $prices = array(
    '10300',
    '10200',
    '1250',
    '1260',
    '1240',
    '1140',
    '20',
    '30'
    );
    $avg = array_sum($prices)/count($prices);
    $threshold = 2100;

    $result = array_filter($prices, function ($p) use ($avg, $threshold) {
    return $p < ($avg + $threshold) && $p > ($avg - $threshold) ? $p : false;
    });

    var_dump($result);
    Ответ написан
    Комментировать
  • Сервер не может подключиться к удалённой БД, Workbranch может. В чём может быть проблема?

    @wassapman72
    если telnet x.x.x.x 3306 c тачки на которой воркбенч отрабатывает ок, то проблема скорее всего между сервером 1 и 2 (это может быть фаервол например на сервере1 или если есть прокси между ними то на них, или какой то хитрый роутинг или бог знает что, все зависит от инфраструктуры где находится сервер 2 и сервер 1).
    в таком кейсе для начала попробуйте почитать правила фаервола и что они запрещают/разрешают/перенаправляют если сложно то можно отключить фаерволы (потушить iptables например, если там он) и проверить поменялся ли ответ телнета, если не линукс то тушите то что там есть по фаерволам.

    если telnet x.x.x.x 3306 c тачки на которой воркбенч отрабатывает не ок, то скорее всего вы коннектитесь через ssh тунель и тогда смотри выше.
    Ответ написан