Como criar um servidor web em 10 minutos
Com as plataformas de computação em nuvem, nunca foi tão barato e simples administrar o seu próprio servidor web, e neste artigo iremos demonstrar como criar um servidor web em cerca de 10 minutos.
Como criar um servidor web
Neste tutorial, iremos utilizar tecnologias de código aberto de última geração: Linux, Nginx (pronunciado Engine X), PHP-FPM com banco de dados MySQL, também conhecido como LEMP stack.
Criando um Droplet – Servidor Linux
Pela sua simplicidade, utilizaremos a Digital Ocean para criar um servidor virtual Linux Ubuntu na nuvem, ao invés da Amazon Web Services (AWS), esta sim, um grande oceano de ótimos serviços, porém complexos de entender e utilizar. A escolha também foi grandemente influenciada pelo valor mais em conta da primeira.
Embora a cotação do dólar esteja nas alturas, esse serviço continua com um preço bem competitivo em relação a concorrentes nacionais. Há servidores a partir de $5/mês.
O Droplet é uma máquina virtual da Digital Ocean, onde iremos instalar todo o ambiente web. Os custos são contabilizados por hora para cada Droplet.
Crie uma conta na Digital Ocean, através deste link e ganhe $100 de crédito.
Acesse o painel de controle, e clique no botão verde “Create Droplet”.
Informe o domínio do site, p.ex: exemplo.com.br, e selecione o tamanho do servidor. Neste exemplo iremos utilizar o de $5/mês.
Acessando o Droplet
Utilize o comando a seguir em uma janela de Terminal (Linux ou Mac), utilizando o putty (Windows):
ssh root@ENDERECO_IP_SERVIDOR
Ou mesmo através do próprio painel de controle da Digital Ocean (clique em “Console Access”):
A senha para o usuário root do servidor é enviada para o e-mail cadastrado na conta.
Criando um novo usuário
O root é um usuário administrativo que possui privilégios ilimitados para alterar tudo do sistema. Desta forma, não se recomenda utilizá-lo regularmente, já que estes privilégios podem destruir o ambiente por acidente.
Após ter logado no sistema como root, crie uma nova conta de usuário que será utilizada a partir de agora (troque o usuarioex por outro de seu agrado).
adduser usuarioex
Informe uma senha e, opcionalmente, informe os outros campos. Tecle “ENTER” para pular os campos desnecessários.
Privilégios Root
Nós temos uma nova conta de usuário criada, mas precisamos fornecer privilégios administrativos, tornando-o um “super user”.
Para adicionar esses privilégios para o usuário, utilize o seguinte comando para adicioná-lo ao grupo “sudo”:
gpasswd -a usuarioex sudo
Para melhorar a segurança, recomenda-se desabilitar login do root por ssh e a utilizar a autenticação por chave pública ao invés de senhas, minimizando assim, os ataques por força bruta (Brute force atack), que tentam adivinhar a combinação de usuário e senha, através de muitas tentativas e erros.
Configurando firewall
O Firewall fornece um nível de segurança básico para o seu servidor, permitindo ou negando acesso a uma porta previamente configurada.
O Ubuntu já vem com o ufw, que pode ser utilizado para configurar sua política de firewall. Iremos fechar todas as portas e habilitar apenas aquelas que tenham um bom motivo para estarem abertas.
A começar liberando o serviço de ssh que executa na porta 22:
sudo ufw allow ssh
Estamos utilizando as portas padrão para cada serviço. Caso tenha alterado alguma das portas, é necessário alterar o comando para:
sudo ufw allow PORTA/tcp
A seguir, libere as portas HTTP e HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Para enviar e-mails:
sudo ufw allow 25/tcp
Esta porta é utilizada para fins administrativos:
sudo ufw allow 22222/tcp
Verificar se tudo foi adicionado corretamente através do comando:
sudo ufw show added
Exemplo de portas liberadas:
Added user rules (see 'ufw status' for running firewall):
ufw allow 22
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 25/tcp
ufw allow 22222/tcp
Se tudo estiver ok, basta ativar o firewall:
sudo ufw enable
Configurando o timezone
Edite a variável de ambiente através do seguinte comando:
sudo nano /etc/environment
Adicione as seguintes linhas:
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
Faça o logout e login novamente, utilizando o comando exit.
Agora, utilize o seguinte comando e selecione a área geográfica em que se encontra. No caso, America/Sao_Paulo
sudo dpkg-reconfigure tzdata
Adicionalmente, você pode criar um arquivo swap para que seu servidor possa alocar recursos menos utilizados em disco em caso de sobrecarga da RAM.
E também pode configurar updates automáticos de segurança e de pacotes.
Criando um snapshot
Vamos criar um snapshot (imagem) do servidor já configurado, para utilizá-lo como base em futuras instalações.
Primeiramente, desligue o servidor, utilizando o comando:
sudo poweroff
Recarregue o painel de controle da Digital Ocean após alguns minutos, e verá que o droplet foi desligado.
Clique no nome do Droplet, e acesse o menu “Snapshots”, e em seguida, informe o nome da imagem e clique no botão “Take Snapshot”.
Após o snapshot terminar, o droplet é reiniciado automaticamente.
Instalando o Easy Engine
Quem já se aventurou em configurar esse pacote de softwares, sabe que muitas vezes os tutoriais acabam apresentando um erro aqui e ali, e passa o dia inteiro no Google buscando soluções.
Por isso, utilizaremos o O Easy Engine, um script para instalar o LEMP (Linux, Nginx, Mysql e PHP) sem dores de cabeça, disponibilizado no site RtCamp.com, uma empresa especializada em WordPress e servidores Nginx de alta performance.
Utilize os seguintes comandos em seu terminal, ou putty, para instalar o Easy Engine em seu servidor:
wget -qO ee rt.cx/ee && sudo bash ee
Instale o NginX, MySQL, PHP-FPM, MySQL Tuner, WP-CLI, phpMyAdmin, Adminer, phpMemcachedAdmin, opcache, postfix:
ee stack install
E o comando a seguir instala um site WordPress e nginx configurado para trabalhar com o plugin w3-total-cache.
ee site create exemplo.com.br--w3tc
Siga o passo a passo do script, e o WordPress juntamente com o banco de dados será automaticamente instalado.
Atualizando registros DNS
Após o servidor estar preparado para receber as requisições, é necessário apontar os registros DNS para o IP do servidor criado.
Acesse o painel de controle onde o domínio foi registrado e altere o registro A para o IP do servidor recém criado.
A propagação do registro DNS pode demorar de alguns minutos a horas, e pode ser verificado através dos seguintes sites:
whatsmydns.net e dnschecker.org
Acessando o site
Após o registro DNS estar devidamente configurado, basta acessar o seu site através de um navegador de internet, p.ex:
https://vendadesites.com.br
Próximos passos
O site está no ar, porém ainda não está otimizado e nem protegido contra tentativas de invasão.
Aguarde os próximos artigos com novas dicas de administração para seu servidor web.



