WEBrick

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

WEBrick es una biblioteca Ruby que proporciona servidores web HTTP simples. Utiliza autenticación de acceso básico y autenticación de acceso implícito para diferentes tipos de servidores que puede crear: servidor basado en HTTP, servidor HTTPS, servidor proxy y servidor de host virtual. WEBrick también facilita la construcción de varios servidores que no son HTTP, como el servidor diurno que utiliza el protocolo diurno en lugar de HTTP. Los frameworks Ruby on Rails y Padrino lo utilizan para probar aplicaciones en un entorno de desarrollo, así como en modo de producción para cargas pequeñas. Ahora forma parte de la biblioteca estándar de Ruby.

WEBrick sigue el modelo de distribución de código abierto.

Historia

WEBrick se originó a partir de una idea contenida en un artículo titulado "Programación de Internet con Ruby" en Open Design, una revista japonesa de ingeniería. Inicialmente se desarrolló como un conjunto de herramientas para el desarrollo de servidores HTTP utilizando Ruby. Debido a la naturaleza del modelo de código abierto y las contribuciones de varios desarrolladores de Ruby en todo el mundo, WEBrick se amplió enormemente y finalmente se incluyó como una biblioteca estándar desde Ruby 1.8.0. WEBrick ERB Handler y WEBrick Proxy Server se introdujeron por primera vez en Ruby 1.9.3, mientras que WEBrick Virtual Host se incluyó en Ruby 2.0.0.

Uso

Un servidor WEBrick sólo entiende el lenguaje de los servlets. Utiliza múltiples servlets independientes, unidos por el programador, para manejar scripts CGI, páginas ERB, bloques Ruby y listados de directorios para proporcionar una aplicación web o atender una URI de solicitud por host o por ruta. Por ejemplo, HTTPServlet::FileHandler, HTTPServlet::ProcHandler, HTTPServlet::CGIHandler, HTTPServlet::ERBHandler son ejemplos de los servlets estándar que viene con WEBrick.

WEBrick está incluido en Ruby y, por lo tanto, está disponible para el usuario sin costo adicional. WEBrick ha sido escrito completamente en Ruby y soporta varios estándares como HTTP, HTML e incluso RHTML. Durante la etapa de desarrollo, no es necesario instalar un servidor web discreto ya que WEBrick ya está integrado en el marco Rails. Es el servidor web predeterminado cuando la aplicación Ruby se implementa sin ningún archivo de perfil en Rails. Además, dado que se implementó íntegramente en Ruby, se pueden realizar llamadas directas desde WEBrick a la aplicación Rails. En general, proporciona una opción confiable y de baja configuración para pruebas en desarrollo.

Creación de instancias de servidores

Crear una instancia de un servidor HTTP

Los siguientes comandos se utilizan para iniciar un servidor HTTP en el puerto requerido.

# Include WEBrick class with requirenecesidad 'webrick '# FileHandler servlet ofrece la opción de elegir qué archivos de usuario para servir# El siguiente código muestra cómo servirlos de la carpeta 'myapp 'root = Archivo.expand_path '/var/myapp/ '# Instantáneando un nuevo servidor con HTTPServer.new en el puerto 1234 sirviendo los documentos de la carpeta raízservidor = WEBrick::HTTPServer.nuevo :Port = 1234, : DocumentRoot = root# El siguiente proc se utiliza para personalizar las operaciones del servidorservidor.mount_proc '/ ' do Silenciosolicitud, respuestaSilencio respuesta.cuerpo = ¡Hola, mundo! 'final# El siguiente comando proporcionará un gancho para apagar el servidor (a menudo hecho con Ctrl+C)trampa()NO ') {}servidor.apagado}# Iniciar el servidorservidor.Empieza

Los servlets se pueden montar para proporcionar un comportamiento personalizado avanzado en comparación con un proceso, para aumentar la modularidad.

Iniciar un host virtual

