Logotipo de OKZGNTurbo

Servidor web de alto rendimiento con interfaz visual para configuración en tiempo real.

Soporta dominios y subdominios multinivel, certificados SSL, direcciones alias, redirecciones, reescrituras, headers o MIME personalizados. Adapta diferentes lenguajes de programación. Controla frecuencias, cantidades, tiempos y tamaños de requests.

Descripción

Formulario de acceso a la interfaz Vista inicial de la interfaz Opciones para sitios o subdominios raíz Opciones para subdominios

Turbo es un servidor web rápido que incluye una interfaz sencilla para configurarlo en tiempo real; organizar uno o más sitios web como dominios y subdominios multinivel; instalar y cambiar certificados SSL fácilmente, o crearlos y renovarlos con la integración a Certbot; adaptar distintos lenguajes de programación asignando preprocesadores para archivos con extensiones específicas; aplicar direcciones web alias, redirecciones de URL y reescrituras de URI; incluir cabeceras (headers) adicionales o modificar cabeceras de tipos de contenidos (MIME) según extensiones de archivos; ajustar frecuencias y cantidades permitidas de peticiones; o limitar tiempos de procesamiento y tamaños para peticiones (requests).

Instalación

Linux
REQUISITOS
  • Conocimiento de servidores (VPS, bare metal...), sistema operativo Linux y línea de comandos Bash.
  • Distribución de Linux con systemd, nano y wget (comúnmente preinstalados).
  • Servidor con arquitectura de 64 bits y 128 MB de RAM disponible (mínimo recomendado).
  • Opcional: instalación de Certbot (instrucciones), para obtener y renovar certificados SSL.
  1. Identificar la arquitectura del sistema operativo: ARM64 (AArch64) o 64 bits (x64, x86-64, AMD64).

    Ejemplo:

    > uname --hardware-platform
  2. Obtener privilegios de usuario root.

    Ejemplo:

    > sudo
  3. Habilitar o desbloquear los puertos 80 y 443.
    Para usuarios de proveedores de VPS (como AWS, Google Cloud, etc.), las opciones están en las consolas de administración.
  4. Crear un directorio (carpeta) para el servidor web.

    Ejemplo:

    > sudo mkdir /home/server/
  5. Descargar el ejecutable para la arquitectura correspondiente en el directorio anterior.

    Ejemplo: 64 bits

    > sudo wget https://github.com/okzgn/turbo-go/releases/download/v2.3.rc2/turbo-v2.3.rc2-linux-amd64 -O /home/server/turbo
  6. Otorgar permisos de lectura, escritura y ejecución al ejecutable descargado.

    Ejemplo:

    > sudo chmod 755 /home/server/turbo
    Para pruebas, pasar de aquí a Cómo utilizar.
  7. Configurar el ejecutable como servicio (para ejecución en segundo plano).

    En el directorio /etc/systemd/system/, crear el archivo turbo.service.

    Ejemplo:

    > cd /etc/systemd/system/
    > sudo nano turbo.service
    Escribir o pegar este contenido en el editor:
    [Unit]
    Description=Turbo
    After=network.target
        
    [Install]
    WantedBy=multi-user.target
        
    [Service]
    Type=simple
    ExecStart=/home/server/turbo
    WorkingDirectory=/home/server/
    Restart=always
    RestartSec=5
    StandardOutput=/dev/null
    StandardError=/dev/null
    
    Guardar el archivo turbo.service (Ctrl + O, Enter, Ctrl + X).

    Actualizar el sistema y habilitar el servicio.

    Ejemplo:

    > sudo systemctl daemon-reload
    > sudo systemctl enable turbo
  8. Iniciar el servicio de Turbo.

    Ejemplo:

    > sudo systemctl start turbo
    Otros comandos:
    • Para detener momentáneamente el servicio, use el comando stop.
    • O use disable para detener completamente el servicio del servidor web.
