Различия
Показаны различия между двумя версиями страницы.
| vm:nginx:04-nginx_menu [2025/08/29 12:31] – создано admin | vm:nginx:04-nginx_menu [2025/08/29 12:32] (текущий) – admin | ||
|---|---|---|---|
| Строка 23: | Строка 23: | ||
| </ | </ | ||
| - | <note>Скопируйте содержимое скрипта из артефакта выше и вставьте в файл.</ | + | **Содержимое файла nginx-manager.sh: |
| + | |||
| + | <code bash> | ||
| + | # | ||
| + | |||
| + | # Путь | ||
| + | NGINX_PATH="/ | ||
| + | COMPOSE_FILE=" | ||
| + | |||
| + | # Цвета для вывода | ||
| + | RED=' | ||
| + | GREEN=' | ||
| + | YELLOW=' | ||
| + | BLUE=' | ||
| + | CYAN=' | ||
| + | NC=' | ||
| + | |||
| + | # Функция для отображения заголовка | ||
| + | show_header() { | ||
| + | clear | ||
| + | echo -e " | ||
| + | echo -e " | ||
| + | echo -e " | ||
| + | echo -e " | ||
| + | echo "" | ||
| + | } | ||
| + | |||
| + | # Функция для | ||
| + | check_status() { | ||
| + | echo -e " | ||
| + | echo " | ||
| + | |||
| + | # Проверяем nginx_proxy | ||
| + | if docker ps --filter " | ||
| + | echo -e " | ||
| + | else | ||
| + | echo -e " | ||
| + | fi | ||
| + | |||
| + | # Проверяем nginx_letsencrypt | ||
| + | if docker ps --filter " | ||
| + | echo -e " | ||
| + | else | ||
| + | echo -e " | ||
| + | fi | ||
| + | |||
| + | echo " | ||
| + | echo "" | ||
| + | } | ||
| + | |||
| + | # Функция | ||
| + | start_services() { | ||
| + | echo -e " | ||
| + | cd " | ||
| + | docker-compose up -d | ||
| + | if [ $? -eq 0 ]; then | ||
| + | echo -e " | ||
| + | else | ||
| + | echo -e " | ||
| + | fi | ||
| + | read -p "Нажмите Enter для продолжения..." | ||
| + | } | ||
| + | |||
| + | # Функция для остановки сервисов | ||
| + | stop_services() { | ||
| + | echo -e " | ||
| + | cd " | ||
| + | docker-compose stop | ||
| + | if [ $? -eq 0 ]; then | ||
| + | echo -e " | ||
| + | else | ||
| + | echo -e " | ||
| + | fi | ||
| + | read -p " | ||
| + | } | ||
| + | |||
| + | # Функция для перезагрузки | ||
| + | restart_services() { | ||
| + | echo -e " | ||
| + | cd " | ||
| + | docker-compose restart | ||
| + | if [ $? -eq 0 ]; then | ||
| + | echo -e " | ||
| + | else | ||
| + | echo -e " | ||
| + | fi | ||
| + | read -p " | ||
| + | } | ||
| + | |||
| + | # Функция для просмотра логов nginx_proxy | ||
| + | view_nginx_logs() { | ||
| + | echo -e " | ||
| + | echo " | ||
| + | docker logs --tail 50 nginx_proxy | ||
| + | echo " | ||
| + | read -p " | ||
| + | } | ||
| + | |||
| + | # Функция для просмотра логов nginx_letsencrypt | ||
| + | view_letsencrypt_logs() { | ||
| + | echo -e " | ||
| + | echo " | ||
| + | docker logs --tail 50 nginx_letsencrypt | ||
| + | echo " | ||
| + | read -p " | ||
| + | } | ||
| + | |||
| + | # Функция для просмотра логов nginx_proxy в реальном времени | ||
| + | follow_nginx_logs() { | ||
| + | echo -e " | ||
| + | echo " | ||
| + | docker logs -f nginx_proxy | ||
| + | } | ||
| + | |||
| + | # Функция для просмотра логов nginx_letsencrypt в реальном времени | ||
| + | follow_letsencrypt_logs() { | ||
| + | echo -e " | ||
| + | echo " | ||
| + | docker logs -f nginx_letsencrypt | ||
| + | } | ||
| + | |||
| + | # Функция для показа дополнительной информации | ||
| + | show_info() { | ||
| + | echo -e " | ||
| + | echo " | ||
| + | echo -e " | ||
| + | echo -e " | ||
| + | echo "" | ||
| + | echo -e " | ||
| + | docker stats --no-stream --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}" | ||
| + | echo "" | ||
| + | echo -e " | ||
| + | echo " | ||
| + | echo " | ||
| + | echo "" | ||
| + | echo -e " | ||
| + | echo "• Проверка nginx конфигурации: | ||
| + | echo "• Перезагрузка nginx: docker exec nginx_proxy nginx -s reload" | ||
| + | echo "• Просмотр сертификатов: ls -la $NGINX_PATH/ | ||
| + | echo " | ||
| + | read -p " | ||
| + | } | ||
| + | |||
| + | # Основное меню | ||
| + | show_menu() { | ||
| + | show_header | ||
| + | check_status | ||
| + | |||
| + | echo -e " | ||
| + | echo "" | ||
| + | echo -e " | ||
| + | echo -e " | ||
| + | echo -e " | ||
| + | echo "" | ||
| + | echo -e " | ||
| + | echo -e " | ||
| + | echo "" | ||
| + | echo -e " | ||
| + | echo -e " | ||
| + | echo "" | ||
| + | echo -e " | ||
| + | echo "" | ||
| + | echo -e " | ||
| + | echo "" | ||
| + | echo -n " | ||
| + | } | ||
| + | |||
| + | # Основной цикл программы | ||
| + | main() { | ||
| + | # Проверяем существование docker-compose файла | ||
| + | if [ ! -f " | ||
| + | echo -e " | ||
| + | echo " | ||
| + | exit 1 | ||
| + | fi | ||
| + | |||
| + | while true; do | ||
| + | show_menu | ||
| + | read -r choice | ||
| + | |||
| + | case $choice in | ||
| + | 1) | ||
| + | start_services | ||
| + | ;; | ||
| + | 2) | ||
| + | stop_services | ||
| + | ;; | ||
| + | 3) | ||
| + | restart_services | ||
| + | ;; | ||
| + | 4) | ||
| + | view_nginx_logs | ||
| + | ;; | ||
| + | 5) | ||
| + | view_letsencrypt_logs | ||
| + | ;; | ||
| + | 6) | ||
| + | follow_nginx_logs | ||
| + | ;; | ||
| + | 7) | ||
| + | follow_letsencrypt_logs | ||
| + | ;; | ||
| + | 8) | ||
| + | show_info | ||
| + | ;; | ||
| + | 0) | ||
| + | echo -e " | ||
| + | exit 0 | ||
| + | ;; | ||
| + | *) | ||
| + | echo -e " | ||
| + | sleep 2 | ||
| + | ;; | ||
| + | esac | ||
| + | done | ||
| + | } | ||
| + | |||
| + | # Запуск основной функции | ||
| + | main | ||
| + | </code> | ||
| ==== Шаг 2: Настройка прав доступа ==== | ==== Шаг 2: Настройка прав доступа ==== | ||