Proxy Reverso Utilizando Servidor Nginx com LoadBalance.

x0001 ——— Homologação do Sistema
x0002 ——— Instalando o Nginx
x0003 ——— Configurando o Nginx

x0001 – Homologação do Sistema.

Sistema Operacional Utilizado:

CentOS Linux release 7.3.1611 (Core)

Regras do firewall foram realizadas utilizando o firewall-cmd:


firewall-cmd --zone=public --add-port=80/tcp –permanent
firewall-cmd –reload
x0002 – Instalando o Nginx:

Antes de Instalar o Nginx de fato é necessário instalar o EPEL, que são alguns pacotes extras para o repositório:

yum install epel-release

Agora sim podemos instalar o Nginx propriamente Dito:

yum install nginx
x0003 – Configurando o Nginx

Os arquivos de configuração do Nginx ficam no diretório abaixo:

/etc/nginx/*

O arquivo principal é:

/etc/nginx/nginx.conf

É nele que você vai passar a maior parte do raiva tempo, então com seu editor de texto preferido que eu espero que seja o VIM, vamos começar a alterar os byte desse arquivo:


cd /etc/nginx/
vim /etc/nginx/nginx.conf

Como esse é um tutorial e tutoriais são basicamente passos que você tem que seguir sem nem ao menos saber porquê, acredito que é importante eu realmente focar no que importa que é configurar o Nginx, então não vou explicar o que você está fazendo, mas posso te falar o porquê, para o paper não sair do escopo.

Então você basicamente só precisa saber que no arquivo de configuração temos vários blocos de código e você deve respeitar eles e inserir as configurações no lugar adequado.

Dentro do Bloco http>server você pode configurar pra onde vai ser redirecionado, as configurações são auto-explicativas e pra felicidade do sysadmin o Nginx realmente é simples e funcional.

Para configurar o LoadBalance, vamos ter que “criar” dois blocos dentro do bloco do http, basicamente vamos começar configurando o cluster onde você define quais são os nodes que vão estar no loadbalance:


upstream [NOME_DO_CLUSTER]{
    ip_hash;
    server [FQDN/IPADDRESS] ;
    server [FQDN/IPADDRESS] ;
}

O Nome_do_cluster(Você tem que dar um nome que você quiser pra esse cluster, por isso ta marcado em vermelho) é um “alias” onde você referencia no bloco do server e a mágica acontece que na verdade não é mágica, é um algoritmo de round-Robin que faz a comutação entre os “nodes”.
A linha que contém ip_hash é referente a manter a sessão, no sentido de, vamos colocar ai um ambiente com tomcats, onde caso a sessão se iniciou no server A, ela precisa continuar indo para o server A, caso ela seja redirecionada para o server B, a sessão quebra pois a instancia é diferente e não está integrado entre si, logo, o ip_hash vai gerar uma hash do IP do cliente e então com base nessa hash ele vai direcionar para o node que iniciou a sessão. Insano não?

Agora configurando o bloco de server que é basicamente aonde “abre a porta” e recebe as conexões e dispara pro infinito e além ou para o endereço que você quiser.


server {
    listen 80 default_server;
    server_name SRV-NGINX;
    root /usr/share/nginx/html;
    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;
    location / {
        proxy_pass http:// [NOME_DO_CLUSTER] ;
    }
    error_page 404 /404.html;
    location = /40x.html {
    }
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    }
}

Na verdade esse bloco server{} já está no arquivo de configuração do Nginx, basicamente você abre a porta e manda redirecionar o location /, ou seja, tudo(raiz do servidor web / ) pra dentro do cluster, onde o round-Robin vai gerenciar. Obviamente isso é um tutorial generalista, nessa configuração não contempla nem cache, é só sobre o loadbalance e o proxy reverso em si. Dependendo do ambiente que você estiver você vai precisar de papers mais específicos.

x0004 – Gerenciando o Serviço Nginx

Uma forma de trabalhar com o nginx, é até interessante pois ele tem a própria forma de trabalhar que em teoria não utiliza o

systemctl

, basicamente é o seguinte:

Direto das man pages 4you:


-s signal Send a signal to the master process. The argument signal can be one of: stop, quit, reopen, reload. The following table shows the corresponding system signals:

stop SIGTERM
quit SIGQUIT
reopen SIGUSR1
reload SIGHUP

Resumindo, a utilização básica é:

nginx -s stop
nginx -s start
Fontes:

http://nginx.org/en/docs/beginners_guide.html
https://www.nginx.com/resources/deployment-guides/load-balance-apache-tomcat/

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.