SlideShare una empresa de Scribd logo
AISI
Administración de Servidores Web: nodejs
MWS nodejs
nodejs
MWS nodejs
Open Source
Server side javascript
V8: Javascript desarrollado por
Google
Nodejs.org: “Node's goal is to provide
an easy way to build scalable network
programs”
Event-driven, not-blocking I/O model
(event-loops via callbacks de
javascript)
Todo se ejecuta en un único thread.
introducción
MWS nodejs
JavaScript’s single threaded
var http = require("http");
var port = parseInt(process.argv[2]);
http.createServer(function(request, response) {
console.log("Request for: " + request.url);
response.writeHead(200);
response.end("hello worldn");
}).listen(port);
Se ejecuta igual con 1 núcleo que con 1000
Para utilizar todos los núcleos disponibles; módulo cluster
que permite crear una “red” de procesos que comparten
puerto.
¿Cómo se distribuyen las conexiones entrantes?
https://nodejs.org/api/cluster.html#cluster_cluster_sched
ulingpolicy
Scaling Node.js
MWS nginx
l
var cluster = require("cluster");
l
var http = require("http");
var numCPUs = require("os").cpus().length;
var port = parseInt(process.argv[2]);
if (cluster.isMaster) {
for (var i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on("exit", function(worker, code, signal) {
cluster.fork();
});
} else {
http.createServer(function(request, response) {
console.log("Request for: " + request.url);
response.writeHead(200);
response.end("hello worldn");
}).listen(port);
}
scaling Node.js
MWS nginx
Módulo http-proxy
var proxyServer = require('http-proxy');
var port = parseInt(process.argv[2]);
var servers = [
{
host: "localhost",
port: 8081
},
{
host: "localhost",
port: 8080
}
];
proxyServer.createServer(function (req, res, proxy) {
var target = servers.shift();
proxy.proxyRequest(req, res, target);
servers.push(target);
}).listen(port);
Scaling node.js multiserver
MWS nodejs
“If #nginx isn’t sitting in front of your node server, you’re
probably doing it wrong.”
—Bryan Hughes on Twitter
https://www.nginx.com/blog/5-performance-tips-for-
node-js-applications/
l
Node.js is a great tool for creating and running
application logic that produces the core, variable content
for your web page
l
It’s not so great for serving static content – images and
JavaScript files, for example – or load balancing across
multiple servers.
l
Node.js has a few weak points and vulnerabilities that
can make Node.js based systems prone to‑
underperformance or even crashes. Problems arise more
frequently when a Node.js based web application‑
experiences rapid traffic growth.
Nodejs: ¿solo o acompañado?
MWS nodejs
Razones para usar Node.js con otro servidor al frente:
l
Los permisos privilegiados para el “otro”
l
Servidor contenido estático como imágenes, css, js, html,...
Aunque el rendimiento de Nodejs es bueno, no es normalmente
mejor que Nginx (por ejemplo)
l
No encargarnos de control de caché, eTags, puede recaer en el
“otro” servidor web (aunque existe “ayuda” en ciertos
frameworks) Si tenemos un CDN, entonces da igual
l
Implementar SSL/TLS y/o HTTP/2 con el cliente, liberando a
node
l
Tienes a otro que controle y avise de errores en node.js, de lo
contrario no se enteran hasta el timeout
l
Otro servidor puede ayudar para mitigar problemas de seguridad
y DoS a nodejs (Ej: CVE-2013-4450 se previene con Nginx
delante de nodejs)
l
Nota: Con websockets, si se usa nginx, que sea una versión
reciente(>= 1.3.13)
Nodejs: ¿solo o acompañado?
MWS nodejs
HTTP es un protocolo excelente para aplicaciones
basadas en petición-respuesta y mecanismos pull
(el cliente pide)
¿Qué pasa con apps web con interactividad
(push, pull/push), full-duplex, intereacción
basada en mensajes entre cliente y servidor?
Websocket proporciona una forma fácil de
construir apps de tiempo real, dirigidas por
eventos que utilice push, pull, o “streaming
communications”)
Ej: juegos online, chats, webRTC, stock tracking
e informes de tiempo real de resultados
deportivos
https://www.nginx.com/blog/realtime-
websocket
MWS nodejs
PROFESSIONAL NODE.JS,
Pedro Teixeira, John Wiley &
Sons, Inc, 2013
Referencias

