CodeGym /Cursos /Docker SELF /Instalação e configuração de servidor web (Nginx/Apache)

Instalação e configuração de servidor web (Nginx/Apache)

Docker SELF
Nível 7 , Lição 0
Disponível

Instalação e configuração de servidor web (Nginx/Apache)

1. O que é um servidor web?

Hoje vamos falar sobre Nginx e Apache, dois dos servidores web mais populares. No final da aula, seu servidor será capaz de dar boas-vindas orgulhosamente a usuários desavisados na internet.

Antes de mergulhar nos comandos, bora entender o que estamos tentando fazer. Um servidor web é um programa que recebe requisições HTTP (por exemplo, quando um usuário digita o endereço de um site no navegador), processa essas requisições e responde com um conteúdo apropriado (uma página HTML, arquivo ou até mesmo um erro “404 Not Found”). Ele age como um intermediário entre os usuários e seu conteúdo.

Nginx vs Apache: batalha de servidores web

Se Nginx e Apache se encontrassem num café, então:

  • Nginx pediria um latte de lavanda e resolveria tudo de forma assíncrona: “Me manda o pedido e em um minuto eu te entrego o arquivo, não me atrapalha!”.
  • Apache, por outro lado, seria mais tradicional, criaria uma thread para cada tarefa e responderia educadamente, mas de forma mais lenta em grande volume de requisições.

Diferenças resumidas:

Característica Nginx Apache
Arquitetura Assíncrona Baseada em threads
Desempenho Alto em grandes cargas Bom para dinâmicas (PHP/Perl)
Simplicidade Configuração simples, mas com seus detalhes Mais versátil, porém mais complexa

Quando usar o quê?

  • Se seu site é só um monte de arquivos estáticos (por exemplo, um blog ou landing page), então Nginx é seu parceiro.
  • Se você trabalha com aplicações web dinâmicas (por exemplo, site em PHP), Apache oferece mais flexibilidade.

2. Instalação do servidor web

Agora que você entendeu por que isso é necessário, bora começar a instalação. Vamos ver como instalar tanto o Nginx quanto o Apache. Escolha o que você curtir mais ou instale os dois de uma vez pra se sentir um profissional.

Instalação do Nginx

  1. Atualizando a lista de pacotes:

    sudo apt-get update
    
  2. Instalando o Nginx:

    sudo apt-get install nginx
    
  3. Verificando o status do servidor:

    sudo systemctl status nginx
    

    Se tudo estiver certo, você vai ver algo como: active (running).

  4. Checando a página padrão: Abra o navegador e digite http://localhost. Você deve ver a página de boas-vindas do Nginx, confirmando que a instalação deu certo.

Instalação do Apache

  1. Atualizando a lista de pacotes:

    sudo apt-get update
    
  2. Instalando o Apache:

    sudo apt-get install apache2
    
  3. Verificando o status do servidor:

    sudo systemctl status apache2
    

    Assim como no Nginx, o status deve estar como «active (running)».

  4. Checando a página padrão: Abra o navegador e acesse http://localhost. Agora você verá a página padrão do Apache.


3. Configuração básica do servidor web

Onde estão as configurações?

  • No Nginx, o arquivo principal de configuração está localizado em:

    /etc/nginx/nginx.conf
    
  • No Apache:

    /etc/apache2/apache2.conf
    

Tenta abrir os arquivos de configuração usando seu editor favorito (por exemplo, nano):

sudo nano /etc/nginx/nginx.conf
Importante!

Aqui começa sua primeira aventura: talvez agora você não entenda nada, porque os arquivos de configuração parecem feitiços de um jogo de RPG. Mas não se preocupe – a gente vai desvendar tudo isso.

Iniciar, parar e reiniciar os servidores

Se você sabe como gerenciar serviços no Linux, então "metade do caminho já tá andado". Aqui estão os comandos principais para gerenciar os nossos geradores web:

Para o Nginx:

sudo systemctl start nginx   # Iniciar
sudo systemctl stop nginx    # Parar
sudo systemctl restart nginx # Reiniciar
sudo systemctl reload nginx  # Recarregar configuração

Para o Apache:

sudo systemctl start apache2
sudo systemctl stop apache2
sudo systemctl restart apache2
sudo systemctl reload apache2

Verificando a configuração

Antes de reiniciar o servidor, sempre verifica se você não cometeu erros:

  • Para o Nginx:

      sudo nginx -t
    
  • Para o Apache:

      sudo apachectl configtest
    

Qualquer erro na configuração será exibido – não dá pra quebrar o servidor por acidente.


4. Demonstração: iniciando nosso primeiro site

Agora vamos fazer algo que os desenvolvedores web adoram – criar um site com um nome incrivelmente criativo chamado "Hello Server".

Para Nginx

  1. Criamos o diretório para o site:

    sudo mkdir -p /var/www/hello
    sudo nano /var/www/hello/index.html
    

    Escreva no arquivo o seguinte (sim, tudo que é genial é simples):

    <h1>Hello, Nginx Server!</h1>
  2. Configuramos o arquivo de configuração:

    sudo nano /etc/nginx/sites-available/hello
    

    Segue um exemplo de configuração simples:

    server {
        listen 80;
        server_name hello.local;
    
        root /var/www/hello;
        index index.html;
    
        location / {
            try_files $uri $uri/ =404;
        }
        }
  3. Ativando a configuração:

    sudo ln -s /etc/nginx/sites-available/hello /etc/nginx/sites-enabled/
    sudo nginx -t
    sudo systemctl reload nginx
    
  4. Adicione uma entrada ao arquivo /etc/hosts para configurar o domínio hello.local na sua máquina local:

    127.0.0.1 hello.local
    
  5. Verifique o site no navegador: http://hello.local.

Importante!

O arquivo hosts contém o mapeamento de endereços IP para nomes de domínio. Ele é seu servidor DNS local. Esse arquivo existe em todos os sistemas operacionais. No Windows, ele também está presente, no endereço C:\Windows\System32\drivers\etc\hosts

Para Apache

  1. Criamos o diretório:

    sudo mkdir -p /var/www/hello
    sudo nano /var/www/hello/index.html
    

    Preencha o arquivo:

    <h1>Hello, Apache Server!</h1>
  2. Criamos a configuração do host virtual:

    sudo nano /etc/apache2/sites-available/hello.conf
    

    Segue um exemplo de configuração:

    <VirtualHost *:80>
        ServerName hello.local
        DocumentRoot /var/www/hello
    
        <Directory /var/www/hello>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>
  3. Ativando a configuração:

    sudo a2ensite hello.conf
    sudo systemctl reload apache2
    
  4. Adicione uma entrada ao arquivo /etc/hosts:

    127.0.0.1 hello.local
    
  5. Verifique o funcionamento: http://hello.local.


Depois da palestra de hoje, você já está preparado para instalar e configurar um servidor web principal por conta própria. Um pouco mais de esforço e você será capaz de implementar sites e aplicações completas que não parecem desenho de criança. Em algum lugar, o HTTPS está esperando por você, mas isso é assunto para outra hora.

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION