NGiNX, o motor da sua aplicação Web. Ernani Azevedo



Documentos relacionados
Web mais rápida. O rápido e prático servidor web Nginx é fácil de configurar e estender. por Jeremy Garcia

Apache + Módulo Deflate = Economia de Banda

HTTP. passado, presente e futuro.

Implementação de Web Services em Projetos de LabVIEW

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013

Criação de um Ambiente Web de Alto Desempenho para o Portal do CEULP/ULBRA

CONHECIMENTOS ESPECÍFICOS TÉCNICO DE LABORATÓRIO / ÁREA INFORMÁTICA

Aula 14 Serviços Internet (Servidor Web Apache)

Linux - Servidor de Redes

rumo ao HTTP 2.0 o que vem por aí e o que você pode utilizar já com SPDY

INTRODUÇÃO À OTIMIZAÇÃO

Winconnection 6. Internet Gateway

APLICAÇÕES E SERVIÇOS WEB

1.264 Lição 11. Fundamentos da Web

Balanceamento de carga em GNU/Linux

1º Seminário de Software Livre Tchelinux Software Livre: leve adiante esta idéia. Soluções de Web Caching e Web Acceleration

MANUAL DE INSTALAÇÃO E PROGRAMAÇÃO CONVERSOR - IP / USB / SERIAL RV1

Laboratório de Redes de Computadores e Sistemas Operacionais

Prof. Romulo Fagundes Cantanhede. Node.JS. O poder do JavaScript do lado do Servidor

ServerAdmin - Se o sistema detectar algo de anômalo, um mail será enviado a bazar@projeointegador.

Wireshark. Captura de Protocolos da camada de aplicação. Maicon de Vargas Pereira

Sistemas Operacionais Livres. Servidor Web Apache

Tudo o que Você Sempre Quis Saber Sobre Linguagens de Programação* (*Mas Tinha Medo de Perguntar) Diego Padilha Rubert FACOM

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Existe um limite dado pelo administrador da Rede para que ele não armazene tudo.

Documentação - Software Público Brasileiro (SPB)

Redes de Computadores Aula 3

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

XDR. Solução para Big Data.

Breve introdução a User Dir e Senhas no Apache Uma abordagem prática (aka crash course on User Dir and Directory Authentication on Apache)

@sergio_caelum sergiolopes.org

Apache + PHP + MySQL

IP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc.

Capacitação IPv6.br. Serviços em IPv6. Serviços rev

Uma poderosa ferramenta de monitoramento. Madson Santos - madson@pop-pi.rnp.br Técnico de Operação e Manutenção do PoP-PI/RNP

Plataforma de vídeos UOLMais

World Wide Web e Aplicações

Marcus Grando

Pré-Requisitos do Software Themis Pré-Requisitos do Software Themis

Prof. Samuel Henrique Bucke Brito

SIMEC Sistema Integrado de Planejamento, Orçamento e Finanças

Integração entre o IBM HTTP SERVER, APACHE WEB Server e IBM Websphere Application Server

Transferindo a carga da autenticação remota dos servidores

Web. Até a década de 1990, a Internet era utilizada. por pesquisadores, acadêmicos e universitários, para troca de arquivos e para correio eletrônico.

OFICINA I UNISINOS 2013/1 PROF. PAULO H. CAZAROTTO

PROGRAMAÇÃO PARA INTERNET RICA RICH INTERNET APPLICATIONS

Configurando o IIS no Server 2003

Documentação Symom. Agente de Monitoração na Plataforma Windows

Via Prática Firewall Box Gateway O acesso à Internet

OURO MODERNO Web Designer APOSTILA DE EXEMPLO. (Esta é só uma reprodução parcial do conteúdo)

Universidade Federal do Espírito Santo CCA UFES. Centro de Ciências Agrárias CCA UFES Departamento de Computação. Programação WEB

Curso de Aprendizado Industrial Desenvolvedor WEB

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Cap 03 - Camada de Aplicação Internet (Kurose)

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Website Joomla! VirtueMart Profissional. Espaço em disco* 300Mb 600Mb 800Mb. Tráfego de dados** 5Gb 10Gb 15Gb

Aplicação Prática de Lua para Web

PHP: Cookies e Sessões

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

LABORATÓRIO DE INTERCONEXÃO DE REDES DE COMPUTADORES. SERVIÇOS ADICIONAIS: Conceituação, Instalação e Configuração

Alto Desempenho do WP com LiteSpeed WebServer. Por J. Maurício V. L. Júnior

Requisitos de Sistema Impressão Comerciale Editorial

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Problemas detectados

Instalação Apache + MySQL + PHPMyAdmin CentOS

Aulas Práticas. Implementação de um Proxy HTTP. O que é um proxy?

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

Senha Admin. Nessa tela, você poderá trocar a senha do administrador para obter acesso ao NSControl. Inicialização

Meu site Plone está lento. O que fazer? Fabiano Weimar dos Santos xiru@xiru.org

Conteúdo Programático de PHP

Instalando e Atualizando a Solução Arquivos de Instalação Instalação do Servidor de Aplicação Instalação JDK...

Programação para Internet Flávio de Oliveira Silva, M.Sc.

Projeto Integrador Programação para Internet


CURSO EFA DE TÉCNICO DE INFORMÁTICA E SISTEMAS. Módulo 788- Administração de Servidores Web. Ano letivo Docente: Ana Batista

Instalar o MarkVision

Programação Web Prof. Wladimir

Kemp LoadMaster Guia Prático

Redes de Computadores

Requisitos de Sistema Impressão Comercial e Editorial

Segurança da Informação. Prof. Gleison Batista de Sousa

Piwik Uma alternativa livre ao Google Analytics