Más contenido relacionado

La actualidad más candente

Servidores web de altas prestaciones. Tema 2
Servidores web de altas prestaciones. Tema 2Servidores web de altas prestaciones. Tema 2
Servidores web de altas prestaciones. Tema 2
pacvslideshare
 
Webinar –Conectar servidores dedicados con Servidores Cloud
Webinar –Conectar servidores dedicados con Servidores CloudWebinar –Conectar servidores dedicados con Servidores Cloud
Webinar –Conectar servidores dedicados con Servidores Cloud
Arsys
 
Servidores web de altas prestaciones. Tema 0. Presentación
Servidores web de altas prestaciones. Tema 0. PresentaciónServidores web de altas prestaciones. Tema 0. Presentación
Servidores web de altas prestaciones. Tema 0. Presentación
pacvslideshare
 
Presentacion instaladores os debian centos
Presentacion instaladores os debian centosPresentacion instaladores os debian centos
Presentacion instaladores os debian centos
OpenStack-VE
 
Nodejs
NodejsNodejs
Alta Disponibilidad con SQL Server 2012
Alta Disponibilidad con SQL Server 2012Alta Disponibilidad con SQL Server 2012
Alta Disponibilidad con SQL Server 2012
dbLearner
 
Tools for High Availability
Tools for High AvailabilityTools for High Availability
Tools for High Availability
Luis Toscano
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJS
Alberto Gimeno
 
Introducción a Node.js
Introducción a Node.jsIntroducción a Node.js
Introducción a Node.js
Alessandro Mascherpa
 
Webinar –Desplegar Hypervisores en servidores dedicados
Webinar –Desplegar Hypervisores en servidores dedicadosWebinar –Desplegar Hypervisores en servidores dedicados
Webinar –Desplegar Hypervisores en servidores dedicados
Arsys
 
Apache Server vs Nginx
Apache Server vs NginxApache Server vs Nginx
Apache Server vs Nginx
Irene Lorente Álvarez
 
Recuperación de desastres y soluciones de alta disponibilidad con SQL Server
Recuperación de desastres y soluciones de alta disponibilidad con SQL ServerRecuperación de desastres y soluciones de alta disponibilidad con SQL Server
Recuperación de desastres y soluciones de alta disponibilidad con SQL Server
SpanishPASSVC
 
Filtrado der contenido web con GNU/Linux y Squid
Filtrado der contenido web con GNU/Linux y SquidFiltrado der contenido web con GNU/Linux y Squid
Filtrado der contenido web con GNU/Linux y Squid
Jorge Medina
 
Alta disponibilidad SQL Server 2012
Alta disponibilidad SQL Server 2012Alta disponibilidad SQL Server 2012
Alta disponibilidad SQL Server 2012
Eduardo Castro
 
SQL Server Alta disponibilidad en ambientes empresariales
SQL Server Alta disponibilidad en ambientes empresarialesSQL Server Alta disponibilidad en ambientes empresariales
SQL Server Alta disponibilidad en ambientes empresariales
Eduardo Castro
 
Cómo aumentar la disponibilidad y el rendimiento utilizando sql server 2012 w...
Cómo aumentar la disponibilidad y el rendimiento utilizando sql server 2012 w...Cómo aumentar la disponibilidad y el rendimiento utilizando sql server 2012 w...
Cómo aumentar la disponibilidad y el rendimiento utilizando sql server 2012 w...
Eduardo Castro
 
Estableciendo escenarios de Alta Disponibilidad en las empresas de hoy con MS...
Estableciendo escenarios de Alta Disponibilidad en las empresas de hoy con MS...Estableciendo escenarios de Alta Disponibilidad en las empresas de hoy con MS...
Estableciendo escenarios de Alta Disponibilidad en las empresas de hoy con MS...
Joseph Lopez
 
