GoWeb

Фреймворк для серверной разработки, разработанный обществом AlertWeb

Узнать больше Изучить возможности Примеры API

Установка и запуск GoWeb

> wget https://goweb.alertweb.ru/framework_install.sh && bash framework_install.sh > Установка GoWeb... > Выполняется загрузка... > Загрузка завершена! > Старт сервера... > Сервер успешно запущен на http://localhost:8080 🚀

Преимущества GoWeb

Кластеризация

Легко настраивайте кластеры серверов для высокой нагрузки.

Мониторинг

Отслеживайте производительность в реальном времени.

Интеграция API

Быстрая разработка REST и GraphQL API.

Безопасность

Встроенная поддержка JWT, защита от DDoS и многое другое.

Облачные технологии

Интеграция с облачными платформами и кластерными средами.

Производительность

Обработка тысяч запросов в секунду с минимальными задержками.

Примеры API

Запрос

GET /api/v1/resources HTTP/1.1
Host: api.goweb.com
Authorization: Bearer <TOKEN>

Ответ

{
  "status": "success",
  "data": {
    "id": 1,
    "name": "Example",
    "description": "Sample data"
  }
}

Что можно создать с GoWeb?

Системные требования

Компонент Требование
ОС Linux (Alma Linux 8/9, Ubuntu-20.04+), macOS, Windows
Go 1.22+
База данных MySQL-5.7+, MariaDB-10+ (рекомендуется)
Память 1 ГБ или больше
Процессор Современный двухъядерный процессор от 1.70 GHz

Производительность GoWeb

GoWeb превосходит другие популярные фреймворки по скорости обработки запросов и времени отклика.

Сравнение RPS (запросов в секунду)

120,000 RPS
30,000 RPS
25,000 RPS
27,000 RPS

Сравнение времени отклика (ms)

5 ms
20 ms
23 ms
24 ms

Логирование

[INFO] Сервер запущен на порту 8080
[WARNING] Высокая нагрузка на CPU
[ERROR] Не удалось подключиться к базе данных

Коды ответов веб-сервера Go

Код Описание
200 OK — Запрос выполнен успешно
201 Created — Ресурс создан успешно
400 Bad Request — Ошибка в запросе
401 Unauthorized — Необходима авторизация
403 Forbidden — Доступ запрещён
404 Not Found — Ресурс не найден
500 Internal Server Error — Ошибка сервера
503 Service Unavailable — Сервис временно недоступен

Мини-документация по конфигурации GoWeb

Файл config.yml используется для настройки параметров приложения, базы данных, логов, сервера и других модулей.

app:
  port: 8080
  environment: production

database:
  host: "localhost"
  port: 3306
  user: "root"
  password: ""
  dbname: "goweb"

log:
  file: "logs/app.log" # Путь к файлу логов
  level: "info"        # Уровень логирования: debug, info, warn, error, fatal, panic

server:
  agent_download_url: "https://example.com/agent" # URL для загрузки бинарного файла агента
  agent_port: 8080
  max_body_size: 1048576 # 1MB
  rate_limit: 100        # запросов в секунду
  enable_https: false
  cert_file: "certs/server.crt"
  key_file: "certs/server.key"
  read_timeout: 10       # Таймаут чтения (сек)
  write_timeout: 10      # Таймаут записи (сек)
  idle_timeout: 30       # Таймаут для idle соединений (сек)
  cors:
    allow_origins:
      - "*"
    allow_methods:
      - "GET"
      - "POST"
      - "PUT"
      - "DELETE"
      - "OPTIONS"
    allow_headers:
      - "Content-Type"
      - "Authorization"
      - "X-Requested-With"
  blocked_ips:           # Заблокированные IP
    - "8.8.8.8"
  allowed_user_agents:
    - "Mozilla/5.0"
    - "Chrome/"
    - "Safari/"
    - "Firefox/"
    - "Edge/"
    - "Opera/"
    - "PostmanRuntime/"
    - "python-requests/"
    - "Java/"
    - "curl/"
    - "Go-http-client/"
    - "Wget/"
    - "Insomnia/"
  enable_geoip: false      # Отключить GeoIP (по умолчанию)
  geoip_db: "geoip/GeoLite2-Country.mmdb" # Путь к базе GeoIP
  allowed_countries:      # Разрешённые страны
    - "US"
    - "CA"
  max_connections: 100    # Одновременные соединения
  jwt_key: "your_secret_key"
  allow_public_registration: true
  backup:
    enabled: true            # Включить/выключить резервное копирование
    path: "./backups"        # Путь для резервных копий
    interval: 24             # Интервал резервного копирования в часах
            

Пример файла конфигурации для приложения, развернутого в production-среде:

Контакты