SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler offline
NGiNX, o motor da sua aplicação Web
Ernani Azevedo
• O que é o NGiNX;
• A Web 2.0 e o futuro;
• O HTML5, e como isso muda a Web;
• Protocolo SPDY;
• Preparando servidores para grandes cargas;
• Servidores de aplicação, escolha a sua linguagem;
• Balanceamento de carga entre servidores;
• SSL em tudo, sem sobrecarregar sua aplicação;
• Conteúdo estático;
• Cache de conteúdo dinâmico;
• Perguntas e encerramento.
N G iN X , o m otor da sua aplicação W eb
R oteiro
N G iN X , o m otor da sua aplicação W eb
O que é o N G iN X
• O que é o NGiNX;
• A Web 2.0 e o futuro;
• O HTML5, e como isso muda a Web;
• Protocolo SPDY;
• Preparando servidores para grandes cargas;
• Servidores de aplicação, escolha a sua linguagem;
• Balanceamento de carga entre servidores;
• SSL em tudo, sem sobrecarregar sua aplicação;
• Conteúdo estático;
• Cache de conteúdo dinâmico;
• Perguntas e encerramento.
• Pronuncia-se “Engine X” (motor X);
• Distribuído sob licença BSD;
• Escrito por Igor Sysoev;
• Utilizado em grandes portais da Internet (17,82% dos top 1M);
• Servidor de alta performance e proxy reverso HTTP;
• Suporte a IMAP/POP3;
• 10 anos em 2014;
• Escrito tendo em mente quebrar a barreira C10K (http://kegel.com/c10k.html);
• Estrutura assíncrona de eventos;
• Baixo consumo de recursos (memória e CPU);
• Utilizado em diversos grandes sites, como Facebook, Netflix, Pinterest,
CloudFare, GitHub, WordPress.com, Thumblr, Instagram, Cnet, Time.com,
SoundCloud, Dropbox, MaxCDN, etc...
N G iN X , o m otor da sua aplicação W eb
O que é o N G iN X
N G iN X , o m otor da sua aplicação W eb
O que é o N G iN X
Fonte: Netcraft
http://news.netcraft.com/archives/2014/04/02/april-2014-web-server-survey.html
N G iN X , o m otor da sua aplicação W eb
O que é o N G iN X
Fonte: W3Techs
http://w3techs.com/technologies/cross/web_server/ranking
N G iN X , o m otor da sua aplicação W eb
O que é o N G iN X
Fonte: The Atlantic
http://www.theatlantic.com/technology/archive/2013/12/welcome-to-the-internet-of-thingies-615-of-web-traffic-is-not-human/282309/
N G iN X , o m otor da sua aplicação W eb
A W eb 2.0 e o futuro
• O que é o NGiNX;
• A Web 2.0 e o futuro;
• O HTML5, e como isso muda a Web;
• Protocolo SPDY;
• Preparando servidores para grandes cargas;
• Servidores de aplicação, escolha a sua linguagem;
• Balanceamento de carga entre servidores;
• SSL em tudo, sem sobrecarregar sua aplicação;
• Conteúdo estático;
• Cache de conteúdo dinâmico;
• Perguntas e encerramento.
• Navegadores web mais robustos;
• A era do JavaScript;
• O navegador como interface para todas aplicações;
• Serviços de streaming cada vez mais populares;
• Volume de tráfego cada vez maior, devido a banda larga;
• Compiladores C para web;
• Aplicações cada vez mais dependentes de requisições AJAX.
N G iN X , o m otor da sua aplicação W eb
A W eb 2.0 e o futuro
N G iN X , o m otor da sua aplicação W eb
O H T M L5, e com o isso m uda a W eb
• O que é o NGiNX;
• A Web 2.0 e o futuro;
• O HTML5, e como isso muda a Web;
• Protocolo SPDY;
• Preparando servidores para grandes cargas;
• Servidores de aplicação, escolha a sua linguagem;
• Balanceamento de carga entre servidores;
• SSL em tudo, sem sobrecarregar sua aplicação;
• Conteúdo estático;
• Cache de conteúdo dinâmico;
• Perguntas e encerramento.
• Uso massivo de multi mídia;
• WebSocket possibilitando aplicações P2P;
• Guarda de dados locais (local storage);
• Geo localização em massa.
N G iN X , o m otor da sua aplicação W eb
O H T M L5, e com o isso m uda a W eb
N G iN X , o m otor da sua aplicação W eb
P rotocolo S P D Y
• O que é o NGiNX;
• A Web 2.0 e o futuro;
• O HTML5, e como isso muda a Web;
• Protocolo SPDY;
• Preparando servidores para grandes cargas;
• Servidores de aplicação, escolha a sua linguagem;
• Balanceamento de carga entre servidores;
• SSL em tudo, sem sobrecarregar sua aplicação;
• Conteúdo estático;
• Cache de conteúdo dinâmico;
• Perguntas e encerramento.
• Pronuncia-se Speedy (veloz);
• Criado principalmente pela Google (marca registrada);
• Objetivo de reduzir a latência em páginas web;
• Reduz o número de conexões ativas com o servidor;
• Criptografia de dados utilizando TLS/SSL;
• Compressão dos dados (gzip ou deflate), incluindo cabeçalhos;
• Multiplexação do conteúdo;
• Suportado pelo Google Chrome e o Chromium, e utilizado para muitos serviços
da Google;
• Suportado pelo Firefox 11 e SeaMonkey 2.8, mas habilitado por padrão apenas
no Firefox 13 ou superior;
• Suportado pelo Opera 12.10;
• Suportado pelo Internet Explorer 11 (exceto para Windows 7).
N G iN X , o m otor da sua aplicação W eb
P rotocolo S P D Y
N G iN X , o m otor da sua aplicação W eb
P reparando o servidores para grandes cargas
• O que é o NGiNX;
• A Web 2.0 e o futuro;
• O HTML5, e como isso muda a Web;
• Protocolo SPDY;
• Preparando servidores para grandes cargas;
• Servidores de aplicação, escolha a sua linguagem;
• Balanceamento de carga entre servidores;
• SSL em tudo, sem sobrecarregar sua aplicação;
• Conteúdo estático;
• Cache de conteúdo dinâmico;
• Perguntas e encerramento.
N G iN X , o m otor da sua aplicação W eb
P reparando o servidores para grandes cargas
• Habilitar uso de eventos via epoll (Linux kernel 2.5.44 e glibc 2.3.2);
• No FreeBSD, utilizar kqueue;
• Habilitar workers para o número máximo de CPU's (veja o lscpu):
N G iN X , o m otor da sua aplicação W eb
P reparando o servidores para grandes cargas
• Alterar o limite de recursos de arquivos por worker para 100000;
• Alterar o limite de coneões por worker para 2048;
• Habilitar múltiplas conexões;
• Configuração básica para grandes cargas:
worker_processes 16;
worker_rlimit_nofile 100000;
events {
worker_connections 2048;
use epoll;
multi_accept on;
}
N G iN X , o m otor da sua aplicação W eb
P reparando o servidores para grandes cargas
• Habilitar compressão gzip no módulo HTTP;
• Podemos aumentar o tempo limite de keepalive, lembrando que conexões
inativas não consomem CPU e pouquíssima memória (e no máximo 200
requisições por conexão);
http {
keepalive_timeout 65;
keepalive_requests 200;
gzip on;
gzip_min_length 256;
gzip_comp_level 3;
gzip_types text/plain text/css
application/json application/x-javascript
text/html application/xml
application/xml+rss text/javascript;
default_type application/octet-stream;
include /etc/nginx/mime.types;
}
N G iN X , o m otor da sua aplicação W eb
P reparando o servidores para grandes cargas
• Habilitar cache de metadados no módulo HTTP;
• Esta configuração não possui parâmetro “on”, apesar de existir parâmetro “off”;
• Configuração básica de cache de metadados no módulo HTTP:
http {
open_file_cache max=10000 inactive=30s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
}
N G iN X , o m otor da sua aplicação W eb
P reparando o servidores para grandes cargas
• Habilitar reset para conexões inativas;
• Habilitar sendfile para otimizar envio de arquivos;
• Habilitar tcp_nopush (enviar cabeçalhos em apenas um pacote).
http {
reset_timedout_connection on;
sendfile on;
tcp_nopush on;
}
N G iN X , o m otor da sua aplicação W eb
P reparando o servidores para grandes cargas
• Tuning da pilha TCP no kernel do Linux, para suportar 100k conexões ativas ou
mais;
• Alterando o tempo de reciclagem de conexões TCP em Time Wait;
• Editar o arquivo /etc/sysctl.conf, alterando:
# Tuning geral de gigabit:
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
# Habilitar mais memória para a pilha TCP
# para suportar muitas (100k+) conexões
# ativas:
net.ipv4.tcp_mem = 50576 64768 98152
net.core.netdev_max_backlog = 2500
# Tuning da reciclagem Time Wait do TCP:
net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_fin_timeout=15
N G iN X , o m otor da sua aplicação W eb
S ervidores de aplicação, escolha a sua linguage
• O que é o NGiNX;
• A Web 2.0 e o futuro;
• O HTML5, e como isso muda a Web;
• Protocolo SPDY;
• Preparando servidores para grandes cargas;
• Servidores de aplicação, escolha a sua linguagem;
• Balanceamento de carga entre servidores;
• SSL em tudo, sem sobrecarregar sua aplicação;
• Conteúdo estático;
• Cache de conteúdo dinâmico;
• Perguntas e encerramento.
N G iN X , o m otor da sua aplicação W eb
S ervidores de aplicação, escolha a sua linguage
InternetInternet
Apache
PHP
InternetInternet
NGiNX
PHP-FPM
N G iN X , o m otor da sua aplicação W eb
S ervidores de aplicação, escolha a sua linguage
• Protocolo FastCGI:
– PHP-FPM;
– uWSGI (Python, Ruby, Perl, .Net);
• Protocolo proxy HTTP:
– Java;
– Ruby (mongrel);
– BOSH (XMPP over HTTP);
– Outros servidores HTTP.
N G iN X , o m otor da sua aplicação W eb
S ervidores de aplicação, escolha a sua linguage
• FastCGI, uma implementação similar ao CGI para processos persistentes;
• Controle de cabeçalhos e tratamento de erros;
• Exemplo de uso (sessão html da configuração do NGiNX):
location ~ [^/].php(/|$) {
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
# Via TCP/IP:
# fastcgi_pass 127.0.0.1:3100;
# Via UNIX Socket:
fastcgi unix:/var/run/php-fpm/php.sock;
}
N G iN X , o m otor da sua aplicação W eb
S ervidores de aplicação, escolha a sua linguage
• Proxy HTTP, possibilitando a integração com praticamente quaisquer
linguagem web;
• Exemplo de uso (sessão html da configuração do NGiNX):
location ~ ^/http-bind {
proxy_buffering off;
proxy_intercept_errors on;
tcp_nodelay on;
keepalive_timeout 55;
proxy_read_timeout 360;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_pass http://web1.local:8080;
}
N G iN X , o m otor da sua aplicação W eb
B alanceam ento de carga entre servidores
• O que é o NGiNX;
• A Web 2.0 e o futuro;
• O HTML5, e como isso muda a Web;
• Protocolo SPDY;
• Preparando servidores para grandes cargas;
• Servidores de aplicação, escolha a sua linguagem;
• Balanceamento de carga entre servidores;
• SSL em tudo, sem sobrecarregar sua aplicação;
• Conteúdo estático;
• Cache de conteúdo dinâmico;
• Perguntas e encerramento.
N G iN X , o m otor da sua aplicação W eb
B alanceam ento de carga entre servidores
InternetInternet
IPVS
InternetInternet
NGiNX
PHP-FPM PHP-FPM
Apache
PHP
Apache
PHP
N G iN X , o m otor da sua aplicação W eb
B alanceam ento de carga entre servidores
• Utilização de clusters com balanceamento de carga por Round Robin, com
possibilidade de uso de IP Hash;
• Pode ser misturado conexões TCP e UNIX Socket;
• Exemplo de uso:
upstream backend {
server web1.intra weight=5;
server web2.intra:8080;
server unix:/tmp/server3;
server backup1.intra:81 backup;
server backup2.intra:81 backup;
}
server {
location / {
proxy_pass http://backend;
}
}
N G iN X , o m otor da sua aplicação W eb
B alanceam ento de carga entre servidores
InternetInternet
NGiNX
PHP-FPM
Cache
Cluster 1
PHP-FPM
PHP-FPM
Cluster 2
PHP-FPM
PHP-FPM
PHP-FPM
PHP-FPM
Cluster 3
PHP-FPM
M
E
M
C
A
C
H
E
D
M
E
M
C
A
C
H
E
D
M
E
M
C
A
C
H
E
D
N G iN X , o m otor da sua aplicação W eb
S S L em tudo, sem sobrecarregar sua aplicação
• O que é o NGiNX;
• A Web 2.0 e o futuro;
• O HTML5, e como isso muda a Web;
• Protocolo SPDY;
• Preparando servidores para grandes cargas;
• Servidores de aplicação, escolha a sua linguagem;
• Balanceamento de carga entre servidores;
• SSL em tudo, sem sobrecarregar sua aplicação;
• Conteúdo estático;
• Cache de conteúdo dinâmico;
• Perguntas e encerramento.
N G iN X , o m otor da sua aplicação W eb
S S L em tudo, sem sobrecarregar sua aplicação
• Configuração de SSL extremamente simples;
• Desonera o servidor de aplicação, deixando o trabalho de criptografia para o
proxy web;
• Exemplo de uso:
server {
listen 10.0.0.1:443;
server_name intranet.local;
root /var/www/html;
index index.html index.htm;
ssl on;
ssl_certificate /tmp/intranet.crt;
ssl_certificate_key /tmp/intranet.key;
}
N G iN X , o m otor da sua aplicação W eb
C onteúdo estático
• O que é o NGiNX;
• A Web 2.0 e o futuro;
• O HTML5, e como isso muda a Web;
• Protocolo SPDY;
• Preparando servidores para grandes cargas;
• Servidores de aplicação, escolha a sua linguagem;
• Balanceamento de carga entre servidores;
• SSL em tudo, sem sobrecarregar sua aplicação;
• Conteúdo estático;
• Cache de conteúdo dinâmico;
• Perguntas e encerramento.
N G iN X , o m otor da sua aplicação W eb
C onteúdo estático
• Possibilidade de comprimir o conteúdo estático em disco para entrega em
deflate ou gzip;
• Desonera o servidor de aplicação, que não precisa servir conteúdo estático;
• Exemplo de compressão gzip:
http {
gzip on;
gzip_static on;
gzip_http_version 1.1;
gzip_min_length 1400;
gzip_vary on;
gzip_comp_level 9;
gzip_proxied any;
gzip_types text/plain text/css …;
gzip_buffers 16 8k;
gzip_disable "MSIE [1-6].(?!.*SV1)";
}
N G iN X , o m otor da sua aplicação W eb
C ache de conteúdo dinâm ico
• O que é o NGiNX;
• A Web 2.0 e o futuro;
• O HTML5, e como isso muda a Web;
• Protocolo SPDY;
• Preparando servidores para grandes cargas;
• Servidores de aplicação, escolha a sua linguagem;
• Balanceamento de carga entre servidores;
• SSL em tudo, sem sobrecarregar sua aplicação;
• Conteúdo estático;
• Cache de conteúdo dinâmico;
• Perguntas e encerramento.
N G iN X , o m otor da sua aplicação W eb
C ache de conteúdo dinâm ico
InternetInternet
NGiNX
PHP-FPM Cache
N G iN X , o m otor da sua aplicação W eb
C ache de conteúdo dinâm ico
InternetInternet
NGiNX
PHP-FPM Cache
PHP-FPM
Local
.css
.js
.html
.xml
.jpg
.gif
.mp3
...
}gzip -9 (.gz)
N G iN X , o m otor da sua aplicação W eb
P erguntas e encerram ento
• O que é o NGiNX;
• A Web 2.0 e o futuro;
• O HTML5, e como isso muda a Web;
• Protocolo SPDY;
• Preparando servidores para grandes cargas;
• Servidores de aplicação, escolha a sua linguagem;
• Balanceamento de carga entre servidores;
• SSL em tudo, sem sobrecarregar sua aplicação;
• Conteúdo estático;
• Cache de conteúdo dinâmico;
• Perguntas e encerramento.
N G iN X , o m otor da sua aplicação W eb
P erguntas e encerram ento
Perguntas?
N G iN X , o m otor da sua aplicação W eb
P erguntas e encerram ento
Obrigado!
Ernani Azevedo
ernaniaz@gmail.com
+55 51 92425885
http://www.intellinews.com.br/

