Задать вопрос
  • В какой контейнер ставить сертификат Lent`Encrypt в NGINX-front или NGINX-backend?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Во первых для вашего определения того, что вы называете "фронт" есть официальный термин - реверс прокси.
    И конечно же сертификаты должны быть на нем.
    Ответ написан
    Комментировать
  • Можно ли настроить запросы к php через вебсокет и http одновременно?

    3. Вебсокет и unix сокет - это совершенно разные вещи. Websockets - это протокол обмена информацией по TCP/IP.
    Как работают websockets:
    - Клиент начинает с простого HTTP запроса с просьбой апгрейднуться до websockets.
    - Сервер соглашается, и тогда между Клиентом и Сервером устанавливается постоянное TCP/IP соединение, по которому данные могут ходить туда-обратно по протоколу websockets уже без кучи церемониальных ритуалов, как принято в обычном HTTP.

    1. Изначально PHP совершенно не подходил для постоянного соединения, потому что он создавался как скриптовый язык. Скрипт должен был отработать один раз и почистить все следы своего выполнения. Поэтому создатели особо не заботились об утечках памяти и т.д. В результате было очень обременительно создавать постоянно-живущие процессы, необходимые для websockets. Но в настоящее время PHP очень сильно развивается, разработчики уделяют очень много внимания такому сценарию использования языка. PHP стал производительнее и гораздо надёжнее работает с памятью. Однако, напрямую реализовывать долгоживущий сервис самому всё еще муторно, поэтому лучше всего использовать отличные сторонние фреймворки/библиотеки.

    2. Что можно использовать:
    - Ratchet
    - Swoole / OpenSwoole
    - Workerman

    У каждой из этих асинхронных библиотек/фреймворков есть свои особенности и нюансы. Но это всё очень хорошо описано в их документации, так что просто следуйте тому, что там написано, и не волнуйтесь. Советовать что-то одно не буду, потому что на вкус и цвет все фломастеры разные, и выберете то, что будет отвечать вашим конкретным задачам.
    Ответ написан
  • Можно ли настроить запросы к php через вебсокет и http одновременно?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Разумеется можно. Никаких нюансов в одновременной работе нет, поскольку тут нет никакой "одновременности". php-fpm и websocket - это два разных сервиса, которые могут располагаться на одном и том же сервере или на разных, но в любом случае никак не пересекаются. В добавление к текущему веб-серверу вы просто запускаете вебсокет сервер и посылаете на него вебсокет запросы из браузера.

    Ну то есть вам всего лишь надо осознать, что никакой одновременности нет, а дальше просто поставить вебсокет сервер, например workerman, и написать код, который по запросу будет соединяться с БД, получать нужную инфу и отправлять клиенту.

    1. Да.
    2. Как говорилось выше - можно. Любой сервер в сети по определению обеспечивает работу множества сервисов, количество которых ограничено только количеством свободных портов. Можно поставить два веб-сервера и пять вебсокет серверов.
    3. Нет, разумеется. unix сокет это как раз внутренняя кухня сервера, но мы же говорим о сетевом взаимодействии. А tcp взаимодействие nginx и php-fpm тут вообще не при чём.
    Ответ написан
    8 комментариев
  • Можно ли настроить запросы к php через вебсокет и http одновременно?

    @rPman
    Да, подходит.

    websocket это расширение http запроса, т.е. там добавляются специфические заголовки и можно отправлять туда-сюда пакеты в одном соединении.

    Для этого приложение на php нужно реализовывать в виде http сервера (готовых библиотек тьма, включая штатные расширения), рекомендуется использовать swoole ну или по старинке на сокетах (библиотеки phpreact)
    Ответ написан
    4 комментария
  • Можно как то улучшить сигнал мобильного интернета где работают глушилки?

    @Drno
    Возможно причина более банальна - БС оператора перегружена из-за наплыва людей
    как вариант лично мне помогла банальная смена оператора
    Ответ написан
    1 комментарий
  • Можно как то улучшить сигнал мобильного интернета где работают глушилки?

    @Oslik-ia
    Скорее всего, это не глушилки. Базовая станция изначально была рассчитана на одно количество устройств(допустим, 1000), а стало в несколько раз больше. Раньше в таких случаях помогал принудительное перевод модема на режим 3g, так как основная масса устройств сидит на частотах 4g.
    Ответ написан
    3 комментария
  • Можно как то улучшить сигнал мобильного интернета где работают глушилки?

    hint000
    @hint000
    у админа три руки
    Нужна антенна в форме тарелки (иногда в форме сетчатой тарелки), чтобы вы могли направить эту тарелку точно в сторону вышки. Это называется "остронаправленная антенна", так и надо гуглить. Бывает и в форме горизонтального стержня с несколькими короткими поперечинами на нём (Yagi), тоже вариант (меньше подвержен ветру и снегу, чем тарелка), но по усилению тарелка всех уделает, если её правильно установить. Суть в том, что сигнал хорошо ловится только с одного направления. Если глушилка где-то в стороне, то сигнал глушилки будет ловиться такой антенной слабо.

    Короче, главное для этой задачи - форма и характеристики антенны, точность установки, а не активная электроника, которая к этой антенне прилагается.
    Ответ написан
    2 комментария
  • Можно как то улучшить сигнал мобильного интернета где работают глушилки?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Если кратко и упрощённо: разве что можно попробовать более дорой девайс с более чувствительным приёмником, более мощным передатчиком и более узконаправленной антенной, а так же более качественными усилителем и фильтрами помех. Топ - усилитель непосредственно в антенне, а из него уже идёт ethernet кабель в дом в роутер. Сделать что-то ещё вряд ли получится просто потому что мощность гражданских радиоустройств ограничена законодательно. А у военных устройств - нет. Так что глушиться будет всё равно: более дорогой девайс может лучше поймает сигнал, а может нет. Ну и более чувствительный приёмник точно так же и помехи поймает лучше.
    Ответ написан
    4 комментария
  • Как выполнять отладку на php?

    colonel
    @colonel
    Разработчик PHP, Laravel
    Ответ написан
    Комментировать
  • Как правильно в Symfony десериализовать Request в DTO, а последний потом в сущность?

    Как человек, который в своё время так переусложнял код, что потом сам не понимал, что и где в проекте происходит, посоветую вам использовать самый лучший принцип на свете - "KISS"

    Поэтому, ничего сложного пока не выдумывайте, поверьте, вы всегда сможете потом всё усложнить)))

    Я бы сделал так:

    • В контроллере сериализуем JSON в DTO ( можно вообще вот так https://symfony.com/blog/new-in-symfony-6-3-mappin... )
    • Далее создаёс сервис, который будет нашим маппером, и который будет иметь 2 метода "fromDtoToEntity" и "fromEntityToDto", и он будет заниматься всеми преобразованиями туда-сюда.
    • В этом маппере пишем наитупейшую логику, как вы и писали $user-setAge($DTO->getAge());
    • Отдаём клиенту ответ из контроллера


    Этот вариант максимально прозрачен и сильно сэкономит вам время при дебаге, потому что вы в два клика сможете найти всю логику.
    Ответ написан
    9 комментариев
  • Как получить доступ из docker контейнера к mysql на localhost?

    karabanov
    @karabanov Куратор тега Docker
    Системный администратор
    Дело в том, что у каждого контейнера внутри свой loopback интерфейс с IP 127.0.0.1

    Есть два пути, чтобы добиться желаемого.

    Первый, убрать изоляцию с сети (network_mode: host), тогда всё просто заработает, но так делать не надо потому что на проде тебе никто не позволит так делать.

    Второй, надо заставить MySQL слушать либо на 0.0.0.0 (то есть на всех интерфейсах) и подключаться к ней из контейнера по IP шлюза (его можно посмотреть в выводе docker inspect <container_name>), либо заставить MySQL слушать именно на одном IP который является шлюзом для контейнера.
    Ответ написан
    2 комментария
  • Почему сайты отказываются от GET параметров на станицах?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Человечество развивается, люди становятся умнее, начинают наконец понимать стандарты. Ну, кроме разработчиков битрикса, конечно.
    Ответ написан
    Комментировать
  • Как перехватить исключение выбрасываемое из-за несуществующего метода объекта?

    @MaLuTkA_UA
    Для подобных целей существует функция method_exists.

    Ваш вариант хоть и рабочий но очень дорогой по ресурсам сервера.
    Ответ написан
    1 комментарий
  • Как произвести валидацию JWT токена с помощью public.key?

    И вообще, что проверяется публичным ключок - сам токен или его подпись.

    Подпись в самом JWT (JWS).

    при ее валидности потом декодируется вручную payload токена и вычисляется по меткам времени его валидность

    Всё верно.

    где лучше производить валидацию токена в случае SPA приложения: на фронтенде при каждом запросе к серверу, либо же на бэкэенде получаю при каждом запросе access_token с фронта?

    На сервере, куда делаются защищённые запросы, естественно. Валидировать токен на фронте бесполезно, а отсутствие валидации на сервере означает, что сервер будет не защищён. Любой злоумышленник сможет авторизоваться под любым пользователем отправив свой JWT.

    Единственное, что стоит проверять на фронте, это срок действия токена. Если он истёк, нужно получить новый токен.
    Ответ написан
    3 комментария
  • Почему при генерации pdf изображения в документ вставляются только в base64 кодировке?

    demon416nds
    @demon416nds
    Разработчик на чем попало
    Потому что библиотека не может скачивать изображения по ссылкам. Изображения же в base64 встроены в страницу и не требуют скачивания
    Ответ написан
    3 комментария
  • 128 символов когда их всего 95?

    vfreelancer
    @vfreelancer
    php
    В отличие от strlen(), iconv_strlen() учитывает кодировку строки. Длина string не обязательно будет соответствовать количеству байт в ней, так как в различных кодировках различные символы кодируются различным количеством байт, например, юникод может быть и двух-, и четырёхбайтным.

    попробуйте mb_substr с указанием кодировки
    Ответ написан
  • Нужен совет опытных WEB разработчиков?

    @rPman
    Самый неправильный способ обучения - с конца. Это очень неэффективно если не бессмысленно, изучать программирование непоследовательно.

    Смотреть как другие решают проблемы может помочь только в одном случае, если ты хочешь посмотреть как именно твою задачу решили другие, и максимально полезно это будет только если понимания именно этих действий, которые выполняет другой человек, тебе не хватает, что само собой нереально, обычно человек не знает больше (а значит достаточно если что то будет непонятно хотя бы на одном шаге, дальше смотреть бесполезно) либо наоборот знает больше чем автор видео, а значит смотреть то что уже знаешь - лишняя трата времени.

    Веб технологии - одни из самых сложных технологий нашего времени, и включают в себя сразу кучу всего, что нужно знать и понимать. То что благодаря готовым фреймворкам и конструкторам новички могут создавать крутые поделки даже не понимая что они делают, не поможет им развиваться.

    Советую изучать с низов, самостоятельно, чтобы было понимание каждого шага, всего что происходит.
    * операционные системы, процессор и многопоточность, сети,...
    глубоко изучать это не требуется но базовые понимания нужны чтобы не получать медленное приложение только потому что не знал что каждый твой запрос в tcp это 'туда-сюда', и это медленно (десятки миллисекунд), что одновременно два человека пытающиеся что то изменить на сайте нужно разруливать чтобы не было конфликтов и т.п.
    * бакэнд и фронтэнд
    буквально что значит запрос и генерация ответа, какие бывают способы организации этого бакэнда (http rest и к примеру websocket), не понимание разницы между бакэндом и фронтэндом у новичков рождает абсурдные вопросы как из javascript изменить переменную php (и наоборот)... в чем разница между генерацией страницы на сервере и в браузере.
    * html, css,..
    верстка и дизайн, отдельный мир браузерных стандартов, исторических наслоений,. когда стоит применять фреймы, почему шрифты по разному выглядят, разные устройства и размеры экранов, разные способы взаимодействия (сенсорный экран, мышь, клавиатура)...
    * базы данных
    еще более огромный мир атомарных транзакций, индексов, нормальных форм и прочего
    * девопс
    без умения выбрать инструмент, настроить тулчейны, среду разработки, среду исполнения (веб сервер), настроить бакапы и прочее пытаться что то разрабатывать это как в слепую гулять по лесу, будешь постоянно на ветки натыкаться
    ...
    это я еще про системную аналитику не сказал, обычно прежде чем что то создавать, нужно продумать как это все делать, что такое технический долг и т.п., а еще есть тестирование, обслуживание, работа с отказами (сервер сдох, база упала, как все восстановить), обновление на живую и прочие веселья

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

    @Drno
    Это вопрос из области психологии и самомотивации.
    В первую очередь тебе должно быть это ИНТЕРЕСНО. Если этого нет - любая работа даже за овердохера денег будет каторгой.

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

    Про самозванца. Начни. поднимать тестовое задание на ubuntu server.
    Ответ написан
    3 комментария
  • Генератор случайного числа с отправкой на почту?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    У вас вопрос буквально уровня
    "Надо в понедельник пойти на алгебру, во вторник на литературу, а по пятницам на обж. Может кто сталкивался с таким???"
    Никаких "вариантов" тут встречать не надо. Если человек в принципе умеет ходить, и знает что такое алгебра с литературой.

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