SlideShare uma empresa Scribd logo
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

Mais conteúdo relacionado

Mais procurados

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
Rodrigo Zaccara
 
Servidor Proxy Squid
Servidor Proxy SquidServidor Proxy Squid
Servidor Proxy Squid
Frederico Madeira
 
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
Cavalcante Treinamentos
 
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
Thiago Paes
 
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
Thiago Paes
 
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
 
Slides nginx
Slides nginxSlides nginx
Slides nginx
Rafael Capucho
 
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
Emerson Macedo
 
Rest workshop
Rest workshopRest workshop
Rest workshop
Diogo Gomes
 
Performance Web com ASP.NET MVC
Performance Web com ASP.NET MVCPerformance Web com ASP.NET MVC
Performance Web com ASP.NET MVC
Rodolfo Fadino Junior
 
HTTP 2
HTTP 2HTTP 2
HTTP 2
Pedro Araujo
 
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
Roosevelt Nascimento Junior
 
Escalando Sites com Nginx
Escalando Sites com NginxEscalando Sites com Nginx
Escalando Sites com Nginx
Tiago Albineli Motta
 
Application Servers e Ruby
Application Servers e RubyApplication Servers e Ruby
Application Servers e Ruby
Rafael Soares
 
AWS 101 - VBronwBag Brasil
AWS 101 - VBronwBag BrasilAWS 101 - VBronwBag Brasil
AWS 101 - VBronwBag Brasil
Diego Veríssimo Lakatos
 
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
André Déo
 
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
Alexandre Gaigalas
 
L'esprit de l'escalier
L'esprit de l'escalierL'esprit de l'escalier
L'esprit de l'escalier
Gleicon Moraes
 
Apresentação MongoDB
Apresentação MongoDBApresentação MongoDB
Apresentação MongoDB
David de Lucca
 
De A a Zabbix Devry Metrocamp
De A a Zabbix Devry MetrocampDe A a Zabbix Devry Metrocamp
De A a Zabbix Devry Metrocamp
André Déo
 

Mais procurados (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
 

Semelhante a Descobrindo o Nginx - Um servidor web de alta performance

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
Marcel Nicolay
 
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
Fernando Ike
 
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
Paulo Fernandes
 
Tunando sua aplicação LNMP
Tunando sua aplicação LNMPTunando sua aplicação LNMP
Tunando sua aplicação LNMP
Leandro Mendes
 
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...
Jeronimo Zucco
 
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
Dell Technologies
 
Web seminario varnish
Web seminario varnishWeb seminario varnish
Web seminario varnish
Dell Technologies
 
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...
Jeronimo Zucco
 
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
Weverton Timoteo
 
Nginx, Apache e Varnish
Nginx, Apache e VarnishNginx, Apache e Varnish
Nginx, Apache e Varnish
Ricardo Martins ☁
 
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
 
Desenvolvimento web no Linux
Desenvolvimento web no LinuxDesenvolvimento web no Linux
Desenvolvimento web no Linux
Eduardo Rozario
 
Palestra de PHP
Palestra de PHPPalestra de PHP
Palestra de PHP
ledsifes
 
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
Eduardo Bohrer
 
Tuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedoresTuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedores
Douglas V. Pasqua
 
Python CGI
Python CGIPython 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]
Tiago Hillebrandt
 
AJAX
AJAXAJAX
Node js - Javascript Server Side
Node js - Javascript Server SideNode js - Javascript Server Side
Node js - Javascript Server Side
Gustavo Corrêa Alves
 
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
Ricardo Katz
 

Semelhante a 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
 

Último

Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 

Último (8)

Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 

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