Гид по технологиям

Установка Plex Media Server на CentOS 8 с Nginx

• 6 min read • Серверы • Обновлено 22 Nov 2025
Plex на CentOS 8 с Nginx — пошагово
Plex на CentOS 8 с Nginx — пошагово

TL;DR

Plex — это медиасервер для потоковой передачи видео, музыки и фото. В этой инструкции показано, как установить Plex на CentOS 8, открыть нужные порты, настроить SELinux и организовать безопасный доступ через Nginx как обратный прокси. Включены примеры конфигурации, проверка и варианты устранения неполадок.


Обложка: Plex на сервере

Plex — свободный и многофункциональный медиасервер с открытым исходным кодом, который позволяет транслировать фотографии, видео и аудио с сервера на ПК, планшет или телефон из любой точки мира. Plex поддерживает Linux, Windows, macOS и FreeBSD, а также плагины для внешнего контента.

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

Что вы получите в этой инструкции

  • Пошаговая установка Plex на CentOS 8
  • Настройка репозитория и службы
  • Конфигурация firewalld и SELinux
  • Настройка Nginx как обратного прокси и пример конфигурации
  • Опция включения HTTPS через Let’s Encrypt
  • Чек-листы, критерии приёмки и план устранения неполадок

Входные требования

  • Сервер с CentOS 8 с минимум 2 ГБ оперативной памяти.
  • Домен, указывающий на IP сервера (для удобного доступа и TLS).
  • root-доступ или sudo-права на сервере.

Обновление системы

Рекомендуется обновить систему перед установкой:

dnf update -y

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

Установка Plex Media Server

Пакет Plex отсутствует в стандартных репозиториях CentOS 8, поэтому добавим репозиторий Plex.

Создайте файл репозитория:

nano /etc/yum.repos.d/plex.repo

Добавьте в него:

[Plex]
name=Plex
baseurl=https://downloads.plex.tv/repo/rpm/$basearch/
enabled=1
gpgkey=https://downloads.plex.tv/plex-keys/PlexSign.key
gpgcheck=1

Сохраните файл и установите пакет:

dnf install plexmediaserver -y

Запустите службу и включите автозапуск:

systemctl enable plexmediaserver
systemctl start plexmediaserver

Проверить статус:

systemctl status plexmediaserver

Вы должны увидеть активное состояние службы и запись о запущенных процессах Plex.

Настройка firewalld и SELinux

Plex использует несколько портов для веб-интерфейса, обнаружения и стриминга. Откройте их в firewalld:

firewall-cmd --zone=public --add-port=32400/tcp --permanent
firewall-cmd --zone=public --add-port=32469/tcp --permanent
firewall-cmd --zone=public --add-port=8324/tcp --permanent
firewall-cmd --zone=public --add-port=3005/tcp --permanent
firewall-cmd --zone=public --add-port=32412/udp --permanent
firewall-cmd --zone=public --add-port=32413/udp --permanent
firewall-cmd --zone=public --add-port=32414/udp --permanent
firewall-cmd --zone=public --add-port=32410/udp --permanent
firewall-cmd --zone=public --add-port=1900/udp --permanent
firewall-cmd --zone=public --add-port=5353/udp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

По умолчанию SELinux включён на CentOS 8. Для того чтобы Plex (и Nginx при проксировании) могли устанавливать исходящие соединения, включите булевую переменную:

setsebool httpd_can_network_connect on -P

Важно: если вы храните медиаконтент в нестандартных каталогах, проверьте контексты SELinux для директорий Plex и при необходимости установите правильные метки. Пример для каталога с медиа (замените /path/to/media на путь к вашей библиотеке):

semanage fcontext -a -t plex_var_lib_t "/path/to/media(/.*)?"
restorecon -Rv /path/to/media

Заметка: semanage может быть в пакете policycoreutils-python-utils.

Доступ к Plex Media Server

По умолчанию веб-интерфейс доступен на порту 32400. Откройте в браузере:

http://your-server-ip:32400

Страница входа Plex

Зарегистрируйтесь с рабочим адресом e‑mail, затем вы попадёте в панель управления Plex:

Панель управления Plex Media Server

Настройка Nginx как обратного прокси

Чтобы не указывать порт при доступе извне и легко включить HTTPS, используйте Nginx как обратный прокси.

Установите Nginx:

dnf install nginx

Запустите и включите автозапуск:

systemctl start nginx
systemctl enable nginx

Создайте файл конфигурации для Plex:

nano /etc/nginx/conf.d/plex.conf

Пример конфигурации (сохраните и закройте):

upstream plex_backend {
        server 127.0.0.1:32400;
        keepalive 32;
}

server {
        listen 80;
        server_name plex.example.com;

        send_timeout 100m;

        gzip on;
        gzip_vary on;
        gzip_min_length 1000;
        gzip_proxied any;
        gzip_types text/plain text/css text/xml application/xml text/javascript application/x-javascript image/svg+xml;
        gzip_disable "MSIE [1-6]\\.";

        client_max_body_size 100M;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Sec-WebSocket-Extensions $http_sec_websocket_extensions;
        proxy_set_header Sec-WebSocket-Key $http_sec_websocket_key;
        proxy_set_header Sec-WebSocket-Version $http_sec_websocket_version;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";

        proxy_redirect off;
        proxy_buffering off;

        location / {
                proxy_pass http://plex_backend;
        }
}

