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

Slides nginx

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Slides nginx

Sistemas DistribuidosUniversidade Federal de São Paulo

Rafael CapuchoViny Cesar

Introdução ao servidor web NGINX

Page 2: Slides nginx

Pronúncia: "engine-ex"

Page 3: Slides nginx

É um servidor de Proxy Reverso para

os protocolos HTTP, HTTPS, SMTP,

POP3 e IMAP.

Page 4: Slides nginx

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

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

Além do mais pode trabalhar como:

Load Balancer (Balanceamento de carga) *HTTP Cache

Web Server (servidor de entrada)

Page 7: Slides nginx

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

Balanceamento de carga

Page 9: Slides nginx

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

Instalando NGINX no Ubuntu:

sudo apt-get install nginx

Page 11: Slides nginx

Gerenciando o Daemon:

sudo service nginx start

sudo service nginx stop

Page 12: Slides nginx

Marcando para iniciar ao iniciar:

update-rc.d nginx defaults

Page 13: Slides nginx

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

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

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

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

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

Pronto, nosso servidor já pode receber conexões

através do dominio exemple.com

Page 19: Slides nginx

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

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

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

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

Configuração para Load Balancer

Dúvidas?!?!