Files
vServer/Backend/admin/go/admin_server.go
Falknat 7a87617282 Инициализация проекта
Стабильный рабочий проект.
2025-10-02 06:02:45 +07:00

47 lines
1.7 KiB
Go

package admin
import (
"net/http"
command "vServer/Backend/admin/go/command"
config "vServer/Backend/config"
tools "vServer/Backend/tools"
)
var adminServer *http.Server
// Запуск Admin сервера
func StartAdmin() {
// Получаем значения из конфига во время выполнения
port_admin := config.ConfigData.Soft_Settings.Admin_port
host_admin := config.ConfigData.Soft_Settings.Admin_host
if tools.Port_check("ADMIN", host_admin, port_admin) {
return
}
// Создаем оптимизированный мультиплексор для админ сервера
mux := http.NewServeMux()
// Регистрируем специализированные обработчики (быстрая маршрутизация)
mux.HandleFunc("/api/", command.ApiHandler) // API эндпоинты
mux.HandleFunc("/json/", command.JsonHandler) // JSON данные
mux.HandleFunc("/service/", command.ServiceHandler) // Сервисные команды POST
mux.HandleFunc("/", command.StaticHandler) // Статические файлы
// Создаем Admin сервер (только localhost для безопасности)
adminServer = &http.Server{
Addr: host_admin + ":" + port_admin,
Handler: mux,
}
tools.Logs_file(0, "ADMIN", "🛠️ Admin панель запущена на порту "+port_admin, "logs_http.log", true)
if err := adminServer.ListenAndServe(); err != nil {
// Игнорируем нормальную ошибку при остановке сервера
if err.Error() != "http: Server closed" {
tools.Logs_file(1, "ADMIN", "❌ Ошибка запуска админ сервера: "+err.Error(), "logs_http.log", true)
}
}
}