Windows
REQUISITOS
  • Sistema operativo Windows 10 / Server 2016 o superior.
  • Equipo o servidor con arquitectura de 64 bits (x64, AMD64).
  • Privilegios de Administrador (para abrir puertos y ejecutar el servidor).
  • PowerShell instalado y actualizado, para ejecutar los siguientes comandos (ejemplos).
  1. Crear un directorio (carpeta) para el servidor web.

    Ejemplo:

    > mkdir C:\server\
  2. Descargar y renombrar el ejecutable para Windows en el directorio anterior.

    Ejemplo:

    > Invoke-WebRequest https://github.com/okzgn/turbo-go/releases/download/v2.3.rc2/turbo-v2.3.rc2-windows-x64.exe -OutFile C:\server\turbo.exe
  3. Habilitar o desbloquear los puertos 80 y 443 en el firewall de Windows.

    Ejemplo (ejecutar como Administrador):

    > New-NetFirewallRule -DisplayName "Turbo" -Direction Inbound -LocalPort 80,443 -Protocol TCP -Action Allow
    Para usuarios de proveedores de VPS (Azure, AWS, etc.), recuerde que también deberá abrir estos puertos desde la consola de administración en la nube.
  4. Ejecutar Turbo desde la terminal para permitir que el servidor escuche en los puertos 80 y 443.

    Ejemplo (ejecutar como Administrador):

    > cd C:\server\
    > .\turbo.exe
    Nota: En Windows, si cierra la ventana de la terminal, el servidor se detendrá. Para mantenerlo activo en segundo plano de forma permanente, puede configurar turbo.exe como un servicio de Windows utilizando herramientas gratuitas como WinSW (recomendado), NSSM o mediante el Programador de tareas.

Descargas

La versión gratuita se distribuye bajo la licencia GNU Affero General Public License (AGPL v3). Al descargarla, acepta sus términos.

Cómo utilizar

Linux
IMPORTANTE
Como mínimo, completar la instalación hasta el paso 6.
EN CASO DE:
  • No instalar o no iniciar Turbo como servicio (paso 7 u 8).
  • Hacer pruebas.
Ejecutar Turbo para continuar.

Ejemplo:

> cd /home/server/
> sudo ./turbo

Ejemplo, ejecutar SIN sudo:

> cd /home/server/
> sudo setcap cap_net_bind_service=+ep ./turbo
> ./turbo
Windows
EN CASO DE:
  • Hacer pruebas de configuración.
  • Haber cerrado la terminal donde se ejecutaba el servidor.
Ejecutar Turbo (como Administrador) para continuar.

Ejemplo:

> cd C:\server\
> .\turbo.exe
Interfaz de configuración

Acceda a la interfaz (panel de control o administración, GUI) a través de una de las siguientes direcciones web.

Mediante la IP pública o el dominio web del servidor donde instaló Turbo.

Ejemplos:

http://11.22.33.44/admin:
http://dominio.com/admin:

O con localhost, si no está conectado a Internet:

http://localhost/admin:

Allí, el formulario de acceso se verá como a continuación.

Formulario de acceso a la interfaz
Ingrese con los datos por defecto:
Usuario: Turbo
Contraseña: Admin
IMPORTANTE
  • Los datos de acceso por defecto se restablecen en caso de: reiniciar el proceso, servicio o servidor (VPS, etc.), o al cerrar y volver a ejecutar Turbo.
  • Para cambiar los datos de acceso por defecto, compile Turbo desde el código fuente y con las instrucciones del repositorio oficial de Turbo.
  • Variables de entorno para usuario, contraseña y directorio de sitios: TURBO_USER, TURBO_PASSWORD, TURBO_DIR (respectivamente).

Al ingresar, según la pantalla del dispositivo, la interfaz luce como en la imagen. Desde dentro podrá cambiar el usuario y la contraseña por defecto, o instalar certificados SSL para conectarse de forma segura. Cada sesión es única y se cierra automáticamente si el lapso de inactividad supera 1 minuto.

Vista de la interfaz

Continúe a Documentación para conocer las opciones de la interfaz.