Taller HA y Balanceo de Cargas con NIGX.
Taller HA y Balanceo de Cargas con NIGX.Taller HA y Balanceo de Cargas con NIGX.
Taller HA y Balanceo de Cargas con NIGX.
Luis Toscano
 
Webinar: Base de Datos en tiempo real con MeteorJS
Webinar: Base de Datos en tiempo real con MeteorJSWebinar: Base de Datos en tiempo real con MeteorJS
Webinar: Base de Datos en tiempo real con MeteorJS
Arsys
 
Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012
Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012
Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012
Pilmee Gates
 

La actualidad más candente (20)

Servidores web de altas prestaciones. Tema 2
Servidores web de altas prestaciones. Tema 2Servidores web de altas prestaciones. Tema 2
Servidores web de altas prestaciones. Tema 2
 
Webinar –Conectar servidores dedicados con Servidores Cloud
Webinar –Conectar servidores dedicados con Servidores CloudWebinar –Conectar servidores dedicados con Servidores Cloud
Webinar –Conectar servidores dedicados con Servidores Cloud
 
Servidores web de altas prestaciones. Tema 0. Presentación
Servidores web de altas prestaciones. Tema 0. PresentaciónServidores web de altas prestaciones. Tema 0. Presentación
Servidores web de altas prestaciones. Tema 0. Presentación
 
Presentacion instaladores os debian centos
Presentacion instaladores os debian centosPresentacion instaladores os debian centos
Presentacion instaladores os debian centos
 
Nodejs
NodejsNodejs
Nodejs
 
Alta Disponibilidad con SQL Server 2012
Alta Disponibilidad con SQL Server 2012Alta Disponibilidad con SQL Server 2012
Alta Disponibilidad con SQL Server 2012
 
Tools for High Availability
Tools for High AvailabilityTools for High Availability
Tools for High Availability
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJS
 
Introducción a Node.js
Introducción a Node.jsIntroducción a Node.js
Introducción a Node.js
 
Webinar –Desplegar Hypervisores en servidores dedicados
Webinar –Desplegar Hypervisores en servidores dedicadosWebinar –Desplegar Hypervisores en servidores dedicados
Webinar –Desplegar Hypervisores en servidores dedicados
 
Apache Server vs Nginx
Apache Server vs NginxApache Server vs Nginx
Apache Server vs Nginx
 
Recuperación de desastres y soluciones de alta disponibilidad con SQL Server
Recuperación de desastres y soluciones de alta disponibilidad con SQL ServerRecuperación de desastres y soluciones de alta disponibilidad con SQL Server
Recuperación de desastres y soluciones de alta disponibilidad con SQL Server
 
Filtrado der contenido web con GNU/Linux y Squid
Filtrado der contenido web con GNU/Linux y SquidFiltrado der contenido web con GNU/Linux y Squid
Filtrado der contenido web con GNU/Linux y Squid
 
Alta disponibilidad SQL Server 2012
Alta disponibilidad SQL Server 2012Alta disponibilidad SQL Server 2012
Alta disponibilidad SQL Server 2012
 
SQL Server Alta disponibilidad en ambientes empresariales
SQL Server Alta disponibilidad en ambientes empresarialesSQL Server Alta disponibilidad en ambientes empresariales
SQL Server Alta disponibilidad en ambientes empresariales
 
Cómo aumentar la disponibilidad y el rendimiento utilizando sql server 2012 w...
Cómo aumentar la disponibilidad y el rendimiento utilizando sql server 2012 w...Cómo aumentar la disponibilidad y el rendimiento utilizando sql server 2012 w...
Cómo aumentar la disponibilidad y el rendimiento utilizando sql server 2012 w...
 
Estableciendo escenarios de Alta Disponibilidad en las empresas de hoy con MS...
Estableciendo escenarios de Alta Disponibilidad en las empresas de hoy con MS...Estableciendo escenarios de Alta Disponibilidad en las empresas de hoy con MS...
Estableciendo escenarios de Alta Disponibilidad en las empresas de hoy con MS...
 
Taller HA y Balanceo de Cargas con NIGX.
Taller HA y Balanceo de Cargas con NIGX.Taller HA y Balanceo de Cargas con NIGX.
Taller HA y Balanceo de Cargas con NIGX.
 
Webinar: Base de Datos en tiempo real con MeteorJS
Webinar: Base de Datos en tiempo real con MeteorJSWebinar: Base de Datos en tiempo real con MeteorJS
Webinar: Base de Datos en tiempo real con MeteorJS
 
Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012
Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012
Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012
 

Similar a Aspectos nodejs

24. Introducción a Node JS.pdf
24. Introducción a Node JS.pdf24. Introducción a Node JS.pdf
24. Introducción a Node JS.pdf
mabytax
 
Introduccion a Node.js
Introduccion a Node.jsIntroduccion a Node.js
Introduccion a Node.js
Oscar Gensollen
 
Introduccion a Nodejs
Introduccion a NodejsIntroduccion a Nodejs
Introduccion a Nodejs
Jan Sanchez
 
Node on Windows jsconf arg 2012
Node on Windows jsconf arg 2012Node on Windows jsconf arg 2012
Node on Windows jsconf arg 2012
Matias Woloski
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJS
BEEVA_es
 
Node.js - un poco de informacion.
Node.js - un poco de informacion.Node.js - un poco de informacion.
Node.js - un poco de informacion.
Luis Toscano
 
Codemotion 2017: Pentesting en aplicaciones node.js AS ALWAYS: FOR FUN AND PR...
Codemotion 2017: Pentesting en aplicaciones node.js AS ALWAYS: FOR FUN AND PR...Codemotion 2017: Pentesting en aplicaciones node.js AS ALWAYS: FOR FUN AND PR...
Codemotion 2017: Pentesting en aplicaciones node.js AS ALWAYS: FOR FUN AND PR...
Dani Adastra
 
Tecnologias emergentes node js
Tecnologias emergentes node jsTecnologias emergentes node js
Tecnologias emergentes node js
Erick Aguila Martínez
 
Presentación OpenStack Comunidad Venezuela
Presentación OpenStack Comunidad VenezuelaPresentación OpenStack Comunidad Venezuela
Presentación OpenStack Comunidad Venezuela
Ender Mujica Diaz
 
Funcionamiento con my sql
Funcionamiento con my sqlFuncionamiento con my sql
Funcionamiento con my sql
dante123456
 
NodeJS y MongoDB
NodeJS y MongoDBNodeJS y MongoDB
NodeJS y MongoDB
Arsys
 
Introducción a Node.js
Introducción a Node.jsIntroducción a Node.js
Introducción a Node.js
José Ignacio Fernández
 
dockerize.it
dockerize.itdockerize.it
dockerize.it
betabeers
 
Introducción a Asp.Net Mvc
Introducción a Asp.Net MvcIntroducción a Asp.Net Mvc
Introducción a Asp.Net Mvc
Gustavo Alzate Sandoval
 
Qué es exactamente un sistema cluster
Qué es exactamente un sistema clusterQué es exactamente un sistema cluster
Qué es exactamente un sistema cluster
Juan Manuel Torres
 
Rompiendo paradigmas
Rompiendo paradigmasRompiendo paradigmas
Rompiendo paradigmas
Zuriel Diaz
 
