Como criar um servidor web em 10 minutos

Aprenda como criar um servidor web em cerca de 10 minutos com custo de apenas $5/mês.

Veja como é barato e simples de criar um servidor de hospedagem de sites com plataformas de computação em nuvem.

Este não é um post patrocinado. Os softwares e serviços aqui citados são realmente excelentes, reconhecidos e utilizados no mundo todo.

O intuito aqui é dividir um pouco do conhecimento e benefícios adquiridos ao longo dos anos, após sofrer com hospedagens de má qualidade e decidir administrar o próprio servidor web.

Como criar um servidor web

Neste tutorial, iremos utilizar tecnologias de código aberto de última geração:

Linux, Nginx (pronunciado Engine X), com banco de dados MySQL, e processador PHP-FPM.

Este conjunto de softwares é também conhecido como LEMP stack em contraste ao LAMP, que utiliza o Apache ao invés do Nginx.

Pela sua facilidade, utilizaremos a Digital Ocean para criar um servidor web Linux Ubuntu na nuvem.

No entanto, este tutorial de como montar um servidor web pode ser seguido para outros fornecedores de infraestrutura na nuvem ou VPS, como o AWS, Linode, Locaweb, etc.

A escolha também foi fortemente influenciada pelo valor mais em conta da primeira. Embora a cotação do dólar esteja desfavorável, o valor continua bastante competitivo em relação a concorrentes nacionais.

Há servidores a partir de (USD) $5/mês, algo em torno de R$20/mês (na cotação de $1 = R$4).

Criando um servidor de hospedagem Linux

O Droplet é a 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 $50 de crédito. Assim você pode criar seu web server e testar o serviço antes de decidir pela empresa de cloud computing.

Acesse o painel de controle, e clique no botão verde no topo da página “Create > Droplets”.

Como criar um servidor web ubuntu
Como criar um servidor web ubuntu

Para o nosso passo a passo, iremos utilizar distribuição Linux Ubuntu 18.04 LTS, selecionando a imagem do sistema operacional para ser instalada na máquina virtual. E também o plano Standard, com máquinas para uso geral.

Neste exemplo iremos escolher o de $5/mês sem backup, mas que pode ser redimensionado a qualquer momento para outros planos e ativar o backup.

Como criar um servidor web com baixo custo
Como criar um servidor web – Escolha do plano

Este servidor com 1GB de RAM e 1 CPU é o suficiente para aguentar facilmente 40 mil visitas por dia com as devidas otimizações, utilização de cache e CDN gratuito Cloudflare.

Como criar um servidor web na Digital Ocean
Como criar um servidor web na Digital Ocean

Selecione o Data Center em que o servidor ficará localizado. No exemplo, New York, que fica geograficamente mais próximo do Brasil, e com menor tempo de latência.

Adicione opcionais como IPv6 e Monitoring para a sua instância. As outras opções serão deixadas de lado neste exemplo.

Coloque um nome para o seu Droplet, como o nome do domínio e clique no botão “Create”.

Acessando o Droplet

Como criar um servidor web - acceso a máquina
Como criar um servidor web – acesso à máquina

Utilize o comando a seguir em uma janela de Terminal (Linux ou Mac), utilizando o putty (Windows):

ssh [email protected]_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.

Também é possível resetar a senha de root quando necessário.

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.

Esta boa prática fornece segurança contra os ataques por força bruta (Brute force atack), que tentam adivinhar a combinação de usuário e senha fracas, 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.

sudo ufw default deny incoming
sudo ufw default allow outgoing

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

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

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 memória RAM.

E também pode configurar updates automáticos de segurança e de pacotes.

Instalando o EasyEngine v4

Quem já se aventurou em configurar essa pilha de softwares, sabe que muitas vezes o procedimento apresenta erros que os tutoriais não abordaram, e acaba passando o dia inteiro no Google buscando soluções.

Por isso, utilizaremos o O EasyEngine, um script de código aberto para instalar o LEMP (Linux, Nginx, Mysql e PHP) sem dores de cabeça, disponibilizado pela RtCamp.com, uma empresa especializada em WordPress e servidores Nginx de alta performance.

Além disso, o script instala estes serviços em containers do Docker, uma forma de isolar o ambiente para cada site e para a pilha LEMP.

Se você nunca ouvir falar de Docker, não se preocupe, o script faz tudo isso automaticamente.

Utilize os seguintes comandos em seu terminal, ou putty, para instalar o Easy Engine em seu servidor:

wget -qO ee rt.cx/ee4 && sudo bash ee

Aguarde alguns minutos e verifique como é fácil criar um servidor web.

O comando a seguir instala um site WordPress com cache no software Redis e certificado digital SSL gratuito do LetsEncrypt.

ee site create exemplo.com --type=wp --cache --locale=pt_BR --ssl=le 

Siga o passo a passo apresentado pelo script, e o WordPress juntamente com o banco de dados será automaticamente instalado em instantes.

Criando um snapshot do servidor web

Vamos criar um snapshot (imagem) do servidor já configurado, para utilizá-lo como base em futuras instalações.

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, você poderá restaurar este servidor web sempre que quiser, nesse exato ponto que se encontra, configurado e limpo.

Utilizando CDN e Cloudflare

Para que o servidor web fique mais seguro, utilizaremos o plano gratuito da Cloudflare, que protege contra ataques DDoS (negação de serviço) e outras ameaças.

Como criar um servidor web com a segurança do Cloudflare
Como criar um servidor com a segurança do Cloudflare

Além disso, ainda esconde o IP do seu servidor através de um proxy e fornece CDN gratuito para os arquivos do seu site, aliviando a carga e processamento da sua máquina.

Como criar um web server com cache e CDN Cloudflare

Como criar um servidor web com cache e CDN

Crie uma conta caso ainda não possua, e adicione o domínio desejado no plano gratuito.

Como criar um servidor de hospedagem linux - gráfico de cpu

Servidor de hospedagem linux – Gráficos

Atualizando servidores DNS

Após adicionar o domínio no Cloudflare, o mesmo irá fornecer os nomes de servidores DNS próprios para serem atualizados no painel de controle onde o domínio foi registrado.

Quando estas configurações forem configuradas e propagadas, você receberá um email informando que domínio foi corretamente adicionado no Cloudflare.

Agora que o servidor está preparado para receber as requisições, é necessário apontar os registros DNS do tipo A para o IP do servidor recém criado.

Acesse o painel de controle da Cloudflare, clique no botão DNS:

Como criar um web server - Configurar DNS
Como criar um web server – Configurar DNS

Selecione o tipo de registro A, informe o nome do seu domínio (exemplo.com) no campo “Name”, o IP do seu servidor linux recém criado e clique no botão “Add Record”.

No caso do registro DNS já existir, edite o registro do tipo A, clicando em cima do IP antigo para torná-lo editável.

A propagação do registro DNS pode demorar de alguns minutos a horas, e pode ser verificado através dos seguintes sites:

whatsmydns.netdnschecker.org

Acessando o site hospedado em seu servidor web

Após o registro DNS estar devidamente configurado e propagado, basta acessar o seu site através de um navegador de internet, p.ex:

https://wpplugins.dev

O que achou deste tutorial de como criar um servidor web? Deixe seus comentários, críticas e sugestões abaixo.

Como criar um servidor web – Próximos passos

Aguarde os próximos artigos com novas dicas de administração, segurança e otimização para seu servidor web.

2019-10-12T08:02:14-03:00