Для приготовления локализации страниц об ошибках нам понадобится сам nginx и его плагины error_page_inherit и include_server. Конечно, такую локализацию можно сделать и без этих плагинов, но у неё будет несколько недостатков. Во-первых, если в каком-то локейшене задаётся своя страница об ошибке, то все страницы об ошибках из предыдущих уровней не наследуются для этого уровня. Эту проблему решает первый плагин, позволяя наследовать страницы сообщений об ошибках. А, во-вторых, для каждого сервера придётся вручную включать локейшен обработки страницы об ошибке. И эту проблему как раз решает второй плагин, позволяя наследовать подключение файлов из главной конфигурации во все сервера.
Пользователь
Обзор Linux-телефона PinePhone. Часть 1 — распаковка и первые впечатления
Об этом телефоне мы писали несколько раз. Сначала опубликовали информацию о спецификациях и возможностях девайса, а потом — перевод с описанием впечатлений одного из зарубежных журналистов. Но все же хотелось опробовать девайс и самостоятельно, так что решили — надо брать.
Приобрели у компании-производителя (а еще мы рассказывали об их паяльнике, детальный разбор которого тоже вскоре опубликуем), и вот на днях телефон пришел. В этой части — распаковка и личные впечатления от первых часов работы с устройством. Во второй части будет обзор впечатлений после использования девайса в качестве рабочей станции (это, на мой взгляд, самая полезная его функция). Что же, если вам интересен этот модульный, защищенный от прослушивания и сервисов Google девайс — прошу под кат.
Как узнать общий объем физической памяти (RAM) в Linux
1. Краткое содержание
Иногда возникает необходимость проверить общий объём памяти сервера, на котором запущена ОС Linux, или же данные о памяти требуются для сценариев командной оболочки. К счастью, есть множество инструментов, которые нам в этом помогут. В этом руководстве приводятся различные команды и утилиты для определения общего объёма физической памяти.
IPv6: некоторые нюансы безопасности
IPv6 — протокол, который используют для адресации в современных сетях. В статье рассмотрим несколько сценариев использования его функций, приводящих к эсплуатации уязвимостей.
Бесплатные Oracle Cloud серверы и Mikrotik — Site-to-Site VPN
Предоставление бесплатных серверов от малопопулярного облачного провайдера - это не новость. А новость в том, что теперь Oracle, вдобавок к двум едва живым бесплатным x86_64 серверам, открывает доступ к мощностям на ARM64 - для всех, даром, и пусть никто не уйдет обиженным!© Предложение по ARM значительно более производительное, чем на традиционных процессорах. Добавляя к этому отсальные бесплатные "плюшки", я задаюсь вопросом: а зачем я до сих пор плачу за VPS и держу собственный серверок в подвале?! Все это можно выкинуть если удастся надежно и безопасно связать дата центр с домашней сетью.
Android Studio. Kotlin. Сохранение файла в общедоступной папке Download
В работе над своим проектом больше всего времени я убил на то, чтобы разобраться, как правильно сохранить файл в общедоступную папку, например, Download. Мне не удалось найти четкого и ясного объяснения в интернете. Собирал информацию по частям и доходил до результата методом проб и ошибок.
Виной всей этой сложности - множество факторов. Языковой барьер: русский - английский, Kotlin - Java. Различия в способах копирования в разных версиях Android. Разобраться было не просто. В итоге - пишу этот гайд, чтобы облегчить жизнь тем, кто пойдет за мной следом...
Как, собственно, работает местная анестезия, и где там можно знатно накосячить
Электрический инъектор и ампула ультракаина.
В теории всё достаточно просто: мы электрически деполяризируем мембраны нейронов нервов, они становятся неспособными к передаче информации, в итоге в вас можно тыкать скальпелем, а мозг об этом никогда не узнает.
Сложности начинаются уже на той стадии, когда вместо электротока на мембраны нейронов мы вводим вам в организм химическое соединение. Потому что так куда практичнее и легче. Точнее, мы, наверное, никогда бы не догадались про такой химический эффект, если бы не наркоманы. Когда кокаин ещё был разрешён и активно использовался в разных целях, испытатели заметили характерное онемение слизистых при введении. Это вызвало интерес, в частности, научный. Небезызвестный товарищ Зигмунд Фрейд, будучи студентом, очень увлёкся темой и исследовал местное анестезирующее действие. Дальше выяснилось, что раствор вещества просто изъязвляет слизистую, и спустя годы получилось выделить нужный амин, который, собственно, дальше и создаёт поток ионов Na+. Пропуская ещё несколько шагов на молекулярном уровне — нерв временно инактивируется.
Боль — это информация, и, блокируя информационный обмен через нерв, мы обезболиваем какой-то участок тела.
Мало что изменило стоматологию так, как открытие местной анестезии. Никакое материаловедение, никакие новые лекарственные средства и никакие знания об анатомии не дали такого большого толчка лечебным действиям. Под местной анестезией стало можно делать с зубами фактически что угодно, а не просто быстренько их выдирать, пока пациент не успел опомниться.
И, конечно, анестезия анестезии рознь. Давайте расскажу, в чём там ещё подводные камни.
Создание красивых градиентов на CSS
Заметили, что в центре он становится бледным и грязным?
Это явление Эрик Кеннеди назвал «мёртвой зоной серого». Если вы тщательно не выбираете цвета для своих градиентов, то в ваших градиентах на CSS часто возникает такая обесцвеченная часть посередине.
Однако, как оказалось, можно полностью избавиться от мёртвой зоны серого. В этом посте я расскажу, почему она возникает, и о том, как можно использовать теорию цвета для создания насыщенных, ярких градиентов, «живых» по всей своей длине.
Golang-дайджест № 12 (1 – 31 декабря 2021)
Свежая подборка новостей и материалов
Интересное в этом выпуске
Выпущены Go 1.17.5 и Go 1.16.12, GoLand 2021.3, доступна первая бета-версия Go 1.18 (с дженериками), monovania 2D платформер-головоломка, созданный с помощью Ebiten, zinc альтернатива Elasticsearch, Map-Reduce в Go
Приятного чтения!
Простейший сервер на Gorilla WebSocket
В этом небольшом туториале, мы чуть подробнее разберем использование Gorilla WebSocket для написания своего websocket сервера, на примере чуть более функциональном, чем базовый пример и более легком для понимания, чем пример чата.
React Apollo, Gqlgen – авторизация. Часть 2
Создадим авторизацию по СМС либо c ссылкой на е-майл, реализуем АПИ на GraphQL с пакетом Gqlgen.
Кунг-фу стиля Linux: делиться — это плохо
На самом деле мы, работая в Linux, постоянно пользуемся этой концепцией. Каждый запускаемый нами процесс существует в среде, описываемой неким набором пространств имён. Почему я говорю тут о «наборе» пространств имён? Дело в том, что существуют пространства имён, используемые для управления различными ресурсами. Например, можно настроить особое сетевое пространство имён, которое позволит предоставить процессу его собственный набор сетевых ресурсов — таких, например, как таблицы маршрутизации и правила файрвола.
Поговорим о том, как в Linux организована работа с пространствами имён, и о том, что они скрывают.
Автореконнекты к RabbitMQ в Go
Брокер сообщений RabbitMQ уже давно активно используется в микросервисах. Он используется, когда требуется асинхронная обработка сообщений от клиентов или при аналогичном межсервисном взаимодействии.
Практически нет языка, под который не была бы сделана соответствующая клиентская библиотека. Для Go такой библиотекой является github.com/streadway/amqp (далее по тексту библиотека amqp). Она имеет широкий функционал, можно подключаться к RabbitMQ, создавать каналы, настраивать очереди и exchange. Не хватает только самой малости – реконектов. А именно автоматических реконнектов при потери связи.
Поиск в Google показывает, что есть много различных решений. На проекте, где я работаю, мы создали ещё парочку. Но не найденные в сети, не уже созданные не устраивали по ряду причин:
Простой SMS-шлюз на Raspberry Pi
Но в большинстве вышеописанных сценариев использования SMS нельзя положиться на внешние SMS-шлюзы или API, так как система отправки уведомлений должна работать даже тогда, когда пропадает доступ в интернет. Особенно это важно для охранных систем, которые должны функционировать независимо от внешних источников питания.
Очевидное решение всех этих проблем заключается в поддержке собственного SMS-шлюза.
Результат этого проекта: устройство, поддерживающее полнофункциональный REST API, способное отправлять и получать сообщения
Как, с минимальными затратами, самостоятельно сделать такой шлюз?
Видеоcъемка и фотосъёмка на Raspberry pi в облако
Здравствуйте дорогие читатели моего блога.
Сегодня статья посвещана организации процесса фото - и видиосъёмки с микрокомпьютера Raspberry pi с последующим сохранением данных в облако в атоматическом режиме.
У меня стояла задача создать систему фото- и видеонаблюдения за птицами у кормушки.
Так как кормушка у меня находилась во дворе дома, то я решил собрать устройство на базе raspberry pi с подключённым проводным интернетом.
Это было сделано на случай, если влага или другие погодные условия выведут электронику из строя, то весь видео и фотоматериал останется в облаке.
В качестве оборудования я использовал:
• Raspberry pi 3 B +
• 7 дюймовый сенсорный дисплей для микрокомпьютера
• Pi camera
• клавиатура, мышь
• LAN провод 20 метров
• удлинитель и блок питания (преобразователь 5В и 2А)
Настраиваем свой почтовый сервер в docker-compose
Недавно мне потребовалось собрать свой почтовый сервер. В принципе, дело-то простое. Берёшь и ставишь сервер. Postfix, dovecot, letsencrypt, roundcube, spamassasin, clamav. Всё это — уже известные дела. Колея проторена. Иди и делай.
Но мне нужно было наплодить этих серверов. И я подумал, а почему бы не настроить всё на контейнерах? Такое можно сделать. Для этого надо скачать все вышеописанные контейнеры и написать .env файл века с более чем сотней разных параметров. Ну и, конечно же, сконфигурировать nginx. Там всё просто. С полдесятка хостов, и система заработает.
Я тяжело вздохнул и решил, что наверняка есть решение попроще. И оно нашлось. Mailu. Всё просто и из коробки, но всё-таки и в нём есть свои подводные мины.
Под катом — подробности того, как установить Mailu без боли и проблем, а также описание компонентов и рассказ о том, что и как можно менять и использовать.
Работаем с XML как с массивом, на PHP
Всем привет. Хочу поделиться своим опытом в парсинге XML, хочу рассказать об инструменте который мне в этом помогает.
XML ещё жив и иногда его приходиться парсить. Особенно если вы работаете со СМЭВ (привет всем ребятам для которых "ФОИВ" не пустой звук :) ).
Цели у такого парсинга могут быть самые разные, от банального ответа на вопрос какое пространство имён используется в xml-документе, до необходимости получить структурированное представление для документа вцелом.
Инструмент для каждой цели будет свой. Пространство имён можно найти поиском подстроки или регулярным выражением. Что бы сделать из xml-документа структурированное представление (DTO) - придётся писать парсер.
Для работы с XML в PHP есть пара встроенных классов. Это XMLReader и SimpleXMLElement.
React Apollo, Gqlgen – авторизация. Часть 1
Создадим авторизацию по СМС либо c ссылкой на е-майл, реализуем АПИ на GraphQL с пакетом Gqlgen.
Исследуем .NET 6. Часть 3. Рассматриваем код WebApplicationBuilder
Часть 1. ConfigurationManager
Часть 2. WebApplicationBuilder
В предыдущем посте я сравнивал новый WebApplication
с универсальным хостом. В этом посте я рассмотрю код, лежащий в основе WebApplicationBuilder
, чтобы увидеть, как он обеспечивает более чистый, минимальный API хостинга, при этом обеспечивая ту же функциональность, что и универсальный хост.
Углубленное знакомство с пространствами имен Linux. Часть 2
В предыдущей части мы разобрали, чем являются пространства имен, и какую роль они играют в современных системах, после чего познакомились с двумя их видами: PID и NET. Во второй и заключительной части материала мы изучим пространства имен USER, MNT, UTS, IPC и CGROUP, а в завершении объединим полученные знания, создав полностью изолированную среду для процесса.
Information
- Rating
- Does not participate
- Location
- Украина
- Date of birth
- Registered
- Activity