23
Sistemas Distribuidos Universidade Federal de São Paulo Rafael Capucho Viny Cesar Introdução ao servidor web NGINX

Slides NGINX - Sistemas Distribuídos

Embed Size (px)

DESCRIPTION

Material sobre NGINX para a disciplina de Sistemas Distribuídos.

Citation preview

Page 1: Slides NGINX - Sistemas Distribuídos

Sistemas DistribuidosUniversidade Federal de São Paulo

Rafael CapuchoViny Cesar

Introdução ao servidor web NGINX

Page 2: Slides NGINX - Sistemas Distribuídos

Pronúncia: "engine-ex"

Page 3: Slides NGINX - Sistemas Distribuídos

É um servidor de Proxy Reverso para

os protocolos HTTP, HTTPS, SMTP,

POP3 e IMAP.

Page 4: Slides NGINX - Sistemas Distribuídos

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

Page 5: Slides NGINX - Sistemas Distribuídos

Forward Proxy atua como intermediário para os clientes

associados, retornando para eles os recursos acessíveis

pela rede.

Enquanto o Forward Proxy

v

Page 6: Slides NGINX - Sistemas Distribuídos

Além do mais pode trabalhar como:

Load Balancer (Balanceamento de carga) *HTTP Cache

Web Server (servidor de entrada)

Page 7: Slides NGINX - Sistemas Distribuídos

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

Page 8: Slides NGINX - Sistemas Distribuídos

Balanceamento de carga

Page 9: Slides NGINX - Sistemas Distribuídos

Balanceamento de cargaAté 15mil requisições por segundo pode ser usado

Load Balancer em software, alem disso é

necessário soluções mais robustas.(Ou DNS Load Balancer)

Page 10: Slides NGINX - Sistemas Distribuídos

Instalando NGINX no Ubuntu:

sudo apt-get install nginx

Page 11: Slides NGINX - Sistemas Distribuídos

Gerenciando o Daemon:

sudo service nginx start

sudo service nginx stop

Page 12: Slides NGINX - Sistemas Distribuídos

Marcando para iniciar ao iniciar:

update-rc.d nginx defaults

Page 13: Slides NGINX - Sistemas Distribuídos

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

Page 14: Slides NGINX - Sistemas Distribuídos

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>

Page 15: Slides NGINX - Sistemas Distribuídos

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.

Page 16: Slides NGINX - Sistemas Distribuídos

Editando as configurações:

server {

Listen 80;

root /var/www/example.com/public_html;

index index.html index.htm;

server_name example.com;

}

Page 17: Slides NGINX - Sistemas Distribuídos

Ativando o site:

sudo ln -s /etc/nginx/sites-available/example.com

/etc/nginx/sites-enabled/example.com

sudo service nginx restart

Page 18: Slides NGINX - Sistemas Distribuídos

Pronto, nosso servidor já pode receber conexões

através do dominio exemple.com

Page 19: Slides NGINX - Sistemas Distribuídos

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; }

}

Page 20: Slides NGINX - Sistemas Distribuídos

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 recebe2x mais que 1

Page 21: Slides NGINX - Sistemas Distribuídos

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; }

}

Page 22: Slides NGINX - Sistemas Distribuídos

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; }

}

Page 23: Slides NGINX - Sistemas Distribuídos

Configuração para Load Balancer

Dúvidas?!?!