Mais conteúdo relacionado

Mais procurados

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 12Alexandre Gaigalas
 
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-SPAndré Déo
 
Web Services (in portuguese)
Web Services (in portuguese)Web Services (in portuguese)
Web Services (in portuguese)Bruno Pedro
 
De A a Zabbix Devry Metrocamp
De A a Zabbix Devry MetrocampDe A a Zabbix Devry Metrocamp
De A a Zabbix Devry MetrocampAndré Déo
 
Tecnologia em Redes - Servidor WEB
Tecnologia em Redes - Servidor WEBTecnologia em Redes - Servidor WEB
Tecnologia em Redes - Servidor WEBelliando dias
 
Redes servidor web
Redes servidor webRedes servidor web
Redes servidor webMauro Duarte
 
Yaf - Um framework que roda sob uma extensão
Yaf - Um framework que roda sob uma extensãoYaf - Um framework que roda sob uma extensão
Yaf - Um framework que roda sob uma extensãoThiago Paes
 
Logs, pra que te quero! @ PHP Community Summit by locaweb 2017
Logs, pra que te quero! @ PHP Community Summit by locaweb 2017Logs, pra que te quero! @ PHP Community Summit by locaweb 2017
Logs, pra que te quero! @ PHP Community Summit by locaweb 2017Gabriel Machado
 
