Ejemplo: alojar un sitio web producido por un sitio de sitios estáticos como Hugo, Zola, Jekyll, Hexo, etc.
fast_mem_cache habilitado) y servir archivos estáticos de la memoria. En el lado del cliente, se utilizan Cache-Control , Etag y Last-Modified .Si está deplicando a la producción o esperando un alto tráfico en su servidor, obtenga Binserve+ que tenga protección DDoS , limitación de tarifas y métricas Prometheus para monitorear junto con todas las características anteriores incorporadas.
¡Vuelva a ver Binserve Plus!
Lea las preguntas frecuentes para más detalles.
Descargue el ejecutable para su sistema operativo de versiones , luego simplemente ejecutarlo:
mkdir mywebsite/
binserveEn la primera ejecución, creará el archivo de configuración y una placa de arranque para que comience.
_ _
| |_|_|___ ___ ___ ___ _ _ ___
| . | | |_ -| -_| _| | | -_|
|___|_|_|_|___|___|_| _/|___| 0.2.0
[INFO] Build finished in 295 μs ⚡
[SUCCESS] Your server is up and running at 127.0.0.1:1337
Vaya a http://127.0.0.0:1337/ y será recibido con la página de índice de Binserve.
Ahora todo lo que necesita hacer es editar el archivo binserve.json . (Ver configuración ).
Descargue el ejecutable de los lanzamientos o la instalación con cargo :
cargo install --git https://github.com/mufeedvh/binserve.gitInstalar óxido/carga
Prerrequisitos:
git clone https://github.com/mufeedvh/binserve.git
cd binserve/
RUSTFLAGS= " -C target-cpu=native " cargo build --releaseEl primer comando clama este repositorio en su máquina local y los dos últimos comandos ingresan al directorio y construye la fuente en modo de lanzamiento.
El archivo de configuración es un archivo JSON llamado binserve.json que es generado automáticamente por el ejecutable. La configuración de Binserve es bastante directa porque los campos de configuración se explican por sí mismos:
Y todos los valores aquí tienen valores predeterminados seguros para que no tenga que especificar los que no necesita.
Consejo : probablemente no necesitaría todos los campos de configuración, consulte el ejemplo del generador de sitio estático sobre cómo servir un solo directorio.
{
"server" : {
"host" : " 127.0.0.1:1337 " ,
"tls" : {
"host" : " 127.0.0.1:443 " ,
"enable" : false ,
"key" : " key.pem " ,
"cert" : " cert.pem "
}
},
"routes" : {
"/" : " public/index.html " ,
"/usage" : " public/usage.hbs " ,
"/blog" : " public/blog/ "
},
"static" : {
"directory" : " public/assets " ,
"served_from" : " /assets " ,
"error_pages" : {
"404" : " public/404.html "
}
},
"template" : {
"partials" : {
"header" : " public/header.hbs "
},
"variables" : {
"app_name" : " Binserve "
}
},
"config" : {
"enable_hot_reload" : true ,
"fast_mem_cache" : true ,
"enable_cache_control" : true ,
"enable_directory_listing" : true ,
"minify_html" : false ,
"follow_symlinks" : false ,
"enable_logging" : false
},
"insert_headers" : {
"x-greetings" : " hellooo! "
}
}También puede anular la configuración con argumentos de línea de comandos:
-c/--cert -La ruta al certificado TLS para su dominio.-k/--key -La ruta a la tecla TLS para su dominio.-h/--host -el host/dominio con el puerto especificado para que su servidor web se ejecute.--host 127.0.0.1:1337 o --host zombo.com Hay soporte incorporado para TLS:
{
"server" : {
"host" : " 127.0.0.1:1337 " ,
"tls" : {
"host" : " 127.0.0.1:443 " ,
"enable" : true ,
"key" : " key.pem " ,
"cert" : " cert.pem "
}
}
} La clave y el certificado se pueden generar con openssl :
# generate pkcs#10 key+cert (PEM):
$ openssl req -x509 -newkey rsa:4096 -keyout key_pkcs10.pem -out cert.pem -sha256 -days 36
# convert the private key to PKCS#8 (PEM):
$ openssl pkcs8 -topk8 -inform PEM -outform PEM -nocrypt -in key_pkcs10.pem -out key.pemBinserve utiliza manillares para la plantilla, ya que es simple y el motor de plantilla más comúnmente conocido.
Puede registrar plantillas parciales y variables de plantilla como esta en el archivo de configuración:
"template" : {
"partials" : {
"header" : " public/header.hbs "
},
"variables" : {
"app_name" : " Binserve "
}
}Public/Header.hbs :
Y úsalo así:
Que se reduciría a:
Cada generador estático construye sus archivos de Markdown/ plantilla en un directorio, generalmente llamado public/ , todo lo que tiene que hacer es señalar ese directorio como ruta de índice:
{
"server" : {
"host" : " 127.0.0.1:1337 " ,
"tls" : {
"host" : " 127.0.0.1:443 " ,
"enable" : false ,
"key" : " key.pem " ,
"cert" : " cert.pem "
}
},
"routes" : {
"/" : " public/ "
}
}¡Eso es todo!
Como se mencionó anteriormente, no tiene que especificar todos los campos, ¡se aplicarán predeterminados seguros! ?
Señalar directorios como rutas es un diseño intencional para que pueda alojar múltiples salidas de generador de sitios estáticos fácilmente. Supongamos que tiene una cartera como página de inicio y su blog está hecho con una plantilla diferente. Puedes hacer:
"routes" : {
"/" : " my_zola_portfolio/public/ " ,
"/blog" : " my_hugo_blog/public/ "
}Binserve es multiplataforma, lo que significa que puede ejecutarlo en cualquier sistema / dispositivo operativo importante. Es bajo en el uso de la CPU y la huella de la memoria para que pueda ejecutarlo en su Raspberry Pi o incluso en su teléfono Android :
Con fast_mem_cache habilitado, todos los archivos se almacenan en memoria asignados a su índice de ruta y respuesta en la inicialización y no realizarán ninguna lectura de disco en tiempo de ejecución. Se recomienda mantenerlo habilitado incluso si tiene cientos de archivos, Binserve clasifica automáticamente archivos grandes para que se lean desde el disco. Solo cuando está sirviendo mucho contenido multimedia, debe deshabilitar este modo.
Bajo el capó, Binserve mapea las rutas y prepara la respuesta con el contenido del archivo, el tipo de mime , metadata y los campos requeridos para obtener las etiquetas Etag y Last-Modified de antemano y no realizarán ninguna de estas operaciones en tiempo de ejecución. En los cambios en cualquiera de estos archivos, Hot Reload se ejecuta en un hilo de fondo que actualiza el estado del programa haciendo cambios en el HASHMAP concurrente que administra el caché, los cambios son instantáneos y tampoco causarían ningún tiempo de inactividad.
Ver puntos de referencia.md
P: ¿Qué es Binserve+?
Binserve+ está hecho para sitios web destinados a funcionar en producción y manejar grandes cantidades de tráfico. Viene con protección DDoS, limitación de tarifas y métricas Prometheus fuera de la caja.
Obtiene licencia de por vida + correcciones de errores de por vida por $ 24/una vez.
Esto existe como una forma de respaldar el proyecto, no tiene claves de licencia o sistema de verificación, obtiene ejecutables precompilados para los principales sistemas operativos y arquitecturas en un archivo zip. (Licencia del MIT)
Obtenga Binserve+.
Formas de contribuir:
Licenciado bajo la licencia MIT, consulte la licencia para obtener más información.
Binserve no existiría sin estos increíbles proyectos:
CompactString .¡Gracias! ❤️