SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
Sistemas Distribuidos
Universidade Federal de São Paulo
Rafael Capucho
Viny Cesar
Introdução ao servidor web NGINX
Pronúncia: "engine-ex"
É um servidor de Proxy Reverso para
os protocolos HTTP, HTTPS, SMTP,
POP3 e IMAP.
Um proxy reverso é um tipo de servidor
que repassa recursos para o cliente
proviniente de um ou mais servidores
atuando de maneira aglutinadora e transparente.
Proxy Reverso
Forward Proxy atua como intermediário para os clientes
associados, retornando para eles os recursos acessíveis
pela rede.
Enquanto o Forward Proxy
v
Além do mais pode trabalhar como:
Load Balancer (Balanceamento de carga) *
HTTP Cache
Web Server (servidor de entrada)
Balanceamento de carga é uma técnica para
distribuir a carga de trabalho entre dois ou mais
computadores, discos rígidos ou outros recursos,
a fim de otimizar a utilização de recursos,
maximizar o desempenho, minimizar o tempo de
resposta e evitar sobrecarga.
Balanceamento de carga
Balanceamento de carga
Balanceamento de carga
Até 15mil requisições por segundo pode ser usado
Load Balancer em software, alem disso é
necessário soluções mais robustas.
(Ou DNS Load Balancer)
Instalando NGINX no Ubuntu:
sudo apt-get install nginx
Gerenciando o Daemon:
sudo service nginx start
sudo service nginx stop
Marcando para iniciar ao iniciar:
update-rc.d nginx defaults
Criando a estrutura de 1 site:
sudo mkdir -p /var/www/example.com/public_html
sudo chown -R www-data:www-data /var/www/example.com/public_html
sudo chmod 755 /var/www
touch /var/www/example.com/public_html/index.html
Conteúdo: /var/www/example.com/public_html/index.html
<html>
<head>
<title>www.example.com</title>
</head>
<body>
<h1>Página de Exemplo</h1>
</body>
</html>
Copiando a estrutura padrão de configuração (default) para example.com:
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/example.com
Obs: Inicialmente colocamos as configurações dentro de Sites-Available
e depois quando quisermos ativar o site fazemos um link dentro de
Sites-Enable como veremos.
Editando as configurações:
server {
Listen 80;
root /var/www/example.com/public_html;
index index.html index.htm;
server_name example.com;
}
Ativando o site:
sudo ln -s /etc/nginx/sites-available/example.com
/etc/nginx/sites-enabled/example.com
sudo service nginx restart
Pronto, nosso servidor já pode receber conexões
através do dominio exemple.com
Configuração para Load Balancer
upstream backend {
server backend1.example.com;
server backend2.example.com;
server 192.168.0.105;
}
Server {
listen 80;
root /var/www/example.com/public_html;
index index.html index.htm;
server_name example.com;
location / {
proxy_pass http://backend;
}
}
Configuração para Load Balancer
upstream backend {
server backend1.example.com weight=1;
server backend2.example.com weight=2;
server 192.168.0.105 weight=4;
}
Server {
listen 80;
root /var/www/example.com/public_html;
index index.html index.htm;
server_name example.com;
location / {
proxy_pass http://backend;
}
}
Obs: Peso 2 recebe
2x mais que 1
Configuração para Load Balancer
upstream backend {
ip_hash;
server backend1.example.com;
server backend2.example.com;
server 192.168.0.105;
}
Server {
listen 80;
root /var/www/example.com/public_html;
index index.html index.htm;
server_name example.com;
location / {
proxy_pass http://backend;
}
}
Configuração para Load Balancer
upstream backend {
server backend1.example.com weight=1;
server backend2.example.com weight=2;
server 192.168.0.105 weight=4 max_fails=3 fail_timeout=15s;
}
Server {
listen 80;
root /var/www/example.com/public_html;
index index.html index.htm;
server_name example.com;
location / {
proxy_pass http://backend;
}
}
Configuração para Load Balancer
Dúvidas?!?!

Mais conteúdo relacionado

Mais procurados

Tirando o coelho da cartola: integrando sistemas com RabbitMQ
Tirando o coelho da cartola: integrando sistemas com RabbitMQTirando o coelho da cartola: integrando sistemas com RabbitMQ
Tirando o coelho da cartola: integrando sistemas com RabbitMQNelson Senna do Amaral
 
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
 
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
 
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
 
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
 
