Pular para o conteúdo
Início » Aprendendo Linux Parte 11 – Configuração e Gerenciamento de Servidores Web no Linux

Aprendendo Linux Parte 11 – Configuração e Gerenciamento de Servidores Web no Linux

Os servidores web são fundamentais para a hospedagem de sites e aplicativos na internet. Nesta aula, vamos explorar como configurar e gerenciar servidores web no Linux, focando no Apache e no Nginx, que são dois dos servidores web mais populares. Vamos cobrir a instalação, configuração básica, gerenciamento de hosts virtuais e práticas de segurança.

Servidor Web Apache

Instalação do Apache

Para instalar o Apache em uma distribuição baseada em Debian (como Ubuntu), use o comando:

$ sudo apt update
$ sudo apt install apache2

Para distribuições baseadas em Red Hat (como CentOS):

$ sudo yum install httpd
Configuração Básica do Apache

Após a instalação, o arquivo de configuração principal do Apache está localizado em /etc/apache2/apache2.conf (Debian) ou /etc/httpd/conf/httpd.conf (Red Hat).

Iniciando e Parando o Apache

Para iniciar o Apache:

$ sudo systemctl start apache2  # Debian
$ sudo systemctl start httpd    # Red Hat

Para parar o Apache:

$ sudo systemctl stop apache2  # Debian
$ sudo systemctl stop httpd    # Red Hat

Para verificar o status do Apache:

$ sudo systemctl status apache2  # Debian
$ sudo systemctl status httpd    # Red Hat
Gerenciamento de Hosts Virtuais

Os hosts virtuais permitem que você hospede vários sites no mesmo servidor. Cada site pode ter sua própria configuração e diretório raiz.

  1. Crie um diretório para o novo site:
$ sudo mkdir -p /var/www/meusite.com/public_html
$ sudo chown -R $USER:$USER /var/www/meusite.com/public_html
$ sudo chmod -R 755 /var/www/meusite.com
  1. Crie um arquivo de configuração de host virtual:
$ sudo nano /etc/apache2/sites-available/meusite.com.conf  # Debian
$ sudo nano /etc/httpd/conf.d/meusite.com.conf  # Red Hat

Adicione o seguinte conteúdo:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName meusite.com
    ServerAlias www.meusite.com
    DocumentRoot /var/www/meusite.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/meusite.com_error.log
    CustomLog ${APACHE_LOG_DIR}/meusite.com_access.log combined
</VirtualHost>
  1. Habilite o novo site e reinicie o Apache:
$ sudo a2ensite meusite.com.conf  # Debian
$ sudo systemctl reload apache2   # Debian

$ sudo systemctl restart httpd    # Red Hat
Práticas de Segurança
  • Desabilitar Listagem de Diretórios: Para impedir que os usuários vejam uma lista de arquivos no diretório raiz, adicione ou altere a diretiva Options:
<Directory /var/www/meusite.com/public_html>
    Options -Indexes
</Directory>
  • Configurar HTTPS: Use o Certbot para obter certificados SSL gratuitos da Let’s Encrypt:
$ sudo apt install certbot python3-certbot-apache  # Debian
$ sudo yum install certbot python2-certbot-apache  # Red Hat
$ sudo certbot --apache

Servidor Web Nginx

Instalação do Nginx

Para instalar o Nginx em uma distribuição baseada em Debian (como Ubuntu), use o comando:

$ sudo apt update
$ sudo apt install nginx

Para distribuições baseadas em Red Hat (como CentOS):

$ sudo yum install nginx
Configuração Básica do Nginx

Após a instalação, o arquivo de configuração principal do Nginx está localizado em /etc/nginx/nginx.conf.

Iniciando e Parando o Nginx

Para iniciar o Nginx:

$ sudo systemctl start nginx

Para parar o Nginx:

$ sudo systemctl stop nginx

Para verificar o status do Nginx:

$ sudo systemctl status nginx
Gerenciamento de Hosts Virtuais
  1. Crie um diretório para o novo site:
$ sudo mkdir -p /var/www/meusite.com/html
$ sudo chown -R $USER:$USER /var/www/meusite.com/html
$ sudo chmod -R 755 /var/www/meusite.com
  1. Crie um arquivo de configuração de host virtual:
$ sudo nano /etc/nginx/sites-available/meusite.com

Adicione o seguinte conteúdo:

server {
    listen 80;
    server_name meusite.com www.meusite.com;

    location / {
        root /var/www/meusite.com/html;
        index index.html index.htm;
    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}
  1. Habilite o novo site e reinicie o Nginx:
$ sudo ln -s /etc/nginx/sites-available/meusite.com /etc/nginx/sites-enabled/
$ sudo nginx -t
$ sudo systemctl reload nginx
Práticas de Segurança
  • Desabilitar Listagem de Diretórios: Para impedir que os usuários vejam uma lista de arquivos no diretório raiz, adicione ou altere a diretiva autoindex:
location / {
    root /var/www/meusite.com/html;
    index index.html index.htm;
    autoindex off;
}
  • Configurar HTTPS: Use o Certbot para obter certificados SSL gratuitos da Let’s Encrypt:
$ sudo apt install certbot python3-certbot-nginx  # Debian
$ sudo yum install certbot python2-certbot-nginx  # Red Hat
$ sudo certbot --nginx

Monitoramento e Logs

Monitoramento com Apache

Os logs do Apache são armazenados em /var/log/apache2/ (Debian) ou /var/log/httpd/ (Red Hat).

  • Log de Acesso: Contém informações sobre todas as requisições HTTP recebidas.
$ sudo tail -f /var/log/apache2/access.log  # Debian
$ sudo tail -f /var/log/httpd/access.log    # Red Hat
  • Log de Erro: Contém mensagens de erro e diagnósticos.
$ sudo tail -f /var/log/apache2/error.log  # Debian
$ sudo tail -f /var/log/httpd/error.log    # Red Hat
Monitoramento com Nginx

Os logs do Nginx são armazenados em /var/log/nginx/.

  • Log de Acesso: Contém informações sobre todas as requisições HTTP recebidas.
$ sudo tail -f /var/log/nginx/access.log
  • Log de Erro: Contém mensagens de erro e diagnósticos.
$ sudo tail -f /var/log/nginx/error.log

Exemplos Práticos

Exemplo 1: Configurando um Host Virtual no Apache
  1. Crie um diretório para o novo site:
$ sudo mkdir -p /var/www/exemplo.com/public_html
$ sudo chown -R $USER:$USER /var/www/exemplo.com/public_html
$ sudo chmod -R 755 /var/www/exemplo.com
  1. Crie um arquivo de configuração de host virtual:
$ sudo nano /etc/apache2/sites-available/exemplo.com.conf  # Debian
$ sudo nano /etc/httpd/conf.d/exemplo.com.conf  # Red Hat

Adicione o seguinte conteúdo:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName exemplo.com
    ServerAlias www.exemplo.com
    DocumentRoot /var/www/exemplo.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/exemplo.com_error.log
    CustomLog ${APACHE_LOG_DIR}/exemplo.com_access.log combined
</VirtualHost>
  1. Habilite o novo site e reinicie o Apache:
$ sudo a2ensite exemplo.com.conf  # Debian
$ sudo systemctl reload apache2   # Debian

$ sudo systemctl restart httpd    # Red Hat
Exemplo 2: Configurando um Host Virtual no Nginx
  1. Crie um diretório para o novo site:
$ sudo mkdir -p /var/www/exemplo.com/html
$ sudo chown -R $USER:$USER /var/www/exemplo.com/html
$ sudo chmod -R 755 /var/www/exemplo.com
  1. Crie um arquivo de configuração de host virtual:
$ sudo nano /etc/nginx/sites-available/exemplo.com

Adicione o seguinte conteúdo:

server {
    listen 80;
    server_name exemplo.com www.exemplo.com;

    location / {
        root /var/www/exemplo.com/html;
        index index.html index.htm;
    }



 error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}
  1. Habilite o novo site e reinicie o Nginx:
$ sudo ln -s /etc/nginx/sites-available/exemplo.com /etc/nginx/sites-enabled/
$ sudo nginx -t
$ sudo systemctl reload nginx

A configuração e gerenciamento de servidores web no Linux são competências essenciais para administradores de sistemas que desejam hospedar sites e aplicativos de forma eficiente e segura. Nesta aula, exploramos como configurar o Apache e o Nginx, gerenciar hosts virtuais e aplicar práticas de segurança.

Pratique essas técnicas para ganhar confiança na administração de servidores web no Linux. Se tiver dúvidas ou sugestões, deixe um comentário no blog NerdExpert.com.br. Na próxima aula, exploraremos a configuração de servidores de banco de dados no Linux.