Apresentação MongoDB
Apresentação MongoDBApresentação MongoDB
Apresentação MongoDBDavid de Lucca
 
Meetup São Paulo, Maxscale Implementação e Casos de Uso
Meetup São Paulo, Maxscale Implementação e Casos de UsoMeetup São Paulo, Maxscale Implementação e Casos de Uso
Meetup São Paulo, Maxscale Implementação e Casos de UsoWagner Bianchi
 
Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019
Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019
Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019CLEYSSON LIMA
 
Apresentação - MongoDB
Apresentação - MongoDBApresentação - MongoDB
Apresentação - MongoDBJDSBD
 
Integrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONIntegrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONMario Guedes
 
Desenvolvemos para web?
Desenvolvemos para web?Desenvolvemos para web?
Desenvolvemos para web?Luis Vendrame
 

Mais procurados (20)

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
 
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
 
Web Services (in portuguese)
Web Services (in portuguese)Web Services (in portuguese)
Web Services (in portuguese)
 
De A a Zabbix Devry Metrocamp
De A a Zabbix Devry MetrocampDe A a Zabbix Devry Metrocamp
De A a Zabbix Devry Metrocamp
 
Tecnologia em Redes - Servidor WEB
Tecnologia em Redes - Servidor WEBTecnologia em Redes - Servidor WEB
Tecnologia em Redes - Servidor WEB
 
