Различия
Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| vm:nginx:04-nginx_menu [2025/08/29 12:31] – создано admin | vm:nginx:04-nginx_menu [2026/03/03 12:15] (текущий) – удалено admin | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ====== Nginx Proxy Manager - Скрипт управления ====== | ||
| - | ===== Описание ===== | ||
| - | |||
| - | Скрипт для удобного управления nginx-proxy инстансом с Let's Encrypt через интерактивное меню. | ||
| - | |||
| - | **Расположение: | ||
| - | |||
| - | **Контейнеры: | ||
| - | * '' | ||
| - | * '' | ||
| - | |||
| - | ===== Установка скрипта ===== | ||
| - | |||
| - | ==== Шаг 1: Создание файла ==== | ||
| - | |||
| - | <code bash> | ||
| - | # Переходим в директорию nginx-proxy | ||
| - | cd /opt/nginx | ||
| - | |||
| - | # Создаем файл скрипта | ||
| - | nano nginx-manager.sh | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | ==== Шаг 2: Настройка прав доступа ==== | ||
| - | |||
| - | <code bash> | ||
| - | # Делаем файл исполняемым | ||
| - | chmod +x nginx-manager.sh | ||
| - | |||
| - | # Создаем символическую ссылку для глобального доступа | ||
| - | sudo ln -sf / | ||
| - | </ | ||
| - | |||
| - | ===== Запуск скрипта ===== | ||
| - | |||
| - | ==== Из директории /opt/nginx ==== | ||
| - | <code bash> | ||
| - | cd /opt/nginx | ||
| - | ./ | ||
| - | </ | ||
| - | |||
| - | ==== Из любой директории ==== | ||
| - | <code bash> | ||
| - | nginx-manager | ||
| - | </ | ||
| - | |||
| - | ===== Функции меню ===== | ||
| - | |||
| - | ==== Управление сервисами ==== | ||
| - | |||
| - | ^ Пункт меню ^ Действие ^ Описание ^ | ||
| - | | **1** | Запустить сервисы | Выполняет '' | ||
| - | | **2** | Остановить сервисы | Выполняет '' | ||
| - | | **3** | Перезагрузить сервисы | Выполняет '' | ||
| - | |||
| - | ==== Просмотр логов ==== | ||
| - | |||
| - | ^ Пункт меню ^ Действие ^ Описание ^ | ||
| - | | **4** | Логи nginx_proxy | Показывает последние 50 строк | | ||
| - | | **5** | Логи nginx_letsencrypt | Показывает последние 50 строк | | ||
| - | | **6** | Real-time nginx_proxy | Отслеживание в реальном времени | | ||
| - | | **7** | Real-time nginx_letsencrypt | Отслеживание в реальном времени | | ||
| - | |||
| - | ==== Дополнительные функции ==== | ||
| - | |||
| - | ^ Пункт меню ^ Действие ^ Описание ^ | ||
| - | | **8** | Информация | Статистика, | ||
| - | | **0** | Выход | Завершение работы скрипта | | ||
| - | |||
| - | ===== Особенности интерфейса ===== | ||
| - | |||
| - | * **Цветовая схема: | ||
| - | * **Статус в реальном времени: | ||
| - | * **Обработка ошибок: | ||
| - | * **Навигация: | ||
| - | |||
| - | ===== Автозапуск сервиса (опционально) ===== | ||
| - | |||
| - | ==== Создание systemd сервиса ==== | ||
| - | |||
| - | <code bash> | ||
| - | # Создаем файл сервиса | ||
| - | sudo nano / | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | [Unit] | ||
| - | Description=Nginx Proxy with Let's Encrypt | ||
| - | Requires=docker.service | ||
| - | After=docker.service | ||
| - | |||
| - | [Service] | ||
| - | Type=oneshot | ||
| - | RemainAfterExit=yes | ||
| - | WorkingDirectory=/ | ||
| - | ExecStart=/ | ||
| - | ExecStop=/ | ||
| - | TimeoutStartSec=0 | ||
| - | |||
| - | [Install] | ||
| - | WantedBy=multi-user.target | ||
| - | </ | ||
| - | |||
| - | ==== Активация автозапуска ==== | ||
| - | |||
| - | <code bash> | ||
| - | # Перезагружаем systemd | ||
| - | sudo systemctl daemon-reload | ||
| - | |||
| - | # Включаем автозапуск | ||
| - | sudo systemctl enable nginx-proxy.service | ||
| - | |||
| - | # Запускаем сервис | ||
| - | sudo systemctl start nginx-proxy.service | ||
| - | |||
| - | # Проверяем статус | ||
| - | sudo systemctl status nginx-proxy.service | ||
| - | </ | ||
| - | |||
| - | ===== Полезные алиасы ===== | ||
| - | |||
| - | ==== Добавление в ~/.bashrc ==== | ||
| - | |||
| - | <code bash> | ||
| - | # Алиасы для nginx-proxy | ||
| - | alias nginx-start=' | ||
| - | alias nginx-stop=' | ||
| - | alias nginx-restart=' | ||
| - | alias nginx-logs=' | ||
| - | alias nginx-logs-ssl=' | ||
| - | alias nginx-menu='/ | ||
| - | </ | ||
| - | |||
| - | ==== Применение изменений ==== | ||
| - | |||
| - | <code bash> | ||
| - | source ~/.bashrc | ||
| - | </ | ||
| - | |||
| - | ===== Диагностика и устранение проблем ===== | ||
| - | |||
| - | ==== Проверка статуса контейнеров ==== | ||
| - | |||
| - | <code bash> | ||
| - | # Все запущенные контейнеры | ||
| - | docker ps | ||
| - | |||
| - | # Все контейнеры (включая остановленные) | ||
| - | docker ps -a | ||
| - | |||
| - | # Только nginx контейнеры | ||
| - | docker ps --filter " | ||
| - | </ | ||
| - | |||
| - | ==== Проверка логов ==== | ||
| - | |||
| - | <code bash> | ||
| - | # Логи nginx-proxy | ||
| - | docker logs nginx_proxy | ||
| - | |||
| - | # Логи Let's Encrypt | ||
| - | docker logs nginx_letsencrypt | ||
| - | |||
| - | # Логи в реальном времени | ||
| - | docker logs -f nginx_proxy | ||
| - | </ | ||
| - | |||
| - | ==== Проверка конфигурации ==== | ||
| - | |||
| - | <code bash> | ||
| - | # Тест nginx конфигурации | ||
| - | docker exec nginx_proxy nginx -t | ||
| - | |||
| - | # Перезагрузка nginx без перезапуска контейнера | ||
| - | docker exec nginx_proxy nginx -s reload | ||
| - | |||
| - | # Просмотр активной конфигурации | ||
| - | docker exec nginx_proxy cat / | ||
| - | </ | ||
| - | |||
| - | ==== Проверка сертификатов ==== | ||
| - | |||
| - | <code bash> | ||
| - | # Список сертификатов | ||
| - | ls -la / | ||
| - | |||
| - | # Проверка срока действия сертификата | ||
| - | openssl x509 -in / | ||
| - | </ | ||
| - | |||
| - | ===== Структура файлов ===== | ||
| - | |||
| - | < | ||
| - | /opt/nginx/ | ||
| - | ├── docker-compose.yml | ||
| - | ├── nginx-manager.sh | ||
| - | ├── certs/ | ||
| - | ├── vhost.d/ | ||
| - | ├── html/ # Веб-файлы | ||
| - | └── acme/ # ACME данные | ||
| - | </ | ||
| - | |||
| - | ===== Безопасность ===== | ||
| - | |||
| - | <note warning> | ||
| - | **Важно: | ||
| - | |||
| - | <code bash> | ||
| - | # Ограничение доступа к скрипту | ||
| - | chmod 750 / | ||
| - | |||
| - | # Создание группы для управления nginx | ||
| - | sudo groupadd nginx-admins | ||
| - | sudo usermod -a -G nginx-admins username | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | ===== Мониторинг ===== | ||
| - | |||
| - | ==== Простой мониторинг через cron ==== | ||
| - | |||
| - | <code bash> | ||
| - | # Добавляем в crontab проверку каждые 5 минут | ||
| - | */5 * * * * / | ||
| - | </ | ||
| - | |||
| - | ==== Уведомления о статусе ==== | ||
| - | |||
| - | <code bash> | ||
| - | # Скрипт проверки статуса с уведомлениями | ||
| - | #!/bin/bash | ||
| - | if ! docker ps | grep -q nginx_proxy; | ||
| - | echo "Nginx Proxy не запущен!" | ||
| - | fi | ||
| - | </ | ||
| - | |||
| - | ===== Обновление ===== | ||
| - | |||
| - | ==== Обновление образов ==== | ||
| - | |||
| - | <code bash> | ||
| - | # Переходим в директорию | ||
| - | cd /opt/nginx | ||
| - | |||
| - | # Останавливаем сервисы | ||
| - | docker-compose stop | ||
| - | |||
| - | # Обновляем образы | ||
| - | docker-compose pull | ||
| - | |||
| - | # Запускаем с новыми образами | ||
| - | docker-compose up -d | ||
| - | |||
| - | # Удаляем старые образы | ||
| - | docker image prune -f | ||
| - | </ | ||
| - | |||
| - | <note important> | ||
| - | Всегда создавайте резервные копии перед обновлением: | ||
| - | |||
| - | <code bash> | ||
| - | # Резервная копия конфигураций | ||
| - | tar -czf nginx-backup-$(date +%Y%m%d).tar.gz /opt/nginx/ | ||
| - | </ | ||
| - | </ | ||