Escalabilidade e performance da infraestrutura Plone/Zope com CacheFU e Varnish
Escalabilidade e performance da infraestrutura Plone/Zope com CacheFU e VarnishEscalabilidade e performance da infraestrutura Plone/Zope com CacheFU e Varnish
Escalabilidade e performance da infraestrutura Plone/Zope com CacheFU e VarnishLucas Brasilino
 
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
 
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
 
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
 
Php além do LAMP
Php além do LAMPPhp além do LAMP
Php além do LAMPThiago Paes
 
QCon 2019 - Kubernetes Deepdive
QCon 2019 -  Kubernetes DeepdiveQCon 2019 -  Kubernetes Deepdive
QCon 2019 - Kubernetes DeepdiveRicardo Katz
 
Tunando o Wordpress para sites de alta visitação
Tunando o Wordpress para sites de alta visitaçãoTunando o Wordpress para sites de alta visitação
Tunando o Wordpress para sites de alta visitaçãoIsrael Cefrin
 
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-endModularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-endMario Guedes
 

Mais procurados (20)

Tirando o coelho da cartola: integrando sistemas com RabbitMQ
Tirando o coelho da cartola: integrando sistemas com RabbitMQTirando o coelho da cartola: integrando sistemas com RabbitMQ
Tirando o coelho da cartola: integrando sistemas com RabbitMQ
 
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
 
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
 
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
 
Rest workshop
Rest workshopRest workshop
Rest workshop
 
De A a Zabbix Devry Metrocamp
De A a Zabbix Devry MetrocampDe A a Zabbix Devry Metrocamp
De A a Zabbix Devry Metrocamp
 
Trabalho sobre Proxy
Trabalho sobre ProxyTrabalho sobre Proxy
Trabalho sobre Proxy
 
Servidores WEB
Servidores WEBServidores WEB
Servidores WEB
 
Escalabilidade e performance da infraestrutura Plone/Zope com CacheFU e Varnish
Escalabilidade e performance da infraestrutura Plone/Zope com CacheFU e VarnishEscalabilidade e performance da infraestrutura Plone/Zope com CacheFU e Varnish
Escalabilidade e performance da infraestrutura Plone/Zope com CacheFU e Varnish
 
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
 
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
 
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
 
Como funciona a internet
Como funciona a internetComo funciona a internet
Como funciona a internet
 
Php além do LAMP
Php além do LAMPPhp além do LAMP
Php além do LAMP
 
QCon 2019 - Kubernetes Deepdive
QCon 2019 -  Kubernetes DeepdiveQCon 2019 -  Kubernetes Deepdive
QCon 2019 - Kubernetes Deepdive
 
Curso de proxy
Curso de proxyCurso de proxy
Curso de proxy
 
Tunando o Wordpress para sites de alta visitação
Tunando o Wordpress para sites de alta visitaçãoTunando o Wordpress para sites de alta visitação
Tunando o Wordpress para sites de alta visitação
 
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-endModularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
 
Backup para MySQL
Backup para MySQLBackup para MySQL
Backup para MySQL
 

Semelhante a NGINX Introdução

Apresentação zend framework 2 parte 1
Apresentação zend framework 2   parte 1 Apresentação zend framework 2   parte 1
Apresentação zend framework 2 parte 1 Edgar Dantas
 
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 - NginxThiago Paes
 
Melhorando o desempenho do seu WordPress
Melhorando o desempenho do seu WordPressMelhorando o desempenho do seu WordPress
Melhorando o desempenho do seu WordPressJulian Fernandes
 
Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)elliando dias
 
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
 
Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory gigadrop
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPArlindo Santos
 
De Web Services RESTful a Aplicações Mashup
De Web Services RESTful a Aplicações MashupDe Web Services RESTful a Aplicações Mashup
De Web Services RESTful a Aplicações MashupWagner Roberto dos Santos
 
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
 
Linguagem PHP para principiantes
Linguagem PHP para principiantesLinguagem PHP para principiantes
Linguagem PHP para principiantesMarco Pinheiro
 

Semelhante a NGINX Introdução (20)

06 - Servidor Apache
06 - Servidor Apache06 - Servidor Apache
06 - Servidor Apache
 
Apache
ApacheApache
Apache
 
Apresentação zend framework 2 parte 1
Apresentação zend framework 2   parte 1 Apresentação zend framework 2   parte 1
Apresentação zend framework 2 parte 1
 
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
 
Servidor Web.pdf
Servidor Web.pdfServidor Web.pdf
Servidor Web.pdf
 
Python CGI
Python CGIPython CGI
Python CGI
 
Melhorando o desempenho do seu WordPress
Melhorando o desempenho do seu WordPressMelhorando o desempenho do seu WordPress
Melhorando o desempenho do seu WordPress
 