Redes servidor web
Redes servidor webRedes servidor web
Redes servidor web
 
Yaf - Um framework que roda sob uma extensão
Yaf - Um framework que roda sob uma extensãoYaf - Um framework que roda sob uma extensão
Yaf - Um framework que roda sob uma extensão
 
Rest workshop
Rest workshopRest workshop
Rest workshop
 
Logs, pra que te quero! @ PHP Community Summit by locaweb 2017
Logs, pra que te quero! @ PHP Community Summit by locaweb 2017Logs, pra que te quero! @ PHP Community Summit by locaweb 2017
Logs, pra que te quero! @ PHP Community Summit by locaweb 2017
 
Trabalho sobre Proxy
Trabalho sobre ProxyTrabalho sobre Proxy
Trabalho sobre Proxy
 
Mongo db slides
Mongo db slidesMongo db slides
Mongo db slides
 
Apresentação MongoDB
Apresentação MongoDBApresentação MongoDB
Apresentação MongoDB
 
Backup para MySQL
Backup para MySQLBackup para MySQL
Backup para MySQL
 
Meetup São Paulo, Maxscale Implementação e Casos de Uso
Meetup São Paulo, Maxscale Implementação e Casos de UsoMeetup São Paulo, Maxscale Implementação e Casos de Uso
Meetup São Paulo, Maxscale Implementação e Casos de Uso
 
Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019
Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019
Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019
 
GDB e Análise de Bugs
GDB e Análise de BugsGDB e Análise de Bugs
GDB e Análise de Bugs
 
Apresentação - MongoDB
Apresentação - MongoDBApresentação - MongoDB
Apresentação - MongoDB
 
Integrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONIntegrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSON
 
Desenvolvemos para web?
Desenvolvemos para web?Desenvolvemos para web?
Desenvolvemos para web?
 
Servidores WEB
Servidores WEBServidores WEB
Servidores WEB
 

Destaque

Load Balancing with Nginx
Load Balancing with NginxLoad Balancing with Nginx
Load Balancing with NginxMarian Marinov
 
Liliana rivas gonzalez_actividad1_mapa_c
Liliana rivas gonzalez_actividad1_mapa_cLiliana rivas gonzalez_actividad1_mapa_c
Liliana rivas gonzalez_actividad1_mapa_clilianarigo
 
Learn nginx in 90mins
Learn nginx in 90minsLearn nginx in 90mins
Learn nginx in 90minsLarry Cai
 
What's New in NGINX Plus R10?
What's New in NGINX Plus R10?What's New in NGINX Plus R10?
What's New in NGINX Plus R10?NGINX, Inc.
 
