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

    @rPman
    Формально, в данной схеме можно исключить nginx.

    Еще , если хорошенько подумать, можно было бы избавиться и от django (чем занимается django если по факту нужно обслуживать api для приложения, но разработчикам бакэнда виднее).

    Главная причина, почему 'обычно' именно так делают, это вопросы безопасности и простоты разработки.
    * nginx (или apache), обычно используют как сервер
    - который обслуживает ssl шифрование (сертификаты для https), обслуживание простых логов (сбор статистики например) и защита от одного типа ддос (уже редкий случай).
    spoiler
    держит воркеров на случай, когда злоумышленник открывает соединение но ничего в него не пишет и не читает (если бы не было nginx сервера, то бакэнд тратил бы кучу ресурсов на обслуживание таких зомби-соединений), к сожалению если правильно слать нужные запросы и забирать хотя бы байт ответа, то нагрузка на бакэнд все же пролезет.

    - очень эффективная отдача статичных файлов с диска
    Веб сервера вылизаны на столько, что написать реализацию простой отдачи файлов лучше наверное уже не возможно, поэтому для статических файлов (картинки, стили, видеофайлы) выгоднее и проще отдавать это на откуп nginx (в некоторых случаях можно вообще обойтись только веб сервером, тупой пример basic http auth + отдача статики)

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

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

    DMGarikk
    @DMGarikk
    Lead Software Developer
    Можно
    Ответ написан
    Комментировать
  • Какую панель для хостинга выбрать в моём случае?

    @Anton_1982
    В вашем случае, когда хостинг не предоставляет панели управления, а доступен только FTP, можно рассмотреть несколько вариантов для упрощения работы с сайтом.
    1. Использование WinSCP

    WinSCP - это мощный клиент для работы с FTP, SFTP и SCP, который позволяет управлять файлами на сервере. Он поддерживает синхронизацию, что может облегчить процесс создания резервных копий. Если вы ищете простое решение, WinSCP может быть хорошим выбором.

    2. Файловые менеджеры и инструменты для работы с БД

    Если вы ищете инструменты, которые объединяют в себе файловый менеджер и возможность работы с базами данных, то вот несколько вариантов:

    - PHPMyAdmin: Если у вас есть доступ к веб-серверу, вы можете установить PHPMyAdmin для управления MySQL/MariaDB базами данных. Это позволит вам легко выполнять операции с БД через веб-интерфейс.

    - Adminer: Это легковесная альтернатива PHPMyAdmin, которая также позволяет управлять базами данных через веб-интерфейс. Она занимает меньше места и проще в установке.

    - FileRun: Это веб-файловый менеджер, который может быть установлен на сервер и предоставляет удобный интерфейс для управления файлами через браузер.

    3. Локальные решения

    Если вы хотите работать локально, можно использовать:

    - Total Commander: С помощью плагинов он может подключаться к FTP и управлять файлами, а также работать с архивами.

    - FileZilla: Это еще один популярный FTP-клиент, который позволяет легко управлять файлами на сервере.
    Ответ написан
    Комментировать
  • Редактирование загрузочного меню GRUB?

    smorman
    @smorman
    When In Rome do as The Romans do...
    Установите Grub-Customizer и будет вам щастя...
    Ответ написан
    2 комментария
  • GitLab Как сделать автоматическую проверку кода при push или merge request с уведомлением разработчика о результате и получением от него обр. связи?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    1. Да, возможно. Поднимаете отдельный CI/CD сервер, создаете задачу с нужным вам функционалом и на этом сервере её запускаете. Отчёт можно любым приложением/скриптом отправить/залить куда и как угодно. Например, можно сразу в коммит или в запрос запостить сообщение через API: https://docs.gitlab.com/api/commits/#post-comment-...
    А при появлении сообщения в коммите/запросе гитлаб автоматом оповещает всех причастных, кто подписан. Просто настройте нужные вам оповещения — можно ботом в чат их слать в ТМ, на почту или ещё куда угодно.
    Так же гитлаб поддерживает стандартные форматы отчётов тестов из коробки, что позволяет сразу в интерфейсе гитлаба увидеть все результаты тестов. Возможно в вашем случае это подойдёт, возможно нет.
    Отдельный сервер нужен для того, чтобы не создавать проблемы и тормоза на основном сервере, где запущен гитлаб. А если запускаете на том же — убедитесь в установке ограничений производительности для задач. Иначе, когда у вас будет запускаться по сотне или даже тысяче задач в день — будет не очень комфортно работать с гитлабом.

    2. Это не имеет смысла. Пуш — это по факту просто загрузка коммита на сервер. Есть PR — он легко блокируется через подтверждение со стороны определённых пользователей или групп пользователей, а так же в случае если задача завершилась с ошибкой. Это всё настраивается в настройках. Вам следует просто правильно организовать рабочий процесс. Используйте стандартный Github Flow. PR для того и придуманы, чтобы в PR принимать или отклонять изменения. Не, так-то если очень хочется, то можно откатывать одиночные коммиты, но правильнее это делать через PR.

    3. Задача запускается сразу после пуша. В задаче есть полный доступ к репозиторию и всему коду. А т.к. это гит, то легко можно получить все изменения в любом виде в скрипте и делать что угодно с ними.

    4. Да, это стандартное поведение всех задач. Задача, обычно, запускается в контейнере и пока контейнер работает — статус задачи не меняется. Либо это отдельный скрипт на сервере, завершение которого гитлаб будет ждать. Задачу даже можно разбить на несколько стадий и по мере их завершения менять статус самой задачи, а результат можно даже в реальном времени в самом гитлабе в задаче наблюдать.
    Ответ написан
    Комментировать
  • Есть ли кибер-опасность продажи своей умной колонки Яндекс?

    Vamp
    @Vamp
    Достаточно только отвязать колонку от своего аккаунта. Все ваши данные хранятся онлайн и новый пользователь не сможет получить доступ к ним через отвязанную колонку.
    Ответ написан
    Комментировать
  • Хватит ли 750 БП?

    Wispik
    @Wispik
    5070ti потребляет 300вт. БП на 750 ей спокойно хватит
    Ответ написан
    Комментировать
  • Хватит ли 750 БП?

    opium
    @opium
    Просто люблю качественно работать
    Нет, знакомый не прав. 7800x3d — ~120W, 5070ti — 300W, плата/оперативка/ссд ещё ~50W. Итого ~470W под нагрузкой, это 63% от 750W. Кстати PN750D — ATX 3.1 с нативным 12V-2x6, как раз заточен под 50-ю серию NVIDIA.
    Ответ написан
  • Как изменить nginx v 1.30 конфиг для laravel или обычного php?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Дело не в версии, а в поставках. Кто-то поставляет nginx с sites-available, sites-enabled, а кто-то с conf.d.
    Формат конфигов не изменился, а все управляющие директории прописаны в основном конфиге nginx.conf
    Ответ написан
    1 комментарий
  • Стоит ли использовать в backend базу данных SQLite?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Файловая БД не масштабируется горизонтально, соответственно вы не сможете с помощью запуска дополнительных узлов ни производительность поднять, ни отказоустойчивость. SQLite - это хорошее решение для десктопных и мобильных приложений, а также для отладочных и тестовых запусков серверных приложений. Выводить с ней бэкенд в прод не стоит.
    Ответ написан
    3 комментария
  • Стоит ли использовать в backend базу данных SQLite?

    Lord_of_Rings
    @Lord_of_Rings
    Northern Strider
    Может ли при непредвиденной нагрузке на API упасть база данных?
    В таком виде как вы это понимаете - нет. SQLite — это встраиваемая библиотека. Она не является отдельным процессом/сервером, она работает в том же процессе и в том же потоке, что и ваш код. При перегрузке сервера БД упрется в блокировку файловой системы, т. к. sqlite не умеет обрабатывать параллельную запись (только параллельное чтение), в результате чего FastAPI получит ошибку database is locked и вернет пользователю 500-ю ошибку.

    Также одним из аргументов необходимости перехода является отсутствие встроенного шифрования базы данных в SQLite
    Есть неплохой форк SQLite - называется SQLCipher, поддерживающий 256-битное AES. Его можно без проблем использовать в SQlAlchemy.

    Также, если потребуется переход, какую реляционную базу данных выбрать?
    это наш первый сколько-нибудь сложный проект, который мы пытаемся создать
    Я бы пока не переходил никуда. Пока проект небольшой, некоммерческий и т. д. и т. п., нет смысла усложнять себе жизнь.
    Ответ написан
    Комментировать
  • Cуществует ли в гит частичное слияние? И насколько это сложно?

    opium
    @opium
    Просто люблю качественно работать
    тебе не cherry-pick нужен, а git checkout -p change_a -- path/to/file.ext

    покажет все изменения файла по кускам (hunks), для каждого спросит y/n. Выбираешь нужные, остальное скипаешь. Мерж потом нормально пройдёт, мб конфликт если в тех же строках будут другие правки.
    Ответ написан
    Комментировать
  • Как остаться на той же странице при скачивании файла?

    @rPman
    По коду у вас открытие страницы делает браузер с помощью javascript.

    Что бы ссылка скачивалась а не открывалась в браузере (исключение, специально настроенные в браузере типы файлов, например pdf по умолчанию в браузерах открывается, но это настраивается), то сервер при формировании ответа по этой ссылке в headers задать два заголовка Content-Type и Content-Disposition: attachment
    header('Content-Type: application/xml');
    header('Content-Disposition: attachment; filename=filename.xml');

    в данном случае тип данных application/xml а имя файла filename.xml (оно будет предложено в диалоге сохранения)

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

    p.s. есть еще вариант, он подходит если файлы по ссылке не большие (влезают в оперативную память у клиента) и главное удаленный веб сервер не запрещает кросс запросы CORS то можно загрузить файл на javascript и отдать его как blob
    fetch('https://example.com/test.xml')
      .then(r => r.blob())
      .then(blob => {
        const url = URL.createObjectURL(blob);
        const a = document.createElement('a');
        a.href = url;
        a.download = 'test.xml';
        a.click();
        URL.revokeObjectURL(url);
      });

    кстати если файл в том же домене, то можно просто создать тег с атрибутом download, не используя blob

    Вроде бы больше нет никаких способов, либо content-disposition либо формировать blob и тег a с атрибутом download
    Ответ написан
    3 комментария
  • Как установить лёгкий веб сервер Lighthttpd или его аналоги на микроконтроллер Luckfox Pico Pro/Max?

    opium
    @opium
    Просто люблю качественно работать
    Тут два варианта. Если хочешь по-нормальному — клонируй luckfox-pico SDK, включи lighttpd в buildroot menuconfig и пересобери прошивку. Если лень пересобирать — ставь Entware на устройство, потом opkg install lighttpd из того репозитория. Для Pro/Max с armv7 должно завестись.

    p.s. если надо просто статику раздать, проверь busybox httpd, мб уже есть в прошивке из коробки
    Ответ написан
    Комментировать
  • Windows. БД и php — IIS или open-source?

    Vamp
    @Vamp
    Пользователям win, учиться разработке и профессионально работать с php и БД можно естественным путём и в IIS, — он бесплатен и предустановлен в системе по умолчанию.

    Изучать сам язык php можно как угодно, где угодно и в чём угодно. Даже на IIS, прости господи. Вот только в реальном мире сайты на php никто не хостит на винде в целом и на IIS в частности. Поэтому когда дело перейдёт от обучения к реальной практике, вы даже не сможете задеплоить сайт на настоящий хостинг, который гарантированно будет на линуксе + nginx/apache2.

    Буквально в прошлом месяце была у меня такая история. Компания заказала сайт на битриксе какому-то фрилансеру. Он его захостил где-то у себя, чтобы показывать заказчикам. Потом когда дело дошло до переноса сайта с его хостинга на хостинг компании, то начались необъяснимые сложности. Он смог только по FTP залить файлы сайта, а дальше, по его словам, "какой-то неправильный хостинг вы купили". Хотя это самый стандартный vps на линуксе. Причём по специальному тарифу от хостера, оптимизированному под битрикс. Уверен, этот товарищ тоже учился разрабатывать на IIS, а теперь не может даже разобраться как настроен апач и mysql на новом месте. Вполне возможно он даже php не знает. В битрикс разработке такое тоже встречается.

    Сторонний open-source типа какого-нибудь xampp, open-server и т.п. нужно скачивать, устанавливать, а иногда, пусть даже и не большую, монетку задонатить, соответственно захламляя при этом ОС сторонним софтом, по сути, без строгой необходимости.

    Как минимум php и mysql вам абсолютно точно придется скачать и захламить ими свою систему, так как их не бывает в виндовсе из коробки. А раз уж всё равно что-то скачивать и устанавливать, то нет большой разницы будет ли это xampp, open-server или что там ещё есть. И донатить монетку необязательно.

    Тем не менее большинство пользователей win предпочитают использовать не родной IIS, а сторонний open-source (игнорируя при этом его родную среду линух).

    Честно признаться, за всю свою многолетнюю практику я так ни разу и не встретил ни одного проекта, использующего IIS или человека, занимающегося им. Иногда мне кажется, что это фейк и никакого IIS не существует.

    Это кажется странным. Закономерно предположить, что должна быть причина, — в чём она?

    Не очень понятно что именно вам показалось странным. Можете уточнить этот момент?
    Ответ написан
  • Windows. БД и php — IIS или open-source?

    @Drno
    потому что надо сразу учиться на нормальном софте, на котором потом и будет запускаться проект
    а это обычно линукс + nginx \ apache2
    Ответ написан
  • Как сделать переходник с usb 9 pin на usb 4 pin?

    opium
    @opium
    Просто люблю качественно работать
    Как уже сказали — это два отдельных USB порта в одном разъёме. Бери любой ряд (пины 1–4 или 5–8), там стандартный набор VCC, D−, D+, GND. Паяй к USB-кабелю, второй ряд просто не трогай. Только сверь ориентацию разъёма на картридере перед пайкой, чтоб полярность не перепутать.
    Ответ написан
    Комментировать
  • Как сделать переходник с usb 9 pin на usb 4 pin?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Ничего не дублируется. На материнской плате разъём на два порта.
    Ответ написан
    Комментировать
  • Как получить доступ к SQL-базе Bitrix 14.5?

    opium
    @opium
    Просто люблю качественно работать
    Localhost в .settings значит что MySQL подключается локально, на том же сервере. На обычном шареде порт 3306 снаружи обычно закрыт, так что по IP подключиться скорее всего не выйдет. Поищи в панели хостинга phpMyAdmin или опцию remote MySQL — если её нет, спроси у саппорта.
    Ответ написан
    1 комментарий