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.
- 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
- 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>
- 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
- 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
- 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 {
}
}
- 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
- 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
- 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>
- 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
- 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
- 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 {
}
}
- 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.
Sou um profissional na área de Tecnologia da informação, especializado em monitoramento de ambientes, Sysadmin e na cultura DevOps. Possuo certificações de Segurança, AWS e Zabbix.