The 3 Models in the NGINX Microservices Reference Architecture
The 3 Models in the NGINX Microservices Reference ArchitectureThe 3 Models in the NGINX Microservices Reference Architecture
The 3 Models in the NGINX Microservices Reference ArchitectureNGINX, Inc.
 
Load Balancing Apps in Docker Swarm with NGINX
Load Balancing Apps in Docker Swarm with NGINXLoad Balancing Apps in Docker Swarm with NGINX
Load Balancing Apps in Docker Swarm with NGINXNGINX, Inc.
 
Extending functionality in nginx, with modules!
Extending functionality in nginx, with modules!Extending functionality in nginx, with modules!
Extending functionality in nginx, with modules!Trygve Vea
 
Nginx Internals
Nginx InternalsNginx Internals
Nginx InternalsJoshua Zhu
 

Destaque (9)

Load Balancing with Nginx
Load Balancing with NginxLoad Balancing with Nginx
Load Balancing with Nginx
 
Liliana rivas gonzalez_actividad1_mapa_c
Liliana rivas gonzalez_actividad1_mapa_cLiliana rivas gonzalez_actividad1_mapa_c
Liliana rivas gonzalez_actividad1_mapa_c
 
Nginx
NginxNginx
Nginx
 
Learn nginx in 90mins
Learn nginx in 90minsLearn nginx in 90mins
Learn nginx in 90mins
 
What's New in NGINX Plus R10?
What's New in NGINX Plus R10?What's New in NGINX Plus R10?
What's New in NGINX Plus R10?
 
The 3 Models in the NGINX Microservices Reference Architecture
The 3 Models in the NGINX Microservices Reference ArchitectureThe 3 Models in the NGINX Microservices Reference Architecture
The 3 Models in the NGINX Microservices Reference Architecture
 
Load Balancing Apps in Docker Swarm with NGINX
Load Balancing Apps in Docker Swarm with NGINXLoad Balancing Apps in Docker Swarm with NGINX
Load Balancing Apps in Docker Swarm with NGINX
 
Extending functionality in nginx, with modules!
Extending functionality in nginx, with modules!Extending functionality in nginx, with modules!
Extending functionality in nginx, with modules!
 
Nginx Internals
Nginx InternalsNginx Internals
Nginx Internals
 

Semelhante a NGiNX, o motor da sua aplicação web

Apresentação na PHP Conference Brasil 2012
Apresentação na PHP Conference Brasil 2012Apresentação na PHP Conference Brasil 2012
Apresentação na PHP Conference Brasil 2012Ariovaldo Carmona
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Valmir Justo
 
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...E-Commerce Brasil
 
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
 
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]Tiago Hillebrandt
 
4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdf4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdfRubenManhia
 
Escalando aplicações de grande volume na nuvem
Escalando aplicações de grande volume na nuvemEscalando aplicações de grande volume na nuvem
Escalando aplicações de grande volume na nuvemFernando Lemes
 
Apresentação sie ir-2014
Apresentação sie ir-2014Apresentação sie ir-2014
Apresentação sie ir-2014Renan Moreira
 
12 factor app. Melhor com Docker
12 factor app. Melhor com Docker12 factor app. Melhor com Docker
12 factor app. Melhor com DockerWellington Silva
 
Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013George Mendonça
 
Django Channels - Aplicações real time com Django
Django Channels - Aplicações real time com DjangoDjango Channels - Aplicações real time com Django
Django Channels - Aplicações real time com DjangoPaula Grangeiro
 
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações WebFrameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações WebJairo Junior
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento WebSérgio Souza Costa
 
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+ApacheDell Technologies
 
Light Talk: Introdução sobre Node.js
Light Talk: Introdução sobre Node.jsLight Talk: Introdução sobre Node.js
Light Talk: Introdução sobre Node.jsCaio Ribeiro Pereira
 

Semelhante a NGiNX, o motor da sua aplicação web (20)

Apresentação na PHP Conference Brasil 2012
Apresentação na PHP Conference Brasil 2012Apresentação na PHP Conference Brasil 2012
Apresentação na PHP Conference Brasil 2012
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
 
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...
 
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]
 
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
 
4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdf4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdf
 
Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0
 
Escalando aplicações de grande volume na nuvem
Escalando aplicações de grande volume na nuvemEscalando aplicações de grande volume na nuvem
Escalando aplicações de grande volume na nuvem
 
Apresentação sie ir-2014
Apresentação sie ir-2014Apresentação sie ir-2014
Apresentação sie ir-2014
 
12 factor app. Melhor com Docker
12 factor app. Melhor com Docker12 factor app. Melhor com Docker
12 factor app. Melhor com Docker
 
Spring boot
Spring bootSpring boot
Spring boot
 
Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013
 
Django Channels - Aplicações real time com Django
Django Channels - Aplicações real time com DjangoDjango Channels - Aplicações real time com Django
Django Channels - Aplicações real time com Django
 
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações WebFrameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento Web
 
Asa cpbr4
Asa cpbr4Asa cpbr4
Asa cpbr4
 
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
 
Light Talk: Introdução sobre Node.js
Light Talk: Introdução sobre Node.jsLight Talk: Introdução sobre Node.js
Light Talk: Introdução sobre Node.js
 
Qnax servidores dedicado no brasil
Qnax servidores dedicado no brasilQnax servidores dedicado no brasil
Qnax servidores dedicado no brasil
 
Workshop - Ionic + firebase
Workshop - Ionic + firebaseWorkshop - Ionic + firebase
Workshop - Ionic + firebase
 