Обратите внимание: замените server_name на ваш реальный домен.

Установите server_names_hash_bucket_size, если Nginx жалуется на слишком длинные имена:

nano /etc/nginx/nginx.conf

Добавьте строку перед закрывающей фигурой http или перед концом файла конфигурации Nginx:

server_names_hash_bucket_size 64;

Проверка конфигурации и перезапуск:

nginx -t
systemctl restart nginx
systemctl status nginx

После этого Plex будет доступен по адресу http://plex.example.com.

Включение HTTPS с Let’s Encrypt

Рекомендуется шифровать трафик. Установите Certbot и плагин для nginx:

dnf install certbot python3-certbot-nginx -y

Затем запросите сертификат (убедитесь, что DNS указывает на сервер и порт 80 открыт):

certbot --nginx -d plex.example.com

Certbot автоматически обновит конфигурацию Nginx и настроит редирект с HTTP на HTTPS. После этого доступ будет по https://plex.example.com.

Если Certbot не удаётся автоматизировать конфигурацию, используйте certbot certonly и вручную добавьте блок server для 443 с путями к сертификатам.

Безопасность и лучшие практики

  • Включайте на сервере автозапуск только для необходимых служб.
  • Закрывайте неиспользуемые порты и ограничьте доступ к панели администратора Plex по IP, если необходимо.
  • Регулярно обновляйте Plex и OS.
  • Для публичного доступа используйте только HTTPS.
  • Резервное копирование каталога /var/lib/plexmediaserver и метаданных Plex.

Проверка и критерии приёмки

Критерии приёмки для успешной установки:

  • Служба plexmediaserver работает: systemctl status показывает active (running).
  • Nginx успешно проксирует запросы: nginx -t возвращает OK и сайт доступен по домену.
  • Браузер открывает https://plex.example.com и отображает панель Plex.
  • Тестовый файл медиа успешно воспроизводится в веб-плеере и мобильных приложениях.

Тестовые команды для диагностики:

systemctl status plexmediaserver
journalctl -u plexmediaserver --since "1 hour ago"
nginx -t
firewall-cmd --list-ports
curl -I https://plex.example.com

Чек-листы по ролям

Администратор:

  • Обновить систему
  • Установить Plex и Nginx
  • Открыть нужные порты и настроить SELinux
  • Подключить сертификат TLS
  • Настроить бэкапы метаданных

Оператор резервного копирования:

  • Настроить регулярный экспорт /var/lib/plexmediaserver
  • Проверять целостность бэкапов

Пользователь:

  • Зарегистрироваться в Plex
  • Добавить библиотеку медиа в сервер
  • Проверить воспроизведение на устройстве

Устранение неполадок — быстрый план

  1. Plex не запускается: проверяйте systemctl status и journalctl -u plexmediaserver.
  2. Nginx возвращает 502: проверьте, работает ли Plex на 127.0.0.1:32400 и proxy_pass в конфигурации.
  3. Проблемы с WebSocket: убедитесь, что заголовки Upgrade и Connection проксируются.
  4. Сертификат TLS не установлен: проверьте DNS и доступность порта 80 для Certbot.
  5. Мобильные загрузки (Camera Upload) не работают: увеличьте client_max_body_size в конфигурации Nginx.

Когда подход не сработает

  • Если Plex установлен в контейнере или на отдельном хосте, конфигурация upstream и локального адреса может отличаться.
  • Если вы используете корпоративный прокси или VPN, дополнительные настройки маршрутизации/брандмауэра могут блокировать соединение.

Альтернативы и варианты развертывания

  • Развернуть Plex в Docker контейнере (офиц. image plexinc/pms-docker) — удобно для изоляции.
  • Использовать Traefik как обратный прокси с автоматическим TLS.
  • Заменить Plex на Jellyfin (open-source альтернатива без проприетарных компонентов).

Мини-методология развертывания (быстрая последовательность)

  1. Подготовить сервер, DNS и бэкап данных.
  2. Обновить систему.
  3. Установить Plex и запустить службу.
  4. Открыть порты и настроить SELinux.
  5. Установить Nginx и протестировать проксирование.
  6. Включить HTTPS и завершить настройки в веб-интерфейсе Plex.

Краткий словарь терминов

  • Plex Media Server — сервер, который хранит и отдает медиа.
  • Обратный прокси — веб-сервер, принимающий запросы и пересылающий их внутрь (например, Nginx).
  • SELinux — механизм контроля доступа, встроенный в CentOS.
  • Certbot — клиент для получения сертификатов Let’s Encrypt.

Частые вопросы

Q: Можно ли использовать Plex без домена?
A: Да, доступ возможен по IP и порту 32400, но домен нужен для удобного доступа и TLS.

Q: Нужна ли публичная сеть для потоковой передачи друзьям?
A: Да, если вы хотите предоставить доступ через интернет, сервер должен быть доступен извне через открытые порты и/или через прокси с TLS.

Заключение

Вы успешно установили и настроили Plex на CentOS 8 с Nginx в качестве обратного прокси. Настройте библиотеки, проверьте воспроизведение на разных устройствах и настройте бэкапы и обновления. При возникновении проблем воспользуйтесь разделом устранения неполадок.

Если нужно, могу предложить готовый Docker Compose для Plex + Nginx или шаблон systemd unit и бэкап-скрипт.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро