SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Descobrindo o Nginx



Um servidor web de alta performance
Quem sou eu
Все лучшее в России
nginx = engine X
WTF nginx
●   Web server e proxy reverso open source
●   Para HTTP e e-mail
●   Foco em
     –   Performance
     –   Baixo uso de memória
     –   Alto desempenho
2-clause BSD-like license
●   Faça o que quiser, não somos responsáveis por nada e inclua a informação da licença ao distribuir os fontes
    ou os binários

●   http://www.tldrlegal.com
●   http://nginx.org/LICENSE
11.48% da web em agosto/2012




http://netcraft.com
C10k
C10k
●   Utilizando Threads e Processos
     –   Servindo uma página com 100KB
     –   ~10s quando o cliente está limitado a 80kbps (10KB/s)
     –   Com módulos carregados, pode ocupar ~1MB por cliente conectado

     –   O que fazer com 1000 clientes ?
Daniel Kegel
●   “Manifesto” C10k
●   C10k → Concurrent Ten Thousand Simultaneous Connections
●   Status quo = Apache
●   Bottleneck deixou de ser o hardware e passou a ser o Software

●   http://www.kegel.com/c10k.html
●   Renato Hirata: Otimizando Servidores Web de Alta Demanda (MsC Unicamp 2002)
Igor Sysoev
●   Natural do Cazaquistão (URSS)
●   SysAdmin na Rambler
●   Desenvolvimento de modulos do Apache
     –   mod_accel
     –   mod_deflate

●   http://sysoev.ru
Igor Sysoev
nginx devel
●   Iniciou em 2002
●   Primeira versão pública em Outubro de 2004
●   Considerado estável em 2007
●   Versão estável atual: 1.2.3 (07/08/2012)
●   Todo em C (+zlib, PCRE e OpenSSL)

●   http://www.nginx.org
nginx Inc.
nginx X C10k
●   Core pequeno + módulos estáticos
●   Processo principal + processos workers
●   Processo “cache loader”
●   IO Assíncrona
●   Bibliotecas de eventos
     –   Kqueue, epoll, /dev/poll, select, poll, rt signals
nginx X C10k
nginx OSs
●   Linux
●   FreeBSD, NetBSD, OpenBSD, Mac OS X
●   Solaris
●   AIX
●   HP-UX
●   Windows
nginx main features
●   HTTP, HTTPS, SPDY, SMTP, IMAP, POP3
●   Load balancer, cache, proxy reverso
●   1 milhão de conexões simultâneas por servidor
●   100K+ servidores virtuais por instância
●   Suporte a compressão
●   Serviço específico para conteúdo estático
●   HTTP video streaming
●   ~2.5Mb com 10.000 conexões idle
nginx main features
●   HTTP, FastCGI, SCGI, uwsgi, memcached

●   Configuração com suporte a prefixos e regex

●   SSL: TLSv1.1, TLSv1.2, SSL, SNI
nginx main features
●   Configuração de políticas por largura de banda, requisições ou conexões
●   Filtro de requisições
●   High availability: Active-Active, Active-Standby
●   Atualização do binário sem parar de processas novas requisições (Live update)
configuração
●   /etc/nginx
     –   Nginx.conf
     –   Sites-avaliable
     –   Sites-enabled


●   Leitura sob demanda, sem cache
     –   Permite configuração em tempo real
casos de sucesso
http://nginx.com/company.html
nginx web
●   http://www.nginx.org
●   http://www.nginx.com
●   http://trac.nginx.org
●   http://wiki.nginx.org
dúvidas
contatos
●   ciello@gmail.com

●   @gustavociello

●   Facebook: Gustavo Ciello

Weitere ähnliche Inhalte

Was ist angesagt?

Alta perfomance de aplicações PHP com Nginx
Alta perfomance de aplicações PHP com NginxAlta perfomance de aplicações PHP com Nginx
Alta perfomance de aplicações PHP com Nginx
Thiago Paes
 
Apresentação MongoDB
Apresentação MongoDBApresentação MongoDB
Apresentação MongoDB
David de Lucca
 

Was ist angesagt? (20)

Entregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVMEntregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVM
 
Servidor Proxy Squid
Servidor Proxy SquidServidor Proxy Squid
Servidor Proxy Squid
 
pfSense - Proxy com arquivo arquivo pac e wpad
pfSense - Proxy com arquivo arquivo pac e wpadpfSense - Proxy com arquivo arquivo pac e wpad
pfSense - Proxy com arquivo arquivo pac e wpad
 
Alta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com NginxAlta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com Nginx
 
Alta Performance de Aplicações Web em PHP - Nginx
Alta Performance de Aplicações Web em PHP - NginxAlta Performance de Aplicações Web em PHP - Nginx
Alta Performance de Aplicações Web em PHP - Nginx
 
Alta perfomance de aplicações PHP com Nginx
Alta perfomance de aplicações PHP com NginxAlta perfomance de aplicações PHP com Nginx
Alta perfomance de aplicações PHP com Nginx
 
Slides nginx
Slides nginxSlides nginx
Slides nginx
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis ter
 
Rest workshop
Rest workshopRest workshop
Rest workshop
 
Performance Web com ASP.NET MVC
Performance Web com ASP.NET MVCPerformance Web com ASP.NET MVC
Performance Web com ASP.NET MVC
 
HTTP 2
HTTP 2HTTP 2
HTTP 2
 
TDC - Da presença online ao Cloud Computing
TDC - Da presença online ao Cloud ComputingTDC - Da presença online ao Cloud Computing
TDC - Da presença online ao Cloud Computing
 
Escalando Sites com Nginx
Escalando Sites com NginxEscalando Sites com Nginx
Escalando Sites com Nginx
 
Application Servers e Ruby
Application Servers e RubyApplication Servers e Ruby
Application Servers e Ruby
 
AWS 101 - VBronwBag Brasil
AWS 101 - VBronwBag BrasilAWS 101 - VBronwBag Brasil
AWS 101 - VBronwBag Brasil
 
UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SP
UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SPUserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SP
UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SP
 
HTTP: A Base do Desenvolvimento Web - FISL 12
HTTP: A Base do Desenvolvimento Web - FISL 12HTTP: A Base do Desenvolvimento Web - FISL 12
HTTP: A Base do Desenvolvimento Web - FISL 12
 
L'esprit de l'escalier
L'esprit de l'escalierL'esprit de l'escalier
L'esprit de l'escalier
 
Apresentação MongoDB
Apresentação MongoDBApresentação MongoDB
Apresentação MongoDB
 
De A a Zabbix Devry Metrocamp
De A a Zabbix Devry MetrocampDe A a Zabbix Devry Metrocamp
De A a Zabbix Devry Metrocamp
 

Ähnlich wie Descobrindo o Nginx - Um servidor web de alta performance

Fisl banco de dados no sql de código aberto
Fisl   banco de dados no sql de código abertoFisl   banco de dados no sql de código aberto
Fisl banco de dados no sql de código aberto
Suissa
 

Ähnlich wie Descobrindo o Nginx - Um servidor web de alta performance (20)

Cartola Fc 2010 - Uma Arquitetura escalável e performática
Cartola Fc 2010 - Uma Arquitetura escalável e performáticaCartola Fc 2010 - Uma Arquitetura escalável e performática
Cartola Fc 2010 - Uma Arquitetura escalável e performática
 
Um milhao de usuários simultâneos
Um milhao de usuários simultâneosUm milhao de usuários simultâneos
Um milhao de usuários simultâneos
 
Um milhao tdc2014sp Apresentação por Fernando Ike
Um milhao tdc2014sp Apresentação por Fernando IkeUm milhao tdc2014sp Apresentação por Fernando Ike
Um milhao tdc2014sp Apresentação por Fernando Ike
 
Tunando sua aplicação LNMP
Tunando sua aplicação LNMPTunando sua aplicação LNMP
Tunando sua aplicação LNMP
 
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
 
Web Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+ApacheWeb Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+Apache
 
Web seminario varnish
Web seminario varnishWeb seminario varnish
Web seminario varnish
 
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
 
Como definir a quantidade de workers para sua aplicação
Como definir a quantidade de workers para sua aplicaçãoComo definir a quantidade de workers para sua aplicação
Como definir a quantidade de workers para sua aplicação
 
Nginx, Apache e Varnish
Nginx, Apache e VarnishNginx, Apache e Varnish
Nginx, Apache e Varnish
 
Fisl banco de dados no sql de código aberto
Fisl   banco de dados no sql de código abertoFisl   banco de dados no sql de código aberto
Fisl banco de dados no sql de código aberto
 
Desenvolvimento web no Linux
Desenvolvimento web no LinuxDesenvolvimento web no Linux
Desenvolvimento web no Linux
 
Palestra de PHP
Palestra de PHPPalestra de PHP
Palestra de PHP
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançado
 
Tuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedoresTuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedores
 
Python CGI
Python CGIPython CGI
Python CGI
 
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
 
AJAX
AJAXAJAX
AJAX
 
Node js - Javascript Server Side
Node js - Javascript Server SideNode js - Javascript Server Side
Node js - Javascript Server Side
 
Kubernetes no Governo Federal - Kubernetes Meetup #3
Kubernetes no Governo Federal - Kubernetes Meetup #3Kubernetes no Governo Federal - Kubernetes Meetup #3
Kubernetes no Governo Federal - Kubernetes Meetup #3
 

Kürzlich hochgeladen

Kürzlich hochgeladen (8)

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 

Descobrindo o Nginx - Um servidor web de alta performance

  • 1. Descobrindo o Nginx Um servidor web de alta performance
  • 3. Все лучшее в России
  • 5. WTF nginx ● Web server e proxy reverso open source ● Para HTTP e e-mail ● Foco em – Performance – Baixo uso de memória – Alto desempenho
  • 6. 2-clause BSD-like license ● Faça o que quiser, não somos responsáveis por nada e inclua a informação da licença ao distribuir os fontes ou os binários ● http://www.tldrlegal.com ● http://nginx.org/LICENSE
  • 7. 11.48% da web em agosto/2012 http://netcraft.com
  • 9. C10k ● Utilizando Threads e Processos – Servindo uma página com 100KB – ~10s quando o cliente está limitado a 80kbps (10KB/s) – Com módulos carregados, pode ocupar ~1MB por cliente conectado – O que fazer com 1000 clientes ?
  • 10. Daniel Kegel ● “Manifesto” C10k ● C10k → Concurrent Ten Thousand Simultaneous Connections ● Status quo = Apache ● Bottleneck deixou de ser o hardware e passou a ser o Software ● http://www.kegel.com/c10k.html ● Renato Hirata: Otimizando Servidores Web de Alta Demanda (MsC Unicamp 2002)
  • 11. Igor Sysoev ● Natural do Cazaquistão (URSS) ● SysAdmin na Rambler ● Desenvolvimento de modulos do Apache – mod_accel – mod_deflate ● http://sysoev.ru
  • 13. nginx devel ● Iniciou em 2002 ● Primeira versão pública em Outubro de 2004 ● Considerado estável em 2007 ● Versão estável atual: 1.2.3 (07/08/2012) ● Todo em C (+zlib, PCRE e OpenSSL) ● http://www.nginx.org
  • 15. nginx X C10k ● Core pequeno + módulos estáticos ● Processo principal + processos workers ● Processo “cache loader” ● IO Assíncrona ● Bibliotecas de eventos – Kqueue, epoll, /dev/poll, select, poll, rt signals
  • 17. nginx OSs ● Linux ● FreeBSD, NetBSD, OpenBSD, Mac OS X ● Solaris ● AIX ● HP-UX ● Windows
  • 18. nginx main features ● HTTP, HTTPS, SPDY, SMTP, IMAP, POP3 ● Load balancer, cache, proxy reverso ● 1 milhão de conexões simultâneas por servidor ● 100K+ servidores virtuais por instância ● Suporte a compressão ● Serviço específico para conteúdo estático ● HTTP video streaming ● ~2.5Mb com 10.000 conexões idle
  • 19. nginx main features ● HTTP, FastCGI, SCGI, uwsgi, memcached ● Configuração com suporte a prefixos e regex ● SSL: TLSv1.1, TLSv1.2, SSL, SNI
  • 20. nginx main features ● Configuração de políticas por largura de banda, requisições ou conexões ● Filtro de requisições ● High availability: Active-Active, Active-Standby ● Atualização do binário sem parar de processas novas requisições (Live update)
  • 21. configuração ● /etc/nginx – Nginx.conf – Sites-avaliable – Sites-enabled ● Leitura sob demanda, sem cache – Permite configuração em tempo real
  • 23. nginx web ● http://www.nginx.org ● http://www.nginx.com ● http://trac.nginx.org ● http://wiki.nginx.org
  • 25. contatos ● ciello@gmail.com ● @gustavociello ● Facebook: Gustavo Ciello