NGiNX, o motor da sua aplicação web

  • 1. NGiNX, o motor da sua aplicação Web Ernani Azevedo
  • 2. • O que é o NGiNX; • A Web 2.0 e o futuro; • O HTML5, e como isso muda a Web; • Protocolo SPDY; • Preparando servidores para grandes cargas; • Servidores de aplicação, escolha a sua linguagem; • Balanceamento de carga entre servidores; • SSL em tudo, sem sobrecarregar sua aplicação; • Conteúdo estático; • Cache de conteúdo dinâmico; • Perguntas e encerramento. N G iN X , o m otor da sua aplicação W eb R oteiro
  • 3. N G iN X , o m otor da sua aplicação W eb O que é o N G iN X • O que é o NGiNX; • A Web 2.0 e o futuro; • O HTML5, e como isso muda a Web; • Protocolo SPDY; • Preparando servidores para grandes cargas; • Servidores de aplicação, escolha a sua linguagem; • Balanceamento de carga entre servidores; • SSL em tudo, sem sobrecarregar sua aplicação; • Conteúdo estático; • Cache de conteúdo dinâmico; • Perguntas e encerramento.
  • 4. • Pronuncia-se “Engine X” (motor X); • Distribuído sob licença BSD; • Escrito por Igor Sysoev; • Utilizado em grandes portais da Internet (17,82% dos top 1M); • Servidor de alta performance e proxy reverso HTTP; • Suporte a IMAP/POP3; • 10 anos em 2014; • Escrito tendo em mente quebrar a barreira C10K (http://kegel.com/c10k.html); • Estrutura assíncrona de eventos; • Baixo consumo de recursos (memória e CPU); • Utilizado em diversos grandes sites, como Facebook, Netflix, Pinterest, CloudFare, GitHub, WordPress.com, Thumblr, Instagram, Cnet, Time.com, SoundCloud, Dropbox, MaxCDN, etc... N G iN X , o m otor da sua aplicação W eb O que é o N G iN X
  • 5. N G iN X , o m otor da sua aplicação W eb O que é o N G iN X Fonte: Netcraft http://news.netcraft.com/archives/2014/04/02/april-2014-web-server-survey.html
  • 6. N G iN X , o m otor da sua aplicação W eb O que é o N G iN X Fonte: W3Techs http://w3techs.com/technologies/cross/web_server/ranking
  • 7. N G iN X , o m otor da sua aplicação W eb O que é o N G iN X Fonte: The Atlantic http://www.theatlantic.com/technology/archive/2013/12/welcome-to-the-internet-of-thingies-615-of-web-traffic-is-not-human/282309/
  • 8. N G iN X , o m otor da sua aplicação W eb A W eb 2.0 e o futuro • O que é o NGiNX; • A Web 2.0 e o futuro; • O HTML5, e como isso muda a Web; • Protocolo SPDY; • Preparando servidores para grandes cargas; • Servidores de aplicação, escolha a sua linguagem; • Balanceamento de carga entre servidores; • SSL em tudo, sem sobrecarregar sua aplicação; • Conteúdo estático; • Cache de conteúdo dinâmico; • Perguntas e encerramento.
  • 9. • Navegadores web mais robustos; • A era do JavaScript; • O navegador como interface para todas aplicações; • Serviços de streaming cada vez mais populares; • Volume de tráfego cada vez maior, devido a banda larga; • Compiladores C para web; • Aplicações cada vez mais dependentes de requisições AJAX. N G iN X , o m otor da sua aplicação W eb A W eb 2.0 e o futuro
  • 10. N G iN X , o m otor da sua aplicação W eb O H T M L5, e com o isso m uda a W eb • O que é o NGiNX; • A Web 2.0 e o futuro; • O HTML5, e como isso muda a Web; • Protocolo SPDY; • Preparando servidores para grandes cargas; • Servidores de aplicação, escolha a sua linguagem; • Balanceamento de carga entre servidores; • SSL em tudo, sem sobrecarregar sua aplicação; • Conteúdo estático; • Cache de conteúdo dinâmico; • Perguntas e encerramento.
  • 11. • Uso massivo de multi mídia; • WebSocket possibilitando aplicações P2P; • Guarda de dados locais (local storage); • Geo localização em massa. N G iN X , o m otor da sua aplicação W eb O H T M L5, e com o isso m uda a W eb
  • 12. N G iN X , o m otor da sua aplicação W eb P rotocolo S P D Y • O que é o NGiNX; • A Web 2.0 e o futuro; • O HTML5, e como isso muda a Web; • Protocolo SPDY; • Preparando servidores para grandes cargas; • Servidores de aplicação, escolha a sua linguagem; • Balanceamento de carga entre servidores; • SSL em tudo, sem sobrecarregar sua aplicação; • Conteúdo estático; • Cache de conteúdo dinâmico; • Perguntas e encerramento.
  • 13. • Pronuncia-se Speedy (veloz); • Criado principalmente pela Google (marca registrada); • Objetivo de reduzir a latência em páginas web; • Reduz o número de conexões ativas com o servidor; • Criptografia de dados utilizando TLS/SSL; • Compressão dos dados (gzip ou deflate), incluindo cabeçalhos; • Multiplexação do conteúdo; • Suportado pelo Google Chrome e o Chromium, e utilizado para muitos serviços da Google; • Suportado pelo Firefox 11 e SeaMonkey 2.8, mas habilitado por padrão apenas no Firefox 13 ou superior; • Suportado pelo Opera 12.10; • Suportado pelo Internet Explorer 11 (exceto para Windows 7). N G iN X , o m otor da sua aplicação W eb P rotocolo S P D Y
  • 14. N G iN X , o m otor da sua aplicação W eb P reparando o servidores para grandes cargas • O que é o NGiNX; • A Web 2.0 e o futuro; • O HTML5, e como isso muda a Web; • Protocolo SPDY; • Preparando servidores para grandes cargas; • Servidores de aplicação, escolha a sua linguagem; • Balanceamento de carga entre servidores; • SSL em tudo, sem sobrecarregar sua aplicação; • Conteúdo estático; • Cache de conteúdo dinâmico; • Perguntas e encerramento.
  • 15. N G iN X , o m otor da sua aplicação W eb P reparando o servidores para grandes cargas • Habilitar uso de eventos via epoll (Linux kernel 2.5.44 e glibc 2.3.2); • No FreeBSD, utilizar kqueue; • Habilitar workers para o número máximo de CPU's (veja o lscpu):
  • 16. N G iN X , o m otor da sua aplicação W eb P reparando o servidores para grandes cargas • Alterar o limite de recursos de arquivos por worker para 100000; • Alterar o limite de coneões por worker para 2048; • Habilitar múltiplas conexões; • Configuração básica para grandes cargas: worker_processes 16; worker_rlimit_nofile 100000; events { worker_connections 2048; use epoll; multi_accept on; }
  • 17. N G iN X , o m otor da sua aplicação W eb P reparando o servidores para grandes cargas • Habilitar compressão gzip no módulo HTTP; • Podemos aumentar o tempo limite de keepalive, lembrando que conexões inativas não consomem CPU e pouquíssima memória (e no máximo 200 requisições por conexão); http { keepalive_timeout 65; keepalive_requests 200; gzip on; gzip_min_length 256; gzip_comp_level 3; gzip_types text/plain text/css application/json application/x-javascript text/html application/xml application/xml+rss text/javascript; default_type application/octet-stream; include /etc/nginx/mime.types; }
  • 18. N G iN X , o m otor da sua aplicação W eb P reparando o servidores para grandes cargas • Habilitar cache de metadados no módulo HTTP; • Esta configuração não possui parâmetro “on”, apesar de existir parâmetro “off”; • Configuração básica de cache de metadados no módulo HTTP: http { open_file_cache max=10000 inactive=30s; open_file_cache_valid 60s; open_file_cache_min_uses 2; open_file_cache_errors on; }
  • 19. N G iN X , o m otor da sua aplicação W eb P reparando o servidores para grandes cargas • Habilitar reset para conexões inativas; • Habilitar sendfile para otimizar envio de arquivos; • Habilitar tcp_nopush (enviar cabeçalhos em apenas um pacote). http { reset_timedout_connection on; sendfile on; tcp_nopush on; }
  • 20. N G iN X , o m otor da sua aplicação W eb P reparando o servidores para grandes cargas • Tuning da pilha TCP no kernel do Linux, para suportar 100k conexões ativas ou mais; • Alterando o tempo de reciclagem de conexões TCP em Time Wait; • Editar o arquivo /etc/sysctl.conf, alterando: # Tuning geral de gigabit: net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216 # Habilitar mais memória para a pilha TCP # para suportar muitas (100k+) conexões # ativas: net.ipv4.tcp_mem = 50576 64768 98152 net.core.netdev_max_backlog = 2500 # Tuning da reciclagem Time Wait do TCP: net.ipv4.tcp_tw_recycle=1 net.ipv4.tcp_fin_timeout=15
  • 21. N G iN X , o m otor da sua aplicação W eb S ervidores de aplicação, escolha a sua linguage • O que é o NGiNX; • A Web 2.0 e o futuro; • O HTML5, e como isso muda a Web; • Protocolo SPDY; • Preparando servidores para grandes cargas; • Servidores de aplicação, escolha a sua linguagem; • Balanceamento de carga entre servidores; • SSL em tudo, sem sobrecarregar sua aplicação; • Conteúdo estático; • Cache de conteúdo dinâmico; • Perguntas e encerramento.
  • 22. N G iN X , o m otor da sua aplicação W eb S ervidores de aplicação, escolha a sua linguage InternetInternet Apache PHP InternetInternet NGiNX PHP-FPM
  • 23. N G iN X , o m otor da sua aplicação W eb S ervidores de aplicação, escolha a sua linguage • Protocolo FastCGI: – PHP-FPM; – uWSGI (Python, Ruby, Perl, .Net); • Protocolo proxy HTTP: – Java; – Ruby (mongrel); – BOSH (XMPP over HTTP); – Outros servidores HTTP.
  • 24. N G iN X , o m otor da sua aplicação W eb S ervidores de aplicação, escolha a sua linguage • FastCGI, uma implementação similar ao CGI para processos persistentes; • Controle de cabeçalhos e tratamento de erros; • Exemplo de uso (sessão html da configuração do NGiNX): location ~ [^/].php(/|$) { fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_index index.php; include fastcgi_params; # Via TCP/IP: # fastcgi_pass 127.0.0.1:3100; # Via UNIX Socket: fastcgi unix:/var/run/php-fpm/php.sock; }
  • 25. N G iN X , o m otor da sua aplicação W eb S ervidores de aplicação, escolha a sua linguage • Proxy HTTP, possibilitando a integração com praticamente quaisquer linguagem web; • Exemplo de uso (sessão html da configuração do NGiNX): location ~ ^/http-bind { proxy_buffering off; proxy_intercept_errors on; tcp_nodelay on; keepalive_timeout 55; proxy_read_timeout 360; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://web1.local:8080; }
  • 26. N G iN X , o m otor da sua aplicação W eb B alanceam ento de carga entre servidores • O que é o NGiNX; • A Web 2.0 e o futuro; • O HTML5, e como isso muda a Web; • Protocolo SPDY; • Preparando servidores para grandes cargas; • Servidores de aplicação, escolha a sua linguagem; • Balanceamento de carga entre servidores; • SSL em tudo, sem sobrecarregar sua aplicação; • Conteúdo estático; • Cache de conteúdo dinâmico; • Perguntas e encerramento.
  • 27. N G iN X , o m otor da sua aplicação W eb B alanceam ento de carga entre servidores InternetInternet IPVS InternetInternet NGiNX PHP-FPM PHP-FPM Apache PHP Apache PHP
  • 28. N G iN X , o m otor da sua aplicação W eb B alanceam ento de carga entre servidores • Utilização de clusters com balanceamento de carga por Round Robin, com possibilidade de uso de IP Hash; • Pode ser misturado conexões TCP e UNIX Socket; • Exemplo de uso: upstream backend { server web1.intra weight=5; server web2.intra:8080; server unix:/tmp/server3; server backup1.intra:81 backup; server backup2.intra:81 backup; } server { location / { proxy_pass http://backend; } }
  • 29. N G iN X , o m otor da sua aplicação W eb B alanceam ento de carga entre servidores InternetInternet NGiNX PHP-FPM Cache Cluster 1 PHP-FPM PHP-FPM Cluster 2 PHP-FPM PHP-FPM PHP-FPM PHP-FPM Cluster 3 PHP-FPM M E M C A C H E D M E M C A C H E D M E M C A C H E D
  • 30. N G iN X , o m otor da sua aplicação W eb S S L em tudo, sem sobrecarregar sua aplicação • O que é o NGiNX; • A Web 2.0 e o futuro; • O HTML5, e como isso muda a Web; • Protocolo SPDY; • Preparando servidores para grandes cargas; • Servidores de aplicação, escolha a sua linguagem; • Balanceamento de carga entre servidores; • SSL em tudo, sem sobrecarregar sua aplicação; • Conteúdo estático; • Cache de conteúdo dinâmico; • Perguntas e encerramento.
  • 31. N G iN X , o m otor da sua aplicação W eb S S L em tudo, sem sobrecarregar sua aplicação • Configuração de SSL extremamente simples; • Desonera o servidor de aplicação, deixando o trabalho de criptografia para o proxy web; • Exemplo de uso: server { listen 10.0.0.1:443; server_name intranet.local; root /var/www/html; index index.html index.htm; ssl on; ssl_certificate /tmp/intranet.crt; ssl_certificate_key /tmp/intranet.key; }
  • 32. N G iN X , o m otor da sua aplicação W eb C onteúdo estático • O que é o NGiNX; • A Web 2.0 e o futuro; • O HTML5, e como isso muda a Web; • Protocolo SPDY; • Preparando servidores para grandes cargas; • Servidores de aplicação, escolha a sua linguagem; • Balanceamento de carga entre servidores; • SSL em tudo, sem sobrecarregar sua aplicação; • Conteúdo estático; • Cache de conteúdo dinâmico; • Perguntas e encerramento.
  • 33. N G iN X , o m otor da sua aplicação W eb C onteúdo estático • Possibilidade de comprimir o conteúdo estático em disco para entrega em deflate ou gzip; • Desonera o servidor de aplicação, que não precisa servir conteúdo estático; • Exemplo de compressão gzip: http { gzip on; gzip_static on; gzip_http_version 1.1; gzip_min_length 1400; gzip_vary on; gzip_comp_level 9; gzip_proxied any; gzip_types text/plain text/css …; gzip_buffers 16 8k; gzip_disable "MSIE [1-6].(?!.*SV1)"; }
  • 34. N G iN X , o m otor da sua aplicação W eb C ache de conteúdo dinâm ico • O que é o NGiNX; • A Web 2.0 e o futuro; • O HTML5, e como isso muda a Web; • Protocolo SPDY; • Preparando servidores para grandes cargas; • Servidores de aplicação, escolha a sua linguagem; • Balanceamento de carga entre servidores; • SSL em tudo, sem sobrecarregar sua aplicação; • Conteúdo estático; • Cache de conteúdo dinâmico; • Perguntas e encerramento.
  • 35. N G iN X , o m otor da sua aplicação W eb C ache de conteúdo dinâm ico InternetInternet NGiNX PHP-FPM Cache
  • 36. N G iN X , o m otor da sua aplicação W eb C ache de conteúdo dinâm ico InternetInternet NGiNX PHP-FPM Cache PHP-FPM Local .css .js .html .xml .jpg .gif .mp3 ... }gzip -9 (.gz)
  • 37. N G iN X , o m otor da sua aplicação W eb P erguntas e encerram ento • O que é o NGiNX; • A Web 2.0 e o futuro; • O HTML5, e como isso muda a Web; • Protocolo SPDY; • Preparando servidores para grandes cargas; • Servidores de aplicação, escolha a sua linguagem; • Balanceamento de carga entre servidores; • SSL em tudo, sem sobrecarregar sua aplicação; • Conteúdo estático; • Cache de conteúdo dinâmico; • Perguntas e encerramento.
  • 38. N G iN X , o m otor da sua aplicação W eb P erguntas e encerram ento Perguntas?
  • 39. N G iN X , o m otor da sua aplicação W eb P erguntas e encerram ento Obrigado! Ernani Azevedo ernaniaz@gmail.com +55 51 92425885 http://www.intellinews.com.br/