Squid proxy
Squid proxySquid proxy
Squid proxy
 
Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)
 
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
 
Apache htaccess
Apache htaccessApache htaccess
Apache htaccess
 
Aula 2
Aula 2Aula 2
Aula 2
 
Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory
 
Linux - Servidor Web Apache
Linux - Servidor Web ApacheLinux - Servidor Web Apache
Linux - Servidor Web Apache
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHP
 
De Web Services RESTful a Aplicações Mashup
De Web Services RESTful a Aplicações MashupDe Web Services RESTful a Aplicações Mashup
De Web Services RESTful a Aplicações Mashup
 
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]
 
Linguagem PHP para principiantes
Linguagem PHP para principiantesLinguagem PHP para principiantes
Linguagem PHP para principiantes
 
Cake Php
Cake PhpCake Php
Cake Php
 
Procergs php-seguro
Procergs php-seguroProcergs php-seguro
Procergs php-seguro
 

NGINX Introdução

  • 1. Sistemas Distribuidos Universidade Federal de São Paulo Rafael Capucho Viny Cesar Introdução ao servidor web NGINX
  • 3. É um servidor de Proxy Reverso para os protocolos HTTP, HTTPS, SMTP, POP3 e IMAP.
  • 4. Um proxy reverso é um tipo de servidor que repassa recursos para o cliente proviniente de um ou mais servidores atuando de maneira aglutinadora e transparente. Proxy Reverso
  • 5. Forward Proxy atua como intermediário para os clientes associados, retornando para eles os recursos acessíveis pela rede. Enquanto o Forward Proxy v
  • 6. Além do mais pode trabalhar como: Load Balancer (Balanceamento de carga) * HTTP Cache Web Server (servidor de entrada)
  • 7. Balanceamento de carga é uma técnica para distribuir a carga de trabalho entre dois ou mais computadores, discos rígidos ou outros recursos, a fim de otimizar a utilização de recursos, maximizar o desempenho, minimizar o tempo de resposta e evitar sobrecarga. Balanceamento de carga
  • 9. Balanceamento de carga Até 15mil requisições por segundo pode ser usado Load Balancer em software, alem disso é necessário soluções mais robustas. (Ou DNS Load Balancer)
  • 10. Instalando NGINX no Ubuntu: sudo apt-get install nginx
  • 11. Gerenciando o Daemon: sudo service nginx start sudo service nginx stop
  • 12. Marcando para iniciar ao iniciar: update-rc.d nginx defaults
  • 13. Criando a estrutura de 1 site: sudo mkdir -p /var/www/example.com/public_html sudo chown -R www-data:www-data /var/www/example.com/public_html sudo chmod 755 /var/www touch /var/www/example.com/public_html/index.html
  • 15. Copiando a estrutura padrão de configuração (default) para example.com: sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/example.com Obs: Inicialmente colocamos as configurações dentro de Sites-Available e depois quando quisermos ativar o site fazemos um link dentro de Sites-Enable como veremos.
  • 16. Editando as configurações: server { Listen 80; root /var/www/example.com/public_html; index index.html index.htm; server_name example.com; }
  • 17. Ativando o site: sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com sudo service nginx restart
  • 18. Pronto, nosso servidor já pode receber conexões através do dominio exemple.com
  • 19. Configuração para Load Balancer upstream backend { server backend1.example.com; server backend2.example.com; server 192.168.0.105; } Server { listen 80; root /var/www/example.com/public_html; index index.html index.htm; server_name example.com; location / { proxy_pass http://backend; } }
  • 20. Configuração para Load Balancer upstream backend { server backend1.example.com weight=1; server backend2.example.com weight=2; server 192.168.0.105 weight=4; } Server { listen 80; root /var/www/example.com/public_html; index index.html index.htm; server_name example.com; location / { proxy_pass http://backend; } } Obs: Peso 2 recebe 2x mais que 1
  • 21. Configuração para Load Balancer upstream backend { ip_hash; server backend1.example.com; server backend2.example.com; server 192.168.0.105; } Server { listen 80; root /var/www/example.com/public_html; index index.html index.htm; server_name example.com; location / { proxy_pass http://backend; } }
  • 22. Configuração para Load Balancer upstream backend { server backend1.example.com weight=1; server backend2.example.com weight=2; server 192.168.0.105 weight=4 max_fails=3 fail_timeout=15s; } Server { listen 80; root /var/www/example.com/public_html; index index.html index.htm; server_name example.com; location / { proxy_pass http://backend; } }
  • 23. Configuração para Load Balancer Dúvidas?!?!