47 lines
1.7 KiB
Go
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)
|
|
}
|
|
}
|
|
}
|