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