Nginx – это программное обеспечение для развертывания веб-сервера, которое эффективно предотвращает падение производительности и другие сложные проблемы.
Сейчас продукт обслуживает более 26% веб-ресурсов по всей планете. В своем сегменте Nginx является самым популярным в России, а в мировом рейтинге занимает почетное второе место. Разберемся подробнее, что из себя представляет ПО, как работает и применяется, чем отличается от основного конкурента Apache.
Выбор операционной системы для сервера – задача крайне непростая и ответственная. Дело в том, что все ОС серверного типа входят в одну из двух категорий по основанию, если быть конкретнее – Windows или Linux. Первостепенно нужно понимать, для каких целей будет применяться система. В общем случае базовые критерии подбора можно описать следующим образом:
стоимость, в которую будет обходиться ее использование и обслуживание;
Публикуя статьи о резервном копировании я достаточно подробно описал как «готовить бэкапы» на серверах, но обошел стороной персональные компьютеры (далее ПК). А ведь данные на них не менее важны и так же нуждаются в резервировании. Тем более, что серверы есть не у всех, а ноутбук или компьютер у большинства — либо дома, либо на работе. Читать →
MariaDB — это бесплатная производная от системы управления базами данных MySQL с открытым исходным кодом. Он был разработан из-за резервации базы пользователей MySQL, когда он был приобретен Oracle еще в 2009 году. По этой причине он вполне совместим с MySQL и только недавно немного отклонился с введением исходных движков, MyRocks, Aria и Columnstore., назвать несколько.
Это краткое руководство по установке сервера базы данных MariaDB 10.3 в системе FreeBSD 12. Следуя приведенным здесь инструкциям, вы сможете настроить базу данных на своем собственном сервере FreeBSD.
1- Обновите коллекцию портов FreeBSD
Перед установкой MariaDB вы должны обновить дерево портов FreeBSD, выполнив следующую команду:
$ su -
$ portsnap fetch update
Чтобы убедиться, что команда portsnap выполняется правильно, извлеките снимок в /usr/ports с помощью следующей команды:
$ sudo portsnap extract
Вам нужно выполнить приведенную выше команду только один раз, когда вы запускаете команду portsnap в первый раз. Ваш вывод должен отображать важное сообщение ближе к концу; игнорируй это.
Чтобы узнать, следите ли вы за обновлениями, введите следующую команду:
$ sudo portsnap fetch update
2- Установите сервер базы данных MariaDB 10.3
Теперь вы готовы установить MariaDB, используя дерево портов FreeBSD; его можно установить из двоичного пакета с помощью диспетчера пакетов FreeBSD.
Чтобы узнать, можно ли установить последнюю версию MariaDB с кешем пакетов FreeBSD, введите следующее:
$ pkg search mariadb | grep 10.3
В выходных данных четко указано, что последняя версия — FreeBSD 10.x.xx. Выполните команду ниже:
После успешной установки MariaDB на вашем сервере FreeBSD все, что остается, — это включить ее перед тем, как наконец использовать.
Активируйте службу mysql-server с помощью следующей команды:
$ sudo sysrc mysql_enable=yes
Это должно позволить сервису запускаться после перезагрузки. Чтобы запустить службу mysql-server на FreeBSD, введите:
$ sudo service mysql-server start
4- Выполните усиление защиты сервера для MariaDB
Выполните команду ниже:
$ mysql_secure_installation
Вам будет предложено ввести, а затем повторно ввести новый пароль вместе с множеством других вопросов, на которые вы все должны ответить утвердительно. Просто убедитесь, что вы установили пароль root базы данных, отключили удаленный вход в систему root, удалили всех анонимных пользователей и удалили тестовую базу данных из открытого доступа.
Выполните тест от имени пользователя root:
$ mysql -u root -p
Затем введите пароль.
5- Цепочка сервиса MariaDB с локальным хостом
Используйте команду sockstat, чтобы увидеть действия, связанные с нашей недавно установленной службой MariaDB:
$ sockstat -4 -6 | grep 3306
Выходные данные показывают, что служба интегрирована со всеми сетевыми интерфейсами. Возможно, у вас нет службы, подключенной к сетевой базе данных. В этом случае используйте команду ниже:
$ sysrc mysql_args = "--bind-address = 127.0.0.1"
Изменения вступят в силу после перезагрузки системы. Чтобы перезапустить систему, введите:
$ service mysql-server restart
После перезапуска системы подтвердите изменения с помощью следующей команды:
$ sockstat -4 -6 | grep mysql
Подведение итогов
Надеюсь, у вас есть MariaDB, работающая в вашей системе FreeBSD. В последнюю установку MariaDB включены следующие функции:
Вы получаете InnoDB (также с столбцом мгновенного добавления) в качестве механизма хранения по умолчанию для MariaDB.
Параллельная репликация и репликация из нескольких источников.
Вы можете использовать циклы FOR с MariaDB.
Прозрачные столбцы.
Последние версии поставляются с Galera Cluster.
Вы можете добавлять последовательности.
Сжатие столбцов теперь не зависит от механизма хранения.
Домашний Сервер: Часть 5 – Настройка Plex Media Server в контейнере LXC Proxmox-VE (вы тут)
Предисловие
Ну вот мы и добрались до самого медиасервиса с помощью которого можно просматривать свою медиатеку.
Познакомился я с Plex еще лет пять назад, тогда он был проще, но позволял делать все, что необходимо.
Кратко, что такое Plex? — По сути это медиа «комбайн» или центр управления, с помощью которого вы можете удобно хранить, искать и воспроизводить свой медиа контент и это не только фильмы или сериалы, это могут быть изображения и музыка. Командой Plex выпущены приложения для различного типа устройств, чтобы можно было начать смотреть фильм дома на большом экране и досмотреть например его в дороге.
Скажу сразу — это не реклама. От слова «совсем». Просто на текущий момент это единственная грамотная система для просмотра локальной медиатеки на различных устройствах, причем абсолютно бесплатно!
Установка Plex Media Server
В первую очередь необходимо развернуть отдельный LXC контейнер для медиасервера.
Создадим файл источника для установки и обновлений.
nano /etc/apt/sources.list.d/plexmediaserver.list
# Plexmediaserver
deb https://downloads.plex.tv/repo/deb public main
Обновляем репозитории
apt update
Подготовка завершена, устанавливаем Plex Media Server
apt install plexmediaserver
При окончании установки появится запрос замены файла репозитория.
Я рекомендую оставить вариант по умолчанию. Т.е. не заменять файл репозитория созданный нами, на файл предлагаемый пакетом Plex
Файл настройки "/etc/apt/sources.list.d/plexmediaserver.list"
==> Файл, созданный вами или сценарием.
==> Также, файл в пакете, предоставленный сопровождающим пакета.
Что нужно сделать? Есть следующие варианты:
Y или I : установить версию, предлагаемую сопровождающим пакета
N или O : оставить установленную на данный момент вермию
D : показать различия между версиями
Z : запустить оболочку командной строки для проверки ситуации
По умолчанию сохраняется текущая версия файла настройки.
*** plexmediaserver.list (Y/I/N/O/D/Z) [по умолчанию N] ?
Дожидаемся окончания процесса установки и запуска.
Проверяем запущен ли Plex
service plexmediaserver status
Если видим то, что ниже, значит все хорошо.
Active: active (running)
Сервер Plex будет работать по IP адресу контейнера.
WEB интерфейс запущен на TCP порту 32400 и еще необходимо указать дополнительный путь /web/
netstat -nltp4
tcp 0 0 0.0.0.0:32400 0.0.0.0:* LISTEN 27590/Plex Media
Откроем в браузере свой сервер набрав IP адрес и порт. У меня IP контейнера 192.168.88.8
192.168.88.8:32400/web/
После входа, Plex запросит вашу Учетную запись. Если у вас её нет, то будет необходимо пройти простую процедуру регистрации. Благо есть возможность заходить через учетные записи Google или Facebook.
После входа вас вернет на локальный сервер.
Далее необходимо выполнить первичную настройку Локального Сервера
После данного этапа сервером уже можно начинать пользоваться. Но есть еще некоторые вещи, которые упростят пользование данным сервисом и сделают его более понятным для пользователя владеющим Русским языком.
Установка и настройка nginx
Т.к. у нас есть DNS, реализуем вход по доменному имени, например у меня plex.gregory-gost.ru
Как видите никаких портов и дополнительных путей вводить при этом не требуется.
Сравните, что удобнее, понятнее и привычнее?
192.168.88.8:32400/web/
или
plex.gregory-gost.ru
Для этого используем реверс прокси.
Ставим nginx, останавливаем, удаляем базовый сайт «hello world» и добавляем свои настройки.
apt install nginx
service nginx stop
rm /etc/nginx/sites-enabled/default
nano /etc/nginx/nginx.conf
error_log /var/log/nginx/error.log crit;
pid /var/run/nginx.pid;
worker_rlimit_nofile 8192;
timer_resolution 100ms;
include /etc/nginx/modules-enabled/*.conf;
events {
multi_accept on;
accept_mutex off;
use epoll;
}
http {
include /etc/nginx/mime.types;
include /etc/nginx/fastcgi.conf;
default_type application/octet-stream;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
#ssl_session_cache shared:SSL:10m;
#ssl_session_timeout 10m;
include /etc/nginx/conf.d/*.conf;
}
Запускаем nginx и проверяем вход по доменному имени
service nginx start
Установка плагина Kinopoisk
Plex поддерживает различные плагины, которые немного упрощают жизнь. Для того, чтобы фильмы в библиотеке обрабатывались корректно и метаданные по ним скачивались на Русском языке можно и не ставить данный плагин. Plex умеет по умолчанию работать с The Movie Database (TMDb) и подгружает русские названия с описанием и постеры от туда. Правда рейтинг также берется с TMDb.
Благо есть «в нашем селении» способные умельцы. Уважаемый amirotin разработал плагин, который парсит метаданные с Кинопоиска.
С декабря 2019 года, amirotin перестал заниматься плагином и его поддержку на себя взял ziemenz.
Возможности плагина:
Загрузка рейтингов для фильмов
Kinopoisk
Rotten Tomatoes
IMDb
The Movies Database
Источники рецензий на фильмы
Kinopoisk
Rotten Tomatoes
Загрузка трейлеров фильмов
Загрузка дополнительных материалов (сцены, интервью)
Загрузка английских имен актеров
Приоритет локализованных обложек фильмов
Поддержка прокси-серверов (http, sock5)
Я надеюсь, что данный плагин не является нарушением авторских или каких-либо других прав компании ООО «Яндекс» (владеет Кинопоиском с 15 октября 2013 г.) т.к. это не коммерческий софт
У себя, я использую Релизную версию плагина 2.0.1 от 29 февраля 2020 г.: Стабильный релиз v2.0.1
Переименовываем папку т.к. она содержит лишнее «2.0.1»
mv Kinopoisk.bundle-2.0.1 Kinopoisk.bundle
Даем права для Plex Media Server на папку
chown -R plex:plex Kinopoisk.bundle/
Финальный вариант работающего Plex Media Server
Некоторые настройки Plex Media Server
Покажу некоторые настройки, которые у меня установлены для Plex Media Server.
В основном это настройки библиотек и плагинов обработки для них, остальные вы можете изучить самостоятельно, благо все на Русском языке.
Для фильмов Кинопоиск 2.0
Для сериалов The Movie Database т.к. плаин Кинопоиска пока не умеет работать с сериалами.
Изображения кликабельны:
TV Приставки и приложения для просмотра
И еще, немного затронем то, на чем все это великолепие можно смотреть!
Я использую на текущий момент:
Xiaomi Mi Box S (MDZ-22-AB) Global Version — Использую на текущий момент. Все устраивает полностью, Android TV с приложением Plex, удобный Bluetooth пульт. (5 990 руб. на дату написания статьи в магазине Xiaomi. На Ali дешевле.)
Raspberry Pi 3B+ с LibreELEC 9.2.0 — Установлен скрипт Plex с автозапуском. Пока единственный нормальный Custom по опыту. В целом задачи решает, но не так удобен, как Mi Box S на Android TV. Я писал статью по использованию: Домашний Медиа-плеер: LibreELEC(Kodi) на Raspberry Pi 3B+. Но планирую заменить на какой-нибудь Smart Box
Что еще можно использовать?
Google Chromecast Ultra — Собственно плеер на Android TV от самого Google, функции аналогичные Mi Box S, но нет в комплекте Bluetooth пульта.
Nvidia Shield TV 2019 — Обновленная «приставка» от Nvidia. С пультом, аналог Mi Box S и Google Chromecast Ultra, но дороже (13 990 руб. на дату написания статьи в магазине Nvidia)
Nvidia Shield TV Pro 2019 — Более прокачанная версия «шилда» причем Plex Media Server уже встроен в этот медиаплеер, что конечно сомнительно всего 16Гб места, часть из которого занимает система. Даже с учетом возможности подключения HDD/SSD. (17 590 руб. на дату написания статьи в магазине Nvidia)
Другие китайские или Российские(российско-китайские?) приставки на базе простого Android, CoreELEC, Android TV, др. — Ценники начиная от 1 500 руб. (Ugoos, H96, X96, X88, Movix Pro и т.д. и т.п.)
Приложение PlexApp (офф версия требует PlexPass) — Есть, как для iOS так и для Android. Ставится на любой планшет, смартфон и т.д.Присутствует на некоторых Smart TV, тут вам нужно изучить набор приложений для вашего телевизора.
Если хотите нормальные UHD(«4K» Ultra HD 2160p) с HDR и Автофреймрейтом, то смотрите в сторону Ugoos AM6+ или Pro, Nvidia Shield TV 2019 Pro
Для FHD(Full HD 1080p) Xiaomi Mi Box S побюджетней.
Если что-то забыл, пишите в комментариях, добавлю 🙂
Заключение
На этой радостной ноте предлагаю, закончить свое повествование по реализации Домашнего медиа сервера. Мы своего добились, фильмы и сериалы качаются на раз-два, просмотр доставляет одно удовольствие, ПК не захламлен кучей фильмов.
Возможно существуют и альтернативы Plex-у, в виде каких-то DLNA клиентов или даже тот-же Kodi, но все они не так удобны и проработаны, что дает очевидный выбор в пользу Plex. Даже при наличии различного рода сервисов, которые избыточны для домашнего локального просмотра, Plex их не навязывает и они не заметны. Это позволяет использовать его с комфортом.
Мне остается только понадеятся на грамотное развитие данной системы в будущем и пожелать его авторам успехов.
А вам дорогие читатели находить новые решения, использовать все самое лучшее и делиться впечатлениями!
В рамках цикла «Домашний сервер» планирую еще две статьи
The Dude — мониторинг девайсов в домашней сети.
FreePBX (Asterisk) — IP телефония.
А вот реализация Домашнего IoT пойдет в отдельный цикл, чтобы было проще ориентироваться в дальнейшем. Посмотрим будет ли интерсено читателям )
openHAB 2 — домашний IoT.
Благодарю за ваше время!
Всего хорошего на просторах Интернета 😉
UPD: 29.02.2020
Изменен источник и инструкция для плагина Kinopoisk.
11 – time-to-live exceeded (истечение срока жизни пакета)
12 – IP header bad (неправильный IP-заголовок пакета)
13 – timestamp request (запрос значения счетчика времени)
14 – timestamp reply (ответ на запрос значения счетчика времени)
15 – information request (запрос информации)
16 – information reply (ответ на запрос информации)
17 – address mask request (запрос маски сети)
18 – address mask reply (ответ на запрос маски сети)
Правила для IPFW:
cmd=»ipfw -q add»
pif=»em0″
#Enable allow from world to me some types of ICMP
$cmd 00500 allow icmp from any to me in via $pif icmptype 3,8,12
#Enable some types of ICMP from me to world
$cmd 00510 allow icmp from me to any out via $pif icmptype 0,3,4,11,12
#Disable ICPM any another
$cmd 00520 deny log icmp from any to me in via $pif icmptype 5,9,10,13,15,17,18
#Disable ICPM frag
$cmd 00530 deny icmp from any to any frag