WEBrick crea un puerto de escucha. También se pueden crear al mismo tiempo varios otros puertos como "hosts virtuales" que no escuchan, como se muestra a continuación:

#Crear un host virtual que no escuchavhost = WEBrick::HTTPServer.nuevo :ServerName = 'vhost.example ', No, no. = verdadero, #...# Montaje del host virtual creado anteriormente similar a la forma en que se monta el servidor HTTPvhost.montaje '/ ', ...# Este host, cuando se monta en el host del servidor de escucha, actuará ahora como un host virtualservidor.virtual_host vhost

:Se debe proporcionar DocumentRoot o se debe configurar una instancia de un servlet para atender un URI de solicitud; de lo contrario, se devolverá un error 404.

Crear una instancia de un servidor HTTPS

Simplemente habilitando SSL y proporcionando un nombre de certificado SSL, se puede iniciar un servidor HTTPS con un certificado autofirmado que cambia con cada reinicio del servidor.

# Además de webrick, necesitaremos webrick/https también para funcionalidades SSLnecesidad 'webrick 'necesidad 'webrick/https '# Proporcionándole el nombre del certificado. Este, sin embargo, será un certificado auto-firmado autogeneradocert_name = [%w[CN localhost],]# Enabling SSL and providing the certificate name will instantiate HTTPS serverservidor = WEBrick::HTTPServer.nuevo():Port = 1234, : = verdadero, :SSLCertName = cert_name)

Sin embargo, también se puede proporcionar una clave y un certificado predeterminados para instantánear HTTPS Server como se muestra a continuación:

# Además de los dos anteriores, necesitaremos apertura para leer certificados y claves SSLnecesidad 'openssl '# Lea el certificado guardado y su clave de firma del directorio localcert = OpenSSL::X509::Certificado.nuevo Archivo.leído '/var/myapp/cert.pem 'Pkey = OpenSSL::PKey::RSA.nuevo Archivo.leído '/var/myapp/pkey.pem '# Pase el certificado y la clave como parámetros separados mientras se instantánea con HTTPServer.newservidor = WEBrick::HTTPServer.nuevo():Port = 1234, : = verdadero, :SSLCertificate = cert, :SSLPrivate Clave = Pkey)

Iniciar un servidor proxy

WEBrick también puede enviar solicitudes GET, HEAD y POST:

# Instantánear un servidor proxy es similar, excepto que es manejado por HTTPProxyServer servletnecesidad 'webrick/httpproxy 'proxy = WEBrick::HTTPProxyServer.nuevo :Port = 1234# Proporcionando el gancho del hilo actualtrampa NO ' do proxy.apagado final

Limitaciones

A diferencia de la mayoría de los servidores que se utilizan en producción, WEBrick no es escalable ya que es un servidor web de un solo subproceso por defecto. Por lo tanto, no se pueden manejar varias solicitudes al mismo tiempo y las solicitudes posteriores tendrían que esperar hasta que se hayan manejado todas las solicitudes anteriores, lo que genera un gran retraso. Por lo tanto, los desarrolladores prefieren otros servidores web completos y multiproceso como Lighttpd y Mongrel para implementar sus aplicaciones Rails.

Contenido relacionado

Spl (Unix)

spl es el nombre de una colección de rutinas o macros del kernel de Unix utilizadas. para cambiar el nivel de prioridad de interrupción. Históricamente...

PERLA (lenguaje de programación)

PEARL, o lenguaje en tiempo real de automatización de procesos y experimentos, es un lenguaje de programación diseñado para realizar múltiples tareas y...

Tabla de métodos virtuales

En programación informática, una tabla de métodos virtuales una tabla de funciones virtuales, una tabla de llamadas virtuales , tabla de despacho, vtable o...

Datosflex

DataFlex es un lenguaje de programación de alto nivel orientado a objetos y una herramienta visual de cuarta generación para desarrollar aplicaciones de...

Hacer bucle while

En muchos lenguajes de programación de computadoras, un bucle do while es una declaración de flujo de control que ejecuta un bloque de código y luego...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save