Manual do Hacker Especial - Volume 2 (2019-07)

(Antfer) #1

40 | Manual do Hacker Especial


A


pache é um das partes de software que faz da
web o que ela é hoje. Ter um servidor poderoso
disponível gratuitamente permitiu às pessoas
fazerem coisas que seriam impossíveis ou
proibitivamente caras sem ele. Juntamente com Linux,
MySQL e PHP, é parte do famoso LAMP, que é o padrão
ad hoc para servidores web. No entanto, acabamos de ver
como o MySQL começou a cair em desgraça com alguns
sites maiores, porque ele um pouco grande demais e
inchado. Apache também está longe de ser leve, e aqui,
também, um software mais jovem e mais leve está
ganhando popularidade: Nginx (pronounced engine-X).
Na sua forma básica, ele funciona mais ou menos
igual ao Apache. Você deve encontrá-lo em seu
gerenciador de pacotes (para Red Hat e seus spin-offs,
você precisa primeiro habilitar o repositório Extra
Packages para Enterprise Linux (EPEL) e, então, instalá-
lo. Em uma distro baseada no Debian, isso é feito com:
sudo apt-get install nginx
Isso irá instalar o Nginx. Se você ainda não tem um
servidor web em execução na porta 80, você vai ser
capaz de direcionar um navegador para o localhost, e ver
a página de boas-vindas do Nginx.
Não se preocupe se você já tem um servidor em
execução na porta 80 – vamos mudar as portas agora. O
arquivo de configuração está em etc/nginx/sites-enabled.
Abra o arquivo padrão neste diretório, usando um editor de
texto (nota: o editor de texto pode necessitar do comando
sudo para ser executado). Altere as seguintes linhas:
listen 80;
listen [::]:80 default_server ipv6only=on;
para
listen 8080;
listen [::]:8080 default_server ipv6only=on;
Em seguida, reinicie o servidor com:
sudo nginx -s quit
sudo ningx
Agora, você deve ser capaz de acessar o servidor
Nginx em localhost: 8080. A raiz da web deverá estar em
/usr/share/ningx/html (isso pode variar de acordo com
a distro, de modo que você deve verificar o arquivo
padrão para obter mais detalhes, caso ele não esteja lá).
Você agora é capaz de colocar a habitual matriz de
documentos HTML, imagens, scripts e assim por diante
neste diretório e, em seguida, visualizá-los através de
localhost:8080.

É claro que, nos dias de hoje, a maioria dos sites
contêm todos os tipos de scripts e que não se deve
preparar aplicativos web que sejam tão poderosos
como aplicativos de desktop. Nginx é mais leve e mais
rápido do que o Apache porque reduziu o inchaço –
mas esse inchaço é o que fez Apache tão poderoso.
Afinal, inchaço de um homem é a característica
essencial de um outro homem.
Aqui, Nginx tem um truque na manga. Ele pode roubar
o poder do Apache. Ele faz isso, agindo como um proxy
reverso. Este é um servidor que se encontra entre o
servidor principal e a internet. Ele armazena em cache
solicitações populares, de modo que apenas solicita
recursos a partir do servidor principal quando novas
solicitações são feitas. Todo conteúdo estático (imagens,
arquivos JavaScript e assim por diante) é armazenado em
cache no proxy reverso. Isto significa que o Nginx faz todo
o trabalho mais fácil, e um servidor pesado (como o
Apache) é usado apenas quando necessário. Desta forma,
Nginx ajuda sites populares a continuarem executando
com o mínimo de recursos.
Se você estiver usando Apache, você pode usá-lo
aqui, mas para um teste, é um exagero. Então, se você
não tem um servidor diferente em execução, você pode
começar um com:
python -m SimpleHTTPServer 8000
Isto irá iniciar um servidor web rodando na porta
8000 no diretório atual. Podemos, então, montar o nosso
proxy reverso adicionando o seguinte ao arquivo local
padrão:

location /myapp/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_
add_x_forwarded_for;
proxy_pass http://localhost:8000/;
}

Isso deve estar dentro do bloco servidor principal {...}.
Agora, quando você direcionar seu navegador para
http://localhost:8080/myapp, o Nginx irá enviar o seu
pedido para o localhost:8000, onde o nosso navegador
web está sendo executado. Não há necessidade do
servidor proxy ser executado na máquina principal, e você
pode apontar locais diferentes para diferentes servidores
que utilizam mais do que um desses blocos, o que lhe
permite distribuir a carga do seu aplicativo em diversos
servidores.

Nginx


O servidor web elegante que impressiona


Todas estas
organizações
usam
Nginx para
melhorar seus
servidores
web. Na
verdade, ele é
o servidor web
mais usado
entre os mil
sites mais
populares

A arquitetura do Nginx significa que ele usa muito menos
memória do que o Apache quando está sob carga pesada.

Software | Sys Admin


Grupo Unico PDF Passe@diante

Free download pdf