Documentación

  1. Configuración general
    1. Cambiar usuario
    2. Cambiar contraseña
    3. Directorio de sitios
    4. Guardar configuración
  2. Tiempo para cada petición
    1. Lectura de cabeceras
    2. Lectura total de petición
    3. Escritura de respuesta
    4. Cierre de conexión inactiva
  3. Frecuencias de peticiones
    1. Contador de peticiones por intervalo
    2. Peticiones máximas por intervalo
    3. Tiempo de reinicio de contador
  4. Límites para cada petición
    1. Tamaño máximo de URIs
    2. Tamaño máximo de cabeceras
    3. Tamaño máximo de contenidos
  5. Agregar sitio
    1. Validez de cada sitio
  6. Opciones para sitios y subdominios
    1. Agregar alias
    2. Crear SSL
      1. Redirección a HTTPS (R. HTTPS)
        1. Subir archivos
        2. Borrar sitio/subdominio
      2. Opciones para sitios o subdominios raíz
        1. Redirección a www (R. www)
          1. Redirección a raíz (R. raíz)
          2. Agregar subdominio
          3. Opciones de subdominios
            1. Agregar MIME
            2. Agregar cabecera
            3. Agregar reescritura
              1. Agregar preprocesador
              2. Agregar índice
            1. Configuración general

              Imagen de Configuración general

              Estas opciones requerirán la contraseña en el primer cuadro de diálogo. Si se usan por primera vez, ingrese la contraseña por defecto (vea la sección interfaz de configuración).

              1. Cambiar usuario

                Establecerá el nuevo usuario de acceso a la interfaz.
              2. Cambiar contraseña

                Establecerá la nueva contraseña para la configuración general y el acceso a la interfaz.
              3. Directorio de sitios

                Cambiará el directorio (carpeta) que el servidor web utiliza para leer, guardar o servir archivos de sitios web. Por defecto, se usa el directorio donde está el ejecutable de Turbo. También puede ingresar la variable: {TURBO_CURRENT_DIR}
              4. Guardar configuración

                Crea un archivo con toda la configuración del servidor web al momento de guardarse, dentro del directorio de sitios. El archivo se sobrescribe cuando se guarda.
            2. Tiempo para cada petición

              Imagen de Tiempo para cada petición

              Estas opciones se refieren a los tiempos permitidos para procesar o responder las peticiones recibidas por el servidor web. Se pueden especificar en milisegundos (ms), segundos (s) o minutos (m).

              1. Lectura de cabeceras

                Límite de tiempo para procesar los primeros datos estructurales o cabeceras (headers) de cada petición entrante. Superado el límite, se cierra la conexión con el emisor de la petición. Para evitar este límite, escriba: 0s
              2. Lectura total de petición

                Límite de tiempo para procesar contenidos que están a continuación de las cabeceras (headers) de cada petición entrante, como uploads de archivos. Este límite empieza con la lectura de cabeceras. Superado el límite, se cierra la conexión con el emisor de la petición. Para evitar este límite, escriba: 0s
              3. Escritura de respuesta

                Límite de tiempo para responder a cada petición procesada. Superado el límite, se corta la respuesta y se cierra la conexión con el receptor. Para evitar este límite, escriba: 0s
              4. Cierre de conexión inactiva

                Límite de tiempo para esperar la siguiente petición, sin cerrar la conexión, con el emisor de cada petición. Superado el límite, se cierra la conexión con el emisor. Para evitar este límite, escriba: 0s
            3. Frecuencias de peticiones

              Imagen de Frecuencias de peticiones

              Estas opciones fijan lapsos de tiempo de referencia y el número de peticiones que, durante esos lapsos, el servidor web aceptará de cada emisor (IP).

              1. Contador de peticiones por intervalo

                Lapso de tiempo referencial para contabilizar las peticiones recibidas de cada emisor, por cada lapso, hasta el límite de peticiones máximas por intervalo. Este contador aumenta con cada petición y se reinicia al tiempo de reinicio de contador. Se escribe el número en milisegundos sin ms.
              2. Peticiones máximas por intervalo

                Número límite de peticiones aceptables proporcional para cada contador de peticiones por intervalo. Superado el límite, se cierra y se bloquea temporalmente cualquier conexión con el emisor de peticiones. Se escribe un número mayor a 0 y compatible con la interfaz (no debe afectar su visualización).
              3. Tiempo de reinicio de contador

                Límite de tiempo para reiniciar el contador de peticiones por intervalo para cada emisor de peticiones. Se escribe el número en milisegundos sin ms.
            4. Límites para cada petición

              Imagen de Límites para cada petición

              Estas opciones especifican la cantidad de bytes que el servidor procesará de las peticiones entrantes.

              1. Tamaño máximo de URIs

                Límite de longitud de la ruta del archivo, directorio (carpeta) o recurso que se solicita en cada petición. Superado el límite, se rechaza la petición con estado 414.
              2. Tamaño máximo de cabeceras

                Límite de bytes de cabeceras (headers) de cada petición. Superado el límite, se rechaza la petición con estado 431.
              3. Tamaño máximo de contenidos

                Límite de bytes de contenidos adjuntos a cada petición, como uploads de archivos o POST bodies, entre otros. Por defecto, el servidor no procesa los contenidos adjuntos, el límite aplica siempre que sean utilizados (por la interfaz, por preprocesadores, etc.). Superado el límite, se rechaza la petición con estado 400.
            5. Agregar sitio

              Imagen de Agregar sitio

              Esta opción crea la estructura de directorios (carpetas) para cada sitio en el directorio de sitios. Se puede agregar como: localhost, IP (v4), o dirección web multinivel (con o sin wildcards). Al agregarlo, se verá en la interfaz, y al hacer clic en cualquier sitio agregado se mostrarán las opciones disponibles, las configuraciones de cada sitio y sus subdominios. En cada sitio, se incluye automáticamente el subdominio raíz, que equivale al mismo sitio, para configurarlo específicamente. No hay límite de sitios ni datos relativos a sitios.

              1. Validez de cada sitio

                Para que el servidor web responda a las peticiones de cada sitio agregado, necesita tener la dirección IP o que el dominio o subdominio web real apunte a la IP del servidor (mediante DNS).
            6. Opciones para sitios y subdominios

              Imagen de Opciones para sitios y subdominios

              Opciones disponibles para cualquier sitio o subdominio.

              1. Agregar alias
                Imagen de Agregar alias

                Añade direcciones que dirigen al mismo sitio o subdominio, sin redireccionar. Los alias añadidos se eliminan haciendo clic en cada uno.

              2. Crear SSL

                Ejecuta Certbot, si está instalado, para solicitar el certificado SSL para el sitio o subdominio. Certbot se ejecutará en segundo plano, y se mostrará el resultado o el estado del proceso haciendo clic en Respuesta SSL. Si el sitio o subdominio es wildcard, Certbot podría necesitar instalar componentes adicionales para obtener el certificado.

                1. Borrar SSL

                  Elimina los archivos del certificado SSL relativos al sitio o subdominio. Si el certificado está activo por la opción Redirección HTTPS (R. HTTPS), se mantendrá en memoria RAM hasta que se desactive, aunque esté expirado.
                2. Respuesta SSL

                  Muestra la respuesta de Certbot relativa al certificado SSL solicitado del sitio o subdominio.
              3. Redirección a HTTPS (R. HTTPS)

                Activa la redirección al protocolo HTTPS de todas las visitas o peticiones por medio de HTTP del sitio o subdominio. Para activar esta opción, se necesita un certificado SSL previamente obtenido con Crear SSL; o colocar archivos válidos (fullchain.pem y privkey.pem) de certificados SSL en el directorio (carpeta) del sitio o subdominio para instalarlos al hacer clic.

                1. Sin redirección a HTTPS (Sin r. HTTPS)

                  Desinstala y borra de la memoria RAM el certificado SSL activo del sitio o subdominio. Pero no elimina los archivos del certificado del directorio (carpeta) del sitio o subdominio.
                2. Colocación de archivos de certificado SSL

                  Las ubicaciones correctas de archivos de certificados SSL en el directorio (carpeta) de cada sitio o subdominio son como las siguientes.

                  Para sitios o subdominios raíz:
                  /home/server/dominio.com/fullchain.pem
                  /home/server/dominio.com/privkey.pem
                  Para otros subdominios:
                  /home/server/dominio.com/subdominio/fullchain.pem
                  /home/server/dominio.com/subdominio/privkey.pem
              4. Subir archivos

                Elimina el contenido del directorio (carpeta) del sitio o subdominio y sube en su lugar los archivos o directorios seleccionados.

              5. Borrar sitio/subdominio

                Elimina todo lo relacionado con un sitio o subdominio, incluido el directorio (carpeta). Si es sitio, los subdominios también se eliminarán con toda la información relacionada. Si es subdominio raíz, esta opción se mostrará como Borrar sitio, ya que equivale al mismo sitio. En cualquier caso, no se harán cambios en el archivo de configuración hasta que se utilice la opción guardar configuración.

            7. Opciones para sitios o subdominios raíz

              Estas opciones son únicamente para sitios o subdominios raíz, porque son equivalentes y, por defecto, comparten estas opciones de redirección.

              1. Redirección a www (R. www)

                Redirige automáticamente hacia el subdominio www las visitas o peticiones al subdominio raíz. Si esta opción se activa, la redirección contraria no podrá activarse. Ejemplo:
                Visita: https://dominio.com
                Redirección: https://www.dominio.com
                1. Sin redirección a www (Sin r. www)

                  Desactiva la redirección automática al subdominio www desde el subdominio raíz.
              2. Redirección a raíz (R. raíz)

                Redirige automáticamente hacia el subdominio raíz las visitas o peticiones al subdominio www. Si esta opción se activa, la redirección contraria no podrá activarse. Ejemplo:
                Visita: https://www.dominio.com
                Redirección: https://dominio.com
                1. Sin redirección a raíz (Sin r. raíz)

                  Desactiva la redirección automática al subdominio raíz desde el subdominio www.
            8. Agregar subdominio

              Imagen de Agregar subdominio

              Esta opción crea la estructura de directorios (carpetas) de cada subdominio dentro del directorio del sitio al que pertenece, a excepción del subdominio raíz. Se puede agregar como multinivel (nivel3.nivel2.subdominio) y puede incluir wildcards. Al agregarlo, se verá en la interfaz, y al hacer clic en cualquier subdominio agregado se mostrarán las opciones disponibles y las configuraciones de cada subdominio. No hay límite de subdominios ni datos relativos a subdominios.

            9. Opciones de subdominios

              Imagen de Opciones de subdominios

              Opciones disponibles para cualquier subdominio.

              1. Agregar MIME
                Imagen de Agregar MIME

                Agrega una sobrescritura de la cabecera (header) Content-Type por defecto de los archivos con la extensión especificada del subdominio, por el contenido ingresado. Es posible especificar una extensión vacía para referirse a archivos sin extensión (como en la imagen).

              2. Agregar cabecera
                Imagen de Agregar cabecera

                Agrega la cabecera (header) con el nombre y contenido especificado a todos los archivos del subdominio.

              3. Agregar reescritura
                Imagen de Agregar reescritura

                Agrega una reescritura de la ruta de archivo, directorio, o recurso (URI) determinado, para tratarlo internamente como otra ruta de archivo, directorio o recurso especificado sin redireccionarlo. No es obligatorio ingresar una URI existente. Se puede acceder a la información de la primera URI y datos del sitio y subdominio con palabras clave (útil en sitios o subdominios con wildcards y para preprocesadores).

                1. Información accesible

                  Al incluir palabras clave en las reescrituras, se reemplazarán por la información respectiva. Se escriben de la siguiente manera:
                  {PALABRA_CLAVE}
                  Palabras clave disponibles:
                  1. TURBO_CURRENT_DIR

                    Contiene la ruta desde donde se sirve los sitios web.
                  2. WILDCARD_SITE

                    Contiene la dirección web completa (con subdominio y dominio) del sitio wildcard al que pertenece.
                  3. WILDCARD_DOMAIN

                    Contiene el dominio web del sitio wildcard al que pertenece.
                  4. WILDCARD_SUBDOMAIN

                    Contiene el subdominio web del sitio wildcard al que pertenece.
                  5. DOMAIN

                    Contiene el dominio web del sitio al que pertenece.
                  6. SUBDOMAIN

                    Contiene el subdominio web del sitio al que pertenece.
                  7. SITE

                    Contiene la dirección web completa (con subdominio y dominio) del sitio al que pertenece.
                  8. FIRST_DOMAIN

                    Contiene el dominio web alias al que pertenece.
                  9. FIRST_SUBDOMAIN

                    Contiene el subdominio web alias al que pertenece.
                  10. FIRST_SITE

                    Contiene la dirección web alias completa (con subdominio y dominio) al que pertenece.
                  11. FIRST_REQUEST

                    Contiene la ruta o URI completa que se reescribió.
                  12. FIRST_QUERY

                    Contiene las querys de la URI que se reescribió.
                  13. DIR

                    Contiene el directorio (carpeta) de la URI que se reescribió.
                  14. FILE

                    Contiene el nombre del archivo que se reescribió.
                  15. EXT

                    Contiene la extensión del archivo que se reescribió.
                  16. REWRITE

                    Contiene la reescritura misma.
                  17. REWRITE_COMPLEMENT

                    Contiene las querys de la reescritura misma.
              4. Agregar preprocesador
                Imagen de Agregar preprocesador

                Asigna el preprocesador determinado para todos los archivos con la extensión especificada del subdominio. El preprocesador requiere procesar y responder, mediante CGI y las variables de entorno respectivas, las peticiones de los archivos con la extensión especificada.

              5. Agregar índice
                Imagen de Agregar índice

                Agrega el archivo por defecto para responder a peticiones (requests) de directorios (carpetas). Es necesario que el archivo especificado exista en cada directorio. Si se especifica más de uno, la prioridad son los archivos asociados con preprocesadores.

            Isotipo de Turbo