Como configurar o servidor da web nginx no Ubuntu 18.04 Bionic Beaver Linux
- 2362
- 269
- Ms. Travis Schumm
Objetivo
Aprenda a instalar e configurar o servidor da web nginx no Ubuntu 18.04 Bionic Beaver
Requisitos
- Permissões de raiz
Convenções
- # - requer que os comandos Linux sejam executados com privilégios de raiz também
diretamente como usuário root ou por uso desudo
comando - $ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular
Outras versões deste tutorial
Ubuntu 20.04 (fossa focal)
Introdução
O servidor da web nginx, juntamente com o Apache, é um dos servidores da web mais conhecidos e usados do mundo. Geralmente é menos faminto por recursos que o Apache e também pode ser usado como um proxi reverso.
Neste tutorial, veremos como instalar e configurar o servidor da web nginx no Ubuntu 18.04 Bionic Beaver.
Etapa 1 - Instalação
Instalando o nginx no Ubuntu 18.04 é muito fácil, só precisamos usar apt-get
:
$ sudo apt-get update && sudo apt-get install nginx
O primeiro comando sincroniza nossa máquina com repositórios do Ubuntu, enquanto o segundo realmente instala o pacote nginx. Poucos segundos e o servidor será instalado em nosso sistema. Os scripts de instalação também cuidarão do início do serviço Nginx.
Podemos verificar facilmente se o serviço está em execução usando o seguinte comando Linux:
$ sudo systemctl is attive nginx
O comando acima retornará ativo
Se o serviço acabar: de fato, se apontarmos o navegador para o endereço do servidor, ou para LocalHost
Se estivermos operando a partir da própria máquina, devemos visualizar a página de boas -vindas do Nginx:
Etapa 2 - Configuração do firewall
Para fazer nosso servidor ser capaz de servir páginas para outras máquinas, devemos configurar o firewall para permitir o tráfego de entrada através da porta 80
(o padrão) e porto 443
Se queremos usar o https
protocolo. O comando exato a ser executado para conseguir isso, depende do gerente do firewall em uso na máquina, mas aqui vou assumir o ufw
está em funcionamento, pois é o padrão no Ubuntu.
Primeiro, verificamos que o firewall está ativo:
$ sudo ufw status
Se não for, você pode ativá -lo executando o seguinte comando Linux:
$ sudo ufw habilitar
No entanto, tenha cuidado quando, porque, como o sistema o notificará, ativar o firewall pode destruir as conexões atualmente existentes. Para permitir conexões de entrada na porta 80, devemos executar:
$ sudo ufw permitir 80/tcp
Para permitir a porta 443, em vez disso:
$ sudo ufw permitir 443/tcp
Finalmente, para visualizar o status atual do firewall, podemos executar:
$ sudo ufw status numerado status: ativo para ação de------- ---- [1] 443/tcp permitir em qualquer lugar [2] 80/tcp permitir em qualquer lugar [3] 443/tcp (v6) Permitir em qualquer lugar (v6) [4] 80/tcp (v6) permitir em qualquer lugar (v6)
Como você pode ver, o comando acima nos dará uma visão geral das regras configuradas, indexadas por número.
Blocos do servidor nginx (hosts virtuais)
Os blocos de servidores nginx são o equivalente a Apache VirtualHosts e são usados para executar mais de um site na mesma máquina de servidor. Em uma instalação padrão do Nginx, podemos encontrar o padrão bloco de servidor
é /etc/nginx/sites-disponível/padrão
. Vamos dar uma olhada:
# Configuração do servidor padrão # servidor Ouça 80 default_server; Ouça [::]: 80 default_server; [… .] root/var/www/html; # Adicionar índice.PHP para a lista se você estiver usando o Índice de Php.Índice HTML.Índice HTM.nginx-debian.html; nome do servidor _; Localização / # Primeira tentativa de servir a solicitação como arquivo, depois # como diretório, depois volta a exibir um 404. try_files $ uri $ uri/ = 404; [… .]
cópia de O acima é uma versão simplificada (acabei de remover comentários) do bloco de servidor nginx padrão no Ubuntu 18.04. Como você pode ver, cada diretiva termina com um semicolon. A primeira coisa que vemos dentro do Servidor
a seção, nas linhas 4-5, são o ouvir
diretivas. O primeiro é para IPv4
Enquanto o segundo para IPv6
. Na verdade, isso pode ser reduzido como Ouça [::]: 80 ipv6only = off
.
O default_server
Diretiva define esse bloco de servidor como o padrão, o que significa que será usado se nenhuma outra configuração corresponder a um nome solicitado. Esta diretiva pode ser usada apenas em um bloco de servidor por vez.
O raiz
Diretiva na linha 8 define o caminho para o diretório raiz do site que será servido pelo bloco: é basicamente o equivalente ao Apache's Documentroot
.
O índice
Diretiva na linha 11 define os arquivos que podem ser usados como índice. Os arquivos serão verificados em ordem.
Na linha 13, o nome do servidor
A diretiva é usada para definir o nome do servidor a ser atribuído à configuração e determina o bloco do servidor que lidará com a solicitação. Ao definir o nome do servidor, é possível usar curingas e expressões regulares. Nesse caso, o valor fornecido é _
: Isso é usado porque é um valor inválido e nunca corresponderá a nenhum nome de host real (lembre-se de que essa configuração é uma coisa que se pode fazer).
Finalmente, temos o localização
Diretiva na linha 15: muda a maneira como uma solicitação é tratada no bloco do servidor. Nesse caso, o caminho a ser correspondido para que as instruções ocorram é /
. A parte do URI a ser combinada é a do segmento do host.
Dentro da localização "estrofe", na linha 18, podemos observar outra diretiva, try_files
: Ele verifica a existência de arquivos na ordem especificada, usando o primeiro encontrado para atender à solicitação. Nesse caso, como sugerido do comentário na seção, ele primeiro tenta corresponder a um arquivo do que um diretório. Se nada satisfazer a solicitação, uma página de 404 será exibida ao usuário. Observe que a solicitação é representada como o $ uri
variável, e o que o define como um diretório é a barra de arrasto.
Definindo um bloco de servidor personalizado
Agora devemos criar um bloco de servidor personalizado para servir um site HTML. Como primeira coisa, criaremos o diretório que servirá como raiz de documento para o bloco, vamos chamá -lo de exemplo:
$ sudo mkdir/var/www/exemplo
Também precisamos criar um índice.página HTML a ser exibida quando chegarmos ao site:
$ eco "Bem -vindo ao exemplo!"| sudo tee/var/www/exemplo/index.html> /dev /null
Uma vez feito, podemos criar um bloco de servidor no /etc/nginx/sites disponíveis
Diretório, para consistência, nós o nomearemos "Exemplo":
servidor ouça 80; root/var/www/exemplo; ÍNDICE ÍNDICE.html; Server_name www.exemplo.LAN;
cópia de Para testar que nossa configuração está correta e não contém nenhum erro de sintaxe, podemos executar o seguinte comando linux:
$ sudo nginx -t
Agora, como não temos um servidor DNS em vigor, para enviar uma solicitação ao nosso servidor com o nome especificado, devemos adicionar uma entrada no /etc/hosts
arquivo da máquina cliente. Nesse caso, o endereço da máquina que estou usando como servidor (em um ambiente de host virtual) é 192.168.122.89
, portanto:
# O arquivo cliente /etc /hosts [… .] 192.168.122.89 www.exemplo.LAN
cópia de Antes de ativarmos nosso novo bloco de servidor, temos a chance de verificar se a configuração padrão realmente funciona como um padrão de padrão. Se agora navegarmos para “www.exemplo.LAN ”da máquina cliente em que acabamos de adicionar a entrada dos hosts, podemos ver que o servidor responderá à nossa solicitação com a página NGINX padrão (já que o novo bloco ainda não foi ativado).
Para ativar nosso bloco de servidores, devemos criar um symblink a partir da configuração em que escrevemos em /etc/nginx/sites disponíveis
para /etc/nginx/sites habilitados
:
$ sudo ln -s/etc/nginx/sites-disponível/exemplo/etc/nginx/sites-habilitados
Depois disso, precisamos reiniciar o nginx:
$ sudo systemctl reinicie nginx
Neste ponto, se navegarmos para “www.exemplo.LAN ”, devemos ver nossa página não muito complicada:
Exemplo de página padrãoUsando SSL
Para usar o SSL, basicamente temos duas opções: obter um certificado de uma autoridade de certificado ou usar um certificado autoassinado. Em nosso primeiro exemplo, vamos gerar um certificado por conta própria. Execute o seguinte comando Linux para prosseguir:
$ sudo openssl req -x509 \ -Days 365 \ -sha256 \ -NewKey RSA: 2048 \ -nodes \ -keyout/etc/ssl/private/exemplo.key \ -out/etc/ssl/certs/exemplo -cert.PEM
cópia de Com este comando, geramos um certificado auto -assinado válido por 365 dias e uma chave RSA de 2048 bits. O certificado e a chave serão salvos em /etc/ssl/certs/exemplo-cert.PEM
e /etc/ssl/privado/exemplo.chave
arquivos respectivamente. Basta responder às perguntas que serão feitas, prestando atenção especial ao entrar no Fqdn
: ele deve corresponder ao domínio que usará o certificado para que ele funcione corretamente.
Você está prestes a ser solicitado a inserir informações que serão incorporadas à sua solicitação de certificado. O que você está prestes a entrar é o que é chamado de nome distinto ou DN. Existem alguns campos, mas você pode deixar alguns em branco para alguns campos, haverá um valor padrão, se você entrar '.', o campo ficará em branco. ----- Nome do país (código de 2 letras) [AU]: Nome do estado ou da província (nome completo) [algum estado]: Nome da localidade (por exemplo, cidade) []: Nome da organização de Milão (por exemplo, empresa) [Internet Widgits Pty Ltd] : Dano inc. Nome da unidade organizacional (por exemplo, seção) []: Nome comum (e.g. servidor fqdn ou seu nome) []: www.exemplo.endereço de e -mail da LAN []:
Agora que temos nosso certificado e chave, devemos modificar nossa configuração de bloco de servidores, para que se torne:
servidor Ouça 443 SSL; Server_name www.exemplo.LAN; ssl_certificate/etc/ssl/certs/exemplo-cert.PEM; ssl_certificate_key/etc/ssl/privado/exemplo.chave; root/var/www/exemplo; ÍNDICE ÍNDICE.html;
cópia de Como você pode ver, modificamos o ouvir
Diretiva na linha 2, usando porta 443
e também permitindo o ssl
Parâmetro, então adicionamos duas novas diretivas, nas linhas 4-5: ssl_certificate
e ssl_certificate_key
, que aponta respectivamente para o certificado e o local da chave do certificado.
Depois de reiniciar o serviço Nginx, se agora navegarmos para https: // www.exemplo.LAN
Devemos ver o aviso emitido pelo navegador, devido ao fato de que o certificado é auto-si mesmo. No entanto, nossas configurações estão funcionando e estamos usando uma conexão criptografada:
Usando Let's Encrypt
A alternativa aos certificados autoassinados são certificados emitidos por um terceiro verificado. Embora possamos comprar um certificado de uma autoridade de certificado, também temos a opção de usar “Vamos criptografar!”.
"Let's Encrypt" é uma autoridade de certificação gratuita e aberta que nos permite obter automaticamente um certificado confiável pelo navegador usando o ACME
protocolo e um agente de gerenciamento de certificados que é executado no servidor. A única condição é poder demonstrar que temos controle sobre o domínio que queremos usar o certificado para.
Para usar o serviço, a primeira coisa a fazer é instalar o CertBot
Cliente ACME e o plugin específico do NGINX:
$ sudo apt-get update && apt-get install certbot python-certbot-nginx
Obter um certificado é bastante simples:
$ sudo certbot -nginx -m -d
Obviamente, para que isso funcione, o domínio deve apontar corretamente para o nosso servidor de acesso ao público IP. O CERTBOT nos levará a responder a algumas perguntas para ajustar a configuração do site e, se tudo correr bem, o certificado e a chave serão salvos no /etc/letSencrypt/Live/
diretório. O CERTBOT também aplicará as alterações necessárias no bloco do servidor e recarregará o serviço.
Conclusões
Instalamos o servidor da web nginx no Ubuntu 18.04, vi como abrir as portas de firewall necessárias, examinaram o bloco de servidor Ubuntu padrão e criou uma configuração personalizada. Por fim, geramos um certificado autoassinado e implementamos as modificações necessárias no bloco de servidor para usar o protocolo HTTPS.
Como alternativa, consideramos implementar “vamos criptografar!”, Que pode nos fornecer um certificado reconhecido sem custos. Não hesite em fazer nenhuma pergunta e visite a documentação oficial do NGINX para obter informações mais detalhadas.
Tutoriais do Linux relacionados:
- Coisas para instalar no Ubuntu 20.04
- Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
- Ubuntu 20.04 truques e coisas que você pode não saber
- Ubuntu 20.04 Guia
- Ubuntu 20.04 Hadoop
- Uma introdução à automação, ferramentas e técnicas do Linux
- Os 8 melhores ambientes de desktop do Ubuntu (20.04 Fossa focal…
- Lista de clientes FTP e instalação no Ubuntu 20.04 Linux…
- Ubuntu 20.04: WordPress com instalação nginx
- Como migrar o Apache para o nginx convertendo o VirtualHosts para…
- « Assista Netflix no Ubuntu 18.04 Bionic Beaver Linux
- Monitoramento do sistema no Ubuntu 18.04 Linux com Stacer »