Nesse ponto, devemos ter um domínio e um servidor. O domínio deve apontar para o endereço de IP do servidor via registros DNS.
Como foi dito nos artigos anteriores, as instruções aqui serão para Debian. Outros sistemas talvez funcionem diferentemente.
Primeiramente, precisamos logar na VPS para configurar o webserver. Se você estiver usando MacOS ou Linux, basta abrir um terminal. Caso estiver usando windows, você pode usar o prompt de comando, PuTTY, ou Windows Subsystem for Linux. O prompt de comando é o mais simples, basta clicar na barra de pesquisa do Windows e pesquisar “prompt” para ele aparecer.
Para conectar, digite o seguinte comando no seu terminal/prompt de comando, onde exemplo.org
é o seu domínio.
ssh root@exemplo.org
Esse comando vai tentar conectar ao seu servidor e vai pedir uma senha. Na Vultr, você pode ver essa senha clicando no seu servidor e olhando na opção "Password".
Caso o comando acima dê problema, talvez haja um problema nas suas configurações de DNS. Revise-as novamente. Você também pode substituir exemplo.org
pelo IP do servidor, mas você vai precisar consertar seu DNS alguma hora.
Se o comando foi executado sem problemas, você agora está logado no seu servidor! Vamos agora executar os seguintes comandos.
apt update
apt upgrade
systemctl reboot
apt install nginx
apt
é o programa que instala e remove software em Debian. O primeiro comando verifica se há alguma atualização disponível para o seu sistema. O segundo, aplica as atualizações caso existam. O terceiro reinicia o servidor para terminar as atualizações, ele voltará online rápidamente. Na maioria dos casos, não é necessário reiniciar o servidor para finalizar as atualizações, mas é bom fazê-lo quando vários programas são atualizados de uma vez, com o tempo, você vai aprender quando deve ou não reiniciar depois de uma atualização. O quarto comando instala nosso webserver, Nginx (pronunciado Engine-X).
Seu servidor talvez já tenha outro webserver habilitado, provávelmente Apache. A Vultr não instala nenhum webserver por padrão, mas outras empresas talvez o façam. Como vamos usar nginx, então podemos desabilitá-lo e opcionalmente desinstalá-lo. É necessário desabilitá-lo pois não podem haver dois webservers rodando ao mesmo tempo. As instruções abaixo são para o Apache, modifique-as caso tenha outro webserver instalado por padrão.
systemctl stop apache2
systemctl disable apache2
apt remove apache2 apache2-bin apache2-data apache2-doc apache2-utils
O primeiro e segundo comandos o desabilita, o terceiro desinstala.
Nginx é nosso webserver, ele é o programa que vai pegar seu site e disponibilizá-lo na internet. Você só precisa fazer um pequeno site ou página e dizer ao Nginx onde os arquivos do seu site estão. Isso é simples, então vamos fazer agora.
Os arquivos de configuração do nginx
estão localizados na pasta (também chamada de “diretório”) /etc/nginx
. Dentro dela, as duas pastas principais (em Debian e sistemas semelhantes) são /etc/nginx/sites-available
e /etc/nginx/sites-enabled
. A ideia é que você pode criar um arquivo de configuração em sites-available
e, após ele estar pronto, você pode criar um atalho/link em sites-enabled
, para habilitá-lo. Dessa forma, você pode ter sites configurados e pode habilitá-los e desabilitá-los sem precisar apagar o arquivo de configuração.
Primeiro, vamos escrever as configurações do nosso site. Você pode copiar e colar os comandos a seguir (com as devidas modificações), mas eu vou explicar o que cada linha significa.
Crie um arquivo em /etc/nginx/sites-available
assim:
nano /etc/nginx/sites-available/meusite
nano
é um programa chamado de editor de texto, ele simplesmente te permite editar arquivos de texto no seu sistema, semelhante ao bloco de notas/notepad no Windows. Note que eu nomeei o arquivo meusite
, mas você pode usar o nome que quiser.
Agora, vamos adicionar o seguinte conteúdo ao arquivo, palavras que forem escritas assim vão ser diferentes para você, dependendo de como você quer chamar seu site.
Para salvar o arquivo, digite Control + S
, para fechá-lo, Control + X
.
server {
listen 80 ;
listen [::]:80 ;
server_name exemplo.org ;
root /var/www/meusite ;
index index.html ;
location / {
try_files $uri $uri/ =404 ;
}
}
A opção listen
define que o webserver vai receber, ou “ouvir”, por conexões na porta 80 para endereços IPv4 e IPv6 respectivamente.
server_name
é o nome do website a ser hospedado. Se eu colocar livreware.org
ali, qualquer um que tentar conectar à esse site vai ser direcionado ao conteúdo nesse bloco.
root
especifica a pasta onde vamos botar os arquivos do nosso site. Essa pasta pode ser em qualquer lugar, mas é normalmente colocada em /var/www
. Coloque o nome que quiser nessa pasta.
index
define qual vai ser o arquivo “padrão” do seu site. Quando você acessa um site, como livreware.org
, você está, na verdade acessando um arquivo localizado em livreware.org/index.html
, só isso. Note que, em conjunção com a linha acima, o nosso arquivo padrão ficará localizado, por exemplo, em /var/www/livreware.org/index.html
, e essa será a página principal do nosso site. Esse arquivo será criando daqui a pouco.
Por último, a opção location
diz como o webserver deve procurar pelos arquivos do site, e se não encontrá-los, exiba um erro 404.
Vamos criar uma página inicial simples para o seu site. Primeiro, vamos criar a pasta que foi definida no arquivo acima, utilizando o comando mkdir
.
mkdir /var/www/meusite
Agora vamos criar o arquivo index.html que vai aparecer quando o site for acessado.
nano /var/www/meusite/index.html
Eu vou adicionar o seguinte conteúdo, mas você pode adicionar o que quiser, contanto que seja HTML válido. Isso é o que vai aparecer no seu site.
<!DOCTYPE html>
<h1>Meu website!</h1>
<p>Bem-vindo ao meu site. Obrigado pela visita!</p>
Quando tiver salvado esse arquivo, você pode habilitá-lo criando un link para a pasta sites-enabled
:
ln -s /etc/nginx/sites-available/meusite /etc/nginx/sites-enabled/
Agora, reinicie nginx
para as mudanças tomarem efeito:
systemctl restart nginx
Algumas VPSes vem com o firewall ufw
instalado por padrão, outras não. De qualquer forma, eu recomendo usá-lo.
apt install ufw
ufw allow ssh
ufw allow 80
ufw allow 443
ufw enable
A primeira linha instala o programa. A segunda, terceira e quarta linha abrem as portas necessários para o acesso SSH e para seu site funcionar. A quinta linha habilita o firewall. É importante rodar o comando ufw allow ssh
antes de ufw enable
, pois caso o firewall não esteja configurado pra aceitar conexões SSH, você será deconectado e impedido de conectar de novo ao servidor. Conforme você vai instalando novos serviços no seu servidor, você precisará abrir mais portas, porém isso será mencionado nos seus respectivos artigos, por enquanto essas são as únicas configurações necessárias.
Por padrão, Nginx e outros webservers mostram sua versão em páginas de erros. Isso pode ser um risco, pois caso uma vulnerabilidade seja descoberta para a versão que está rodando no seu servidor, isso facilitaria quem alguém o atacasse. Para desabilitar isso, abra o arquivo /etc/nginx/nginx.conf
, encontre a linha que diz # server_tokens off;
, remova o "#" do começo dela e reinicie Nginx. Linhas que começam com "#" são ditas "comentadas", pois elas não serão lidas pelo programa e servem como comentários da configuração. Colocar um "#" no começo de uma linha significa "comentar" e remover esse símbolo é chamado de "descomentar".
Lembre-se de atualizar seu software para consertar vulnerabilidades!
Nesse ponto, você pode digitar o seu domínio na barra de endereço do seu navegador e sua página irá aparecer.
Perceba que o cadeado ao lado do domínio indica que nossa conexão não é segura, isso será resolvido no próximo passo.