[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java
Eudris Cabrera
 
Docker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJSDocker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJS
Jan Sanchez
 
Plataforma de programación Java
Plataforma de programación JavaPlataforma de programación Java
Plataforma de programación Java
Antonio Contreras
 
Aprendiendo GWT
Aprendiendo GWTAprendiendo GWT
Aprendiendo GWT
Manuel Carrasco Moñino
 

Similar a Aspectos nodejs (20)

24. Introducción a Node JS.pdf
24. Introducción a Node JS.pdf24. Introducción a Node JS.pdf
24. Introducción a Node JS.pdf
 
Introduccion a Node.js
Introduccion a Node.jsIntroduccion a Node.js
Introduccion a Node.js
 
Introduccion a Nodejs
Introduccion a NodejsIntroduccion a Nodejs
Introduccion a Nodejs
 
Node on Windows jsconf arg 2012
Node on Windows jsconf arg 2012Node on Windows jsconf arg 2012
Node on Windows jsconf arg 2012
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJS
 
Node.js - un poco de informacion.
Node.js - un poco de informacion.Node.js - un poco de informacion.
Node.js - un poco de informacion.
 
Codemotion 2017: Pentesting en aplicaciones node.js AS ALWAYS: FOR FUN AND PR...
Codemotion 2017: Pentesting en aplicaciones node.js AS ALWAYS: FOR FUN AND PR...Codemotion 2017: Pentesting en aplicaciones node.js AS ALWAYS: FOR FUN AND PR...
Codemotion 2017: Pentesting en aplicaciones node.js AS ALWAYS: FOR FUN AND PR...
 
Tecnologias emergentes node js
Tecnologias emergentes node jsTecnologias emergentes node js
Tecnologias emergentes node js
 
Presentación OpenStack Comunidad Venezuela
Presentación OpenStack Comunidad VenezuelaPresentación OpenStack Comunidad Venezuela
Presentación OpenStack Comunidad Venezuela
 
Funcionamiento con my sql
Funcionamiento con my sqlFuncionamiento con my sql
Funcionamiento con my sql
 
NodeJS y MongoDB
NodeJS y MongoDBNodeJS y MongoDB
NodeJS y MongoDB
 
Introducción a Node.js
Introducción a Node.jsIntroducción a Node.js
Introducción a Node.js
 
dockerize.it
dockerize.itdockerize.it
dockerize.it
 
Introducción a Asp.Net Mvc
Introducción a Asp.Net MvcIntroducción a Asp.Net Mvc
Introducción a Asp.Net Mvc
 
Qué es exactamente un sistema cluster
Qué es exactamente un sistema clusterQué es exactamente un sistema cluster
Qué es exactamente un sistema cluster
 
Rompiendo paradigmas
Rompiendo paradigmasRompiendo paradigmas
Rompiendo paradigmas
 
[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java
 
Docker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJSDocker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJS
 
Plataforma de programación Java
Plataforma de programación JavaPlataforma de programación Java
Plataforma de programación Java
 
Aprendiendo GWT
Aprendiendo GWTAprendiendo GWT
Aprendiendo GWT
 

Más de Juan Antonio Gil Martínez-Abarca

03 asor gestión de usuarios y ldap
03 asor   gestión de usuarios y ldap03 asor   gestión de usuarios y ldap
03 asor gestión de usuarios y ldap
Juan Antonio Gil Martínez-Abarca
 
06 airc firewalls
06 airc   firewalls06 airc   firewalls
08 airc hackingbuscadores - mod
08 airc   hackingbuscadores - mod08 airc   hackingbuscadores - mod
08 airc hackingbuscadores - mod
Juan Antonio Gil Martínez-Abarca
 
Aisi 1415 06 correo
Aisi 1415 06 correoAisi 1415 06 correo
05 airc dns
05 airc   dns05 airc   dns
04 girc servicio dhcp
04 girc   servicio dhcp 04 girc   servicio dhcp
04 girc servicio dhcp
Juan Antonio Gil Martínez-Abarca
 
Snortpracticas 2006
Snortpracticas 2006Snortpracticas 2006
Snort 2006
Snort 2006Snort 2006
Tripwire 2006
Tripwire 2006Tripwire 2006
Honeypotsprácticas2006
Honeypotsprácticas2006Honeypotsprácticas2006
Honeypotsprácticas2006
Juan Antonio Gil Martínez-Abarca
 
Honeypots2006 2007
Honeypots2006 2007Honeypots2006 2007

Más de Juan Antonio Gil Martínez-Abarca (11)

03 asor gestión de usuarios y ldap
03 asor   gestión de usuarios y ldap03 asor   gestión de usuarios y ldap
03 asor gestión de usuarios y ldap
 
06 airc firewalls
06 airc   firewalls06 airc   firewalls
06 airc firewalls
 
08 airc hackingbuscadores - mod
08 airc   hackingbuscadores - mod08 airc   hackingbuscadores - mod
08 airc hackingbuscadores - mod
 
Aisi 1415 06 correo
Aisi 1415 06 correoAisi 1415 06 correo
Aisi 1415 06 correo
 
05 airc dns
05 airc   dns05 airc   dns
05 airc dns
 
04 girc servicio dhcp
04 girc   servicio dhcp 04 girc   servicio dhcp
04 girc servicio dhcp
 
Snortpracticas 2006
Snortpracticas 2006Snortpracticas 2006
Snortpracticas 2006
 
Snort 2006
Snort 2006Snort 2006
Snort 2006
 
Tripwire 2006
Tripwire 2006Tripwire 2006
Tripwire 2006
 
Honeypotsprácticas2006
Honeypotsprácticas2006Honeypotsprácticas2006
Honeypotsprácticas2006
 
Honeypots2006 2007
Honeypots2006 2007Honeypots2006 2007
Honeypots2006 2007
 

Último

Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
larapalaciosmonzon28
 
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdfProjecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Festibity
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
Festibity
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
AMADO SALVADOR
 
Modo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdfModo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdf
ranierglez
 
Flows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos FeaturesFlows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos Features
Paola De la Torre
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Festibity
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
larapalaciosmonzon28
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
YaniEscobar2
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Festibity
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
mantenimientocarbra6
 
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIAMONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
leia ereni
 
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
MiguelAtencio10
 
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
AbrahamCastillo42
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
cbtechchihuahua
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
YashiraPaye
 
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdfPresentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
giampierdiaz5
 
Programming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdfProgramming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdf
Manuel Diaz
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
larapalaciosmonzon28
 
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdfPLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
70244530
 

Último (20)

Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
 
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdfProjecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
 
Modo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdfModo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdf
 
Flows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos FeaturesFlows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos Features
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
 
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIAMONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
 
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
 
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
 
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdfPresentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
 
Programming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdfProgramming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdf
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
 
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdfPLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
 

Aspectos nodejs

  • 3. MWS nodejs Open Source Server side javascript V8: Javascript desarrollado por Google Nodejs.org: “Node's goal is to provide an easy way to build scalable network programs” Event-driven, not-blocking I/O model (event-loops via callbacks de javascript) Todo se ejecuta en un único thread. introducción
  • 4. MWS nodejs JavaScript’s single threaded var http = require("http"); var port = parseInt(process.argv[2]); http.createServer(function(request, response) { console.log("Request for: " + request.url); response.writeHead(200); response.end("hello worldn"); }).listen(port); Se ejecuta igual con 1 núcleo que con 1000 Para utilizar todos los núcleos disponibles; módulo cluster que permite crear una “red” de procesos que comparten puerto. ¿Cómo se distribuyen las conexiones entrantes? https://nodejs.org/api/cluster.html#cluster_cluster_sched ulingpolicy Scaling Node.js
  • 5. MWS nginx l var cluster = require("cluster"); l var http = require("http"); var numCPUs = require("os").cpus().length; var port = parseInt(process.argv[2]); if (cluster.isMaster) { for (var i = 0; i < numCPUs; i++) { cluster.fork(); } cluster.on("exit", function(worker, code, signal) { cluster.fork(); }); } else { http.createServer(function(request, response) { console.log("Request for: " + request.url); response.writeHead(200); response.end("hello worldn"); }).listen(port); } scaling Node.js
  • 6. MWS nginx Módulo http-proxy var proxyServer = require('http-proxy'); var port = parseInt(process.argv[2]); var servers = [ { host: "localhost", port: 8081 }, { host: "localhost", port: 8080 } ]; proxyServer.createServer(function (req, res, proxy) { var target = servers.shift(); proxy.proxyRequest(req, res, target); servers.push(target); }).listen(port); Scaling node.js multiserver
  • 7. MWS nodejs “If #nginx isn’t sitting in front of your node server, you’re probably doing it wrong.” —Bryan Hughes on Twitter https://www.nginx.com/blog/5-performance-tips-for- node-js-applications/ l Node.js is a great tool for creating and running application logic that produces the core, variable content for your web page l It’s not so great for serving static content – images and JavaScript files, for example – or load balancing across multiple servers. l Node.js has a few weak points and vulnerabilities that can make Node.js based systems prone to‑ underperformance or even crashes. Problems arise more frequently when a Node.js based web application‑ experiences rapid traffic growth. Nodejs: ¿solo o acompañado?
  • 8. MWS nodejs Razones para usar Node.js con otro servidor al frente: l Los permisos privilegiados para el “otro” l Servidor contenido estático como imágenes, css, js, html,... Aunque el rendimiento de Nodejs es bueno, no es normalmente mejor que Nginx (por ejemplo) l No encargarnos de control de caché, eTags, puede recaer en el “otro” servidor web (aunque existe “ayuda” en ciertos frameworks) Si tenemos un CDN, entonces da igual l Implementar SSL/TLS y/o HTTP/2 con el cliente, liberando a node l Tienes a otro que controle y avise de errores en node.js, de lo contrario no se enteran hasta el timeout l Otro servidor puede ayudar para mitigar problemas de seguridad y DoS a nodejs (Ej: CVE-2013-4450 se previene con Nginx delante de nodejs) l Nota: Con websockets, si se usa nginx, que sea una versión reciente(>= 1.3.13) Nodejs: ¿solo o acompañado?
  • 9. MWS nodejs HTTP es un protocolo excelente para aplicaciones basadas en petición-respuesta y mecanismos pull (el cliente pide) ¿Qué pasa con apps web con interactividad (push, pull/push), full-duplex, intereacción basada en mensajes entre cliente y servidor? Websocket proporciona una forma fácil de construir apps de tiempo real, dirigidas por eventos que utilice push, pull, o “streaming communications”) Ej: juegos online, chats, webRTC, stock tracking e informes de tiempo real de resultados deportivos https://www.nginx.com/blog/realtime- websocket
  • 10. MWS nodejs PROFESSIONAL NODE.JS, Pedro Teixeira, John Wiley & Sons, Inc, 2013 Referencias

Notas del editor

  1. Apache inicia varios subprocesos y cada petición es atendida por uno de estos; cuando termina con esta petición este subproceso podría atender a otro cliente o ser terminado, según al valor de MaxRequestsPerChild. Es el modo más estable, ya que un error crítico solo afectaría a una petición. Este es el único modo en que se pueden usar módulos / extensiones que no sean Thread-Safe. Requiere más recursos (Memoria RAM y CPU) para atender cierto número de peticiones simultaneas, respecto a otras configuraciones. Esto limita drásticamente la escabilidad del servidor. Favorece el uso intensivo de PHP. Los aceleradores de PHP no son Thread-Safe, pero al usarlos junto a Prefork podemos justificar el mayor uso de php (o páginas sin ningún tipo de caché, aparte del acelerador en sí). Prefork es la configuración predeterminada en la mayoría de instalaciones.
  2. Apache inicia varios subprocesos y cada petición es atendida por uno de estos; cuando termina con esta petición este subproceso podría atender a otro cliente o ser terminado, según al valor de MaxRequestsPerChild. Es el modo más estable, ya que un error crítico solo afectaría a una petición. Este es el único modo en que se pueden usar módulos / extensiones que no sean Thread-Safe. Requiere más recursos (Memoria RAM y CPU) para atender cierto número de peticiones simultaneas, respecto a otras configuraciones. Esto limita drásticamente la escabilidad del servidor. Favorece el uso intensivo de PHP. Los aceleradores de PHP no son Thread-Safe, pero al usarlos junto a Prefork podemos justificar el mayor uso de php (o páginas sin ningún tipo de caché, aparte del acelerador en sí). Prefork es la configuración predeterminada en la mayoría de instalaciones.
  3. Apache inicia varios subprocesos y cada petición es atendida por uno de estos; cuando termina con esta petición este subproceso podría atender a otro cliente o ser terminado, según al valor de MaxRequestsPerChild. Es el modo más estable, ya que un error crítico solo afectaría a una petición. Este es el único modo en que se pueden usar módulos / extensiones que no sean Thread-Safe. Requiere más recursos (Memoria RAM y CPU) para atender cierto número de peticiones simultaneas, respecto a otras configuraciones. Esto limita drásticamente la escabilidad del servidor. Favorece el uso intensivo de PHP. Los aceleradores de PHP no son Thread-Safe, pero al usarlos junto a Prefork podemos justificar el mayor uso de php (o páginas sin ningún tipo de caché, aparte del acelerador en sí). Prefork es la configuración predeterminada en la mayoría de instalaciones.
  4. Apache inicia varios subprocesos y cada petición es atendida por uno de estos; cuando termina con esta petición este subproceso podría atender a otro cliente o ser terminado, según al valor de MaxRequestsPerChild. Es el modo más estable, ya que un error crítico solo afectaría a una petición. Este es el único modo en que se pueden usar módulos / extensiones que no sean Thread-Safe. Requiere más recursos (Memoria RAM y CPU) para atender cierto número de peticiones simultaneas, respecto a otras configuraciones. Esto limita drásticamente la escabilidad del servidor. Favorece el uso intensivo de PHP. Los aceleradores de PHP no son Thread-Safe, pero al usarlos junto a Prefork podemos justificar el mayor uso de php (o páginas sin ningún tipo de caché, aparte del acelerador en sí). Prefork es la configuración predeterminada en la mayoría de instalaciones.
  5. Apache inicia varios subprocesos y cada petición es atendida por uno de estos; cuando termina con esta petición este subproceso podría atender a otro cliente o ser terminado, según al valor de MaxRequestsPerChild. Es el modo más estable, ya que un error crítico solo afectaría a una petición. Este es el único modo en que se pueden usar módulos / extensiones que no sean Thread-Safe. Requiere más recursos (Memoria RAM y CPU) para atender cierto número de peticiones simultaneas, respecto a otras configuraciones. Esto limita drásticamente la escabilidad del servidor. Favorece el uso intensivo de PHP. Los aceleradores de PHP no son Thread-Safe, pero al usarlos junto a Prefork podemos justificar el mayor uso de php (o páginas sin ningún tipo de caché, aparte del acelerador en sí). Prefork es la configuración predeterminada en la mayoría de instalaciones.
  6. Apache inicia varios subprocesos y cada petición es atendida por uno de estos; cuando termina con esta petición este subproceso podría atender a otro cliente o ser terminado, según al valor de MaxRequestsPerChild. Es el modo más estable, ya que un error crítico solo afectaría a una petición. Este es el único modo en que se pueden usar módulos / extensiones que no sean Thread-Safe. Requiere más recursos (Memoria RAM y CPU) para atender cierto número de peticiones simultaneas, respecto a otras configuraciones. Esto limita drásticamente la escabilidad del servidor. Favorece el uso intensivo de PHP. Los aceleradores de PHP no son Thread-Safe, pero al usarlos junto a Prefork podemos justificar el mayor uso de php (o páginas sin ningún tipo de caché, aparte del acelerador en sí). Prefork es la configuración predeterminada en la mayoría de instalaciones.
  7. Wherever in your URL-space you do not have an Options FollowSymLinks, or you do have an Options SymLinksIfOwnerMatch, Apache will need to issue extra system calls to check up on symlinks. (One extra call per filename component.) For example, if you had: DocumentRoot &amp;quot;/www/htdocs&amp;quot; &amp;lt;Directory &amp;quot;/&amp;quot;&amp;gt; Options SymLinksIfOwnerMatch &amp;lt;/Directory&amp;gt; and a request is made for the URI /index.html, then Apache will perform lstat(2) on /www, /www/htdocs, and /www/htdocs/index.html. The results of these lstats are never cached, so they will occur on every single request. If you really desire the symlinks security checking, you can do something like this: DocumentRoot &amp;quot;/www/htdocs&amp;quot; &amp;lt;Directory &amp;quot;/&amp;quot;&amp;gt; Options FollowSymLinks &amp;lt;/Directory&amp;gt; &amp;lt;Directory &amp;quot;/www/htdocs&amp;quot;&amp;gt; Options -FollowSymLinks +SymLinksIfOwnerMatch &amp;lt;/Directory&amp;gt;