Requisitos de Sistema Impressão Comercial e Editorial

MANDRIVA CONECTIVA LINUX - ADMINISTRAÇÃO DE SISTEMAS E REDES

Otimização de infraestrutura. de websites. Fabiano Weimar dos Santos

Capítulo 7. Hyper Text Transfer Protocol (HTTP). Serviço Apache. - Protocolo HTTP - Sessão HTTP - Configuração do serviço Apache

Hyper Text Transfer Protocol (HTTP) ADI HTTP 1/18

Requisitos de Sistema Impressão Comercial e Editorial

XDOC. Solução otimizada para armazenamento e recuperação de documentos

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

CONSULTA PÚBLICA Nº 003/2015

HYPERTEXT TRANSFER PROTOCOL

6 PLANEJAMENTO DE SI 6.1 Planejamento de Segurança da Informação O planejamento em S.I é algo crucial para que haja o bom funcionamento de uma

UM NOVO CONCEITO EM AUTOMAÇÃO. Série Ponto

Conteúdo do pacote de 03 cursos hands-on

Requisitos de Sistema Impressão Comerciale Editorial

Transcrição:

NGiNX, o motor da sua aplicação Web Ernani Azevedo

R o te iro 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.

O q u e é 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.

O q u e é o N G in X 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...

O q u e é o N G in X Fonte: Netcraft http://news.netcraft.com/archives/2014/04/02/april-2014-web-server-survey.html

O q u e é o N G in X Fonte: W3Techs http://w3techs.com/technologies/cross/web_server/ranking

O q u e é 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/

A W e b 2.0 e o fu tu ro 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.

A W e b 2.0 e o fu tu ro 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.

O H T M L 5, e c o m o is s o m u d a a W e b 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.

O H T M L 5, e c o m o is s o m u d a a W e b Uso massivo de multi mídia; WebSocket possibilitando aplicações P2P; Guarda de dados locais (local storage); Geo localização em massa.

P ro to c o lo 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.

P ro to c o lo S P D Y 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 W indows 7).

P re p a ra n d o o s e rv id o re s p a ra g ra n d e s c a rg a s 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.

P re p a ra n d o o s e rv id o re s p a ra g ra n d e s c a rg a s 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):

P re p a ra n d o o s e rv id o re s p a ra g ra n d e s c a rg a s 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; }

P re p a ra n d o o s e rv id o re s p a ra g ra n d e s c a rg a s 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; }

P re p a ra n d o o s e rv id o re s p a ra g ra n d e s c a rg a s 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; }

P re p a ra n d o o s e rv id o re s p a ra g ra n d e s c a rg a s 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; }

P re p a ra n d o o s e rv id o re s p a ra g ra n d e s c a rg a s 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 net.core.rmem_max net.core.wmem_max net.ipv4.tcp_rmem net.ipv4.tcp_wmem gigabit: = 16777216 = 16777216 = 4096 87380 16777216 = 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

S e rv id o re s d e a p lic a ç ã o, e s c o lh a a s u a lin g u a g e 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.

S e rv id o re s d e a p lic a ç ã o, e s c o lh a a s u a lin g u a g e Internet Internet Internet Internet Apache PHP NGiNX PHP-FPM

S e rv id o re s d e a p lic a ç ã o, e s c o lh a a s u a lin g u a g e Protocolo FastCGI: PHP-FPM; uw SGI (Python, Ruby, Perl,.Net); Protocolo proxy HTTP: Java; Ruby (mongrel); BOSH (XMPP over HTTP); Outros servidores HTTP.

S e rv id o re s d e a p lic a ç ã o, e s c o lh a a s u a lin g u a g e 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; }

S e rv id o re s d e a p lic a ç ã o, e s c o lh a a s u a lin g u a g e 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;

B a la n c e a m e n to d e c a rg a e n tre s e rv id o re s 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.

B a la n c e a m e n to d e c a rg a e n tre s e rv id o re s Apache PHP Internet Internet Internet Internet IPVS NGiNX Apache PHP PHP-FPM PHP-FPM

B a la n c e a m e n to d e c a rg a e n tre s e rv id o re s 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 server server server backend { web1.intra weight=5; web2.intra:8080; unix:/tmp/server3; server backup1.intra:81 backup; server backup2.intra:81 backup; } server { location / { proxy_pass http://backend; } }

B a la n c e a m e n to d e c a rg a e n tre s e rv id o re s Internet Internet NGiNX Cluster 1 PHP-FPM PHP-FPM Cache Cluster 2 M E M C A C H E D PHP-FPM PHP-FPM PHP-FPM PHP-FPM Cluster 3 M E M C A C H E D PHP-FPM PHP-FPM M E M C A C H E D

S S L e m tu d o, s e m s o b re c a rre g a r s u a a p lic a ç ã 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.

S S L e m tu d o, s e m s o b re c a rre g a r s u a a p lic a ç ã 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;

C o n te ú d o e s tá tic 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.

C o n te ú d o e s tá tic o 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)"; }

C a c h e d e c o n te ú d o d in â m ic 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.

C a c h e d e c o n te ú d o d in â m ic o Internet Internet NGiNX PHP-FPM Cache

C a c h e d e c o n te ú d o d in â m ic o Internet Internet NGiNX PHP-FPM PHP-FPM Cache Local }.css.js.html.xml.jpg.gif.mp3... gzip -9 (.gz)

P e rg u n ta s e e n c e rra m e n to 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.

P e rg u n ta s e e n c e rra m e n to Perguntas?

P e rg u n ta s e e n c e rra m e n to Obrigado! Ernani Azevedo ernaniaz@gmail.com +55 51 92425885 http://www.intellinews.com.br/