Gerenciamento simples de host virtual com NGINX Proxy Manager

Gerenciar Proxies e Virtual Hosts (VHosts) através dos arquivos de configuração do NGINX pode ser tedioso à medida que o número de virtual hosts e serviços web aumenta. Como simplificar o processo? O NGINX Proxy Manager (NPM).

Continue lendo e aprenda a criar, gerenciar e proteger virtual hosts com o console web do NGINX Proxy Manager.

Pré-requisitos

Este tutorial será uma demonstração prática. Se você quiser acompanhar, certifique-se de ter o seguinte:

Configurando o NGINX Proxy Manager

O NGINX Proxy Manager não é um pacote que você instala no seu sistema operacional. Em vez disso, o NPM é um aplicativo que você implanta no Docker – por isso, o Docker e o Docker Compose são os principais requisitos.

Siga as etapas abaixo para começar a configurar o seu NGINX Proxy Manager.

1. Faça login no seu servidor Linux via SSH ou no ambiente de desktop, se presente.

2. Crie e abra um arquivo YAML chamado docker-compose.yml usando o editor de texto de sua preferência, aqui o vi é usado.

vi docker-compose.yml

3. Copie e cole o seguinte código no editor. Este código contém as diretrizes para baixar e configurar a imagem mais recente do nginx-proxy-manager. Salve e feche o arquivo para retornar à linha de comando.

version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped #Garanta que o proxy manager sobreviva a falhas
    ports:
      #Permita que as portas dos respectivos containers sejam acessíveis pela máquina host
      - '80:80'
      - '81:81' #Porta para o Painel de Administração
      - '443:443'
    volumes:
      #Mapeie os seguintes diretórios do container para diretórios correspondentes no host
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

4. Execute o docker-compose para iniciar o container em segundo plano (-d) de acordo com as diretrizes especificadas.

docker-compose up -d
Running Docker Compose to set up NGINX Proxy Manager container

5. Execute o seguinte comando para garantir que o container esteja em execução.

docker ps

Você deve ver um processo em execução correspondente ao container do proxy manager, conforme a captura de tela abaixo, se tudo estiver correto.

Listing running Docker containers

Acessando o Painel Administrativo

O NGINX Proxy Manager agora deve estar em execução. Agora você pode acessar o painel de administração do NPM para realizar a configuração inicial do usuário administrador.

1. Abra a janela do seu navegador e navegue até http://<host_ip>:admin-ui-port>. Para sua conveniência, este tutorial usa o localhost implícito em vez de um endereço IP, ou seja, http://localhost:81, para iniciar o painel de administração.

2. Faça login com as credenciais padrão iniciais de endereço de e-mail [email protected] e senha changeme.

Logging in for the first time

3. Modifique a conta de usuário padrão como desejar. Este tutorial mantém o Nome Completo e o Apelido e apenas altera o E-mail para [email protected]. Clique em Salvar para salvar os detalhes do usuário.

Changing admin user default credentials

4. Digite uma nova senha para o usuário em Alterar Senha, conforme mostrado abaixo. Digite uma senha com oito ou mais caracteres e clique em Salvar.

Changing the default password

Você verá as alterações feitas na conta do usuário abaixo.

Viewing the user list in NGINX Proxy Manager

Implantando o Servidor Web

Agora que você realizou a configuração inicial, seu próximo passo é iniciar um servidor web para seu host virtual. Siga as etapas desta seção para iniciar rapidamente um contêiner de serviço web Apache usando o Docker Compose.

Abra o arquivo docker-compose.yml que você criou anteriormente em seu editor de texto. Acrescente o seguinte trecho de código ao arquivo docker-compose.yml

A vantagem de usar o mesmo arquivo é que você modifica a rede do contêiner existente adicionando um contêiner baseado em httpd registrado com o nome app2, em vez de em uma rede separada.

app2:
    #Nome personalizado para referência interna ao contêiner. Usado para comunicação entre contêineres
    image: 'httpd:latest'
    restart: unless-stopped

O conteúdo do arquivo deve ser semelhante à captura de tela abaixo. Salve o arquivo e saia do editor.

Adding a web server deployment directive

Execute o comando docker-compose para iniciar o contêiner em segundo plano (-d).

docker-compose up -d

Você deve receber um feedback semelhante à captura de tela abaixo, confirmando a criação do segundo contêiner.

Creating and starting the Web server with Docker Compose

Criando um novo Virtual Host

Agora você tem um serviço da web em execução. Esta seção tem como objetivo permitir o acesso ao servidor da web por meio das portas publicadas pelo NGINX Proxy Manager.

1. Faça login no painel de administração do NGINX Proxy Manager.

2. Clique em Hosts —> Proxy Hosts.

Creating a VHOST: Opening the Proxy Host card

3. Clique em Adicionar Proxy Host para iniciar a criação de um virtual host para o servidor da web.

Creating a VHOST: Adding a Proxy Host

4. Preencha o formulário Novo Proxy Host com os seguintes detalhes para configurar o virtual host.

  • Nome de Domínio: Os nomes de domínio nos quais o seu servidor da web será acessível. Este exemplo usa o domínio testweb.com.
  • Hostname / IP de Encaminhamento: O nome de host ou endereço IP do servidor web. Como este tutorial utiliza o Docker Compose para configurar os containers, é suficiente usar app2. Digite o nome que você forneceu no arquivo docker-compose.yml.
  • Porta de Encaminhamento: A porta na qual o servidor web escuta as solicitações. Neste caso, você usará a porta 80, que é a porta padrão exposta para os containers do Apache httpd.
  • Bloquear Explorações Comuns: Como vantagem, proxies configurados usando o NPM podem bloquear explorações comuns. Ative esta opção.
  • Lista de Acesso: Listas pré-especificadas para controlar o acesso ao servidor web por trás de um proxy. Para este tutorial, deixe a escolha como Acesso Público para garantir que você possa acessar o servidor web via proxy.

O formulário em sua tela deve ser semelhante à captura de tela abaixo. Clique em Salvar após preencher o formulário.

Adding the Proxy Host details

Agora você tem um host de proxy na lista.

List of proxy hosts

5. Por fim, acesse a URL do host virtual em uma nova aba ou janela do navegador. Para este tutorial, a URL é http://testweb.com. Se o host virtual estiver funcionando corretamente, você verá a página inicial padrão.

Accessing the Webserver via the Proxy

Provisionando Certificados SSL

Você implantou o servidor web e confirmou que ele está em execução. Neste ponto, porém, o site ainda não possui um certificado SSL. Embora seja aceitável executar sites internos privados sem um certificado SSL, o mesmo não deve acontecer ao hospedar sites públicos.

Para garantir que as conexões do seu site estejam criptografadas, você instalará um certificado SSL no seu host virtual em seguida. Não se preocupe; você fará isso pelo NGINX Proxy Manager. Mas você já deve ter um certificado SSL no formato PEM e a chave do certificado como requisito.

1. Clique na guia Certificados SSL no painel de administração do NGINX Proxy Manager.

Opening the SSL Certificates tab

2. No canto superior direito, clique em Adicionar Certificados SSL —> Personalizado.

Adding a custom SSL certificate

Como alternativa a um certificado personalizado, você pode solicitar um certificado Let’s Encrypt diretamente e na hora, selecionando Let’s Encrypt. Mas, para fazer isso, seu site e registro DNS devem ser públicos. Caso contrário, a aquisição do certificado falhará.

3. Preencha o formulário Adicionar Certificado Personalizado da seguinte forma:

  • Nome: Um nome amigável para o certificado no painel de administração. Este tutorial usa o nome Testweb Cert.
Provisioning SSL Certificates: Naming the certificate
  • Chave do Certificado: Essa chave vem com o arquivo do certificado que você gerou como requisito neste tutorial.

Clique em Procurar e navegue até o arquivo da chave.

Provisioning SSL Certificates: Selecting the key file

Dê um duplo clique no arquivo da chave. Neste tutorial, a chave do certificado é chamada mytesthttpd.key.

Provisioning SSL Certificates: Selecting the key file
  • Certificado: O próprio arquivo do certificado, seja no formato .crt ou .pem.

Clique em Procurar e navegue até o certificado no seu explorador de arquivos.

Provisioning SSL Certificates: Selecting the certificate file

Dê um duplo clique no arquivo do certificado para abri-lo. Neste tutorial, o arquivo da chave é chamado mytesthttpd.pem.

Provisioning SSL Certificates: Selecting the certificate file

4. Depois de preencher todos os três campos, o formulário deve ficar como a captura de tela abaixo. Clique em Salvar para enviar o certificado personalizado.

Este tutorial não utiliza um certificado intermediário. Ignore esse campo por enquanto.

Saving the SSL certificate

5. Agora, clique em Hosts -> Proxy Hosts.

Provisioning SSL Certificates: Applying the certificate to a Proxy Host

6. Clique no ícone de menu de três pontos e clique em Editar. Observe que a coluna SSL diz apenas HTTP neste momento

Editing a proxy Host

7. Selecione a guia SSL na janela Editar Proxy Host conforme mostrado abaixo. Selecione o certificado que você provisionou no menu suspenso abaixo de Certificado SSL. Para este tutorial, é o Testweb Cert como na captura de tela abaixo.

Selecting a certificate for a Proxy Host

8. Selecione o certificado que você adicionou anteriormente no menu suspenso abaixo de Certificado SSL. Como você pode ver abaixo, o nome do certificado a ser selecionado é Testweb Cert.

Selecting a certificate for a Proxy Host

9. Ative todas as opções aprimoradas de SSL disponíveis, como mostrado na captura de tela abaixo, e clique em Salvar.

A opção Forçar SSL forçará ou atualizará todas as conexões para HTTPS, mesmo quando o cliente inicialmente tentou acessar apenas a URL HTTP.

Enabling enhanced SSL features

A word of warning with HSTS. As browsers will include the site on an internal inclusion list, your site will no longer work under non-SSL conditions. Therefore, make sure that you have everything set up the correct way first.

Você notará que o valor da coluna SSL mudou de Apenas HTTP para Personalizado.

Confirming changes in the SSL setting for a Proxy Host

10. Por fim, abra uma nova aba do navegador e acesse novamente o domínio do seu host virtual. Para este tutorial, é http://testweb.com. A conexão deve ser atualizada automaticamente para HTTPS.

Testing HTTPS access with a browser

Parabéns! Você concluiu a implantação de um host virtual seguro usando o NGINX Proxy Manager.

Adicionando Usuários ao NGINX Proxy Manager

Se você trabalha com uma equipe ou espera que outra pessoa gerencie os hosts virtuais no NPM, será necessário fornecer acesso de usuário. Nesta seção, você irá estender o gerenciamento do NPM, especialmente em configurações de equipe, criando um usuário e atribuindo funções e permissões.

1. Clique em Usuários na página inicial do painel de administração.

Extending NPM with Users: Opening the Users tab

2. Clique em Adicionar Usuário no canto superior direito do cartão Usuários.

Adding a user

3. Digite o Nome Completo do usuário (Test User), Apelido (testuser) e Email ([email protected]) nos campos correspondentes e clique em Salvar.

O usuário que você está criando não será um administrador completo, portanto, não habilite a função de Administrador. Em vez disso, você estará atribuindo permissões personalizadas. Clique em Salvar para adicionar o novo usuário.

Adding user particulars

4. Defina as permissões que deseja atribuir ao usuário. Para este tutorial, o novo usuário terá as seguintes configurações de permissão:

  • Pode visualizar apenas itens criados pelo usuário.
  • Pode criar, editar e excluir Hosts de Proxy.
  • Pode criar, editar e excluir Hosts de Redirecionamento.
  • Não pode ver Hosts 404.
  • Não pode ver Streams.
  • Pode visualizar Listas de Acesso.
  • Pode criar, editar e excluir Certificados SSL.

O conjunto de permissões deve ser semelhante à captura de tela abaixo. Clique em Salvar para concluir a adição do novo usuário.

Saving the user’s permissions

5. Agora, clique no menu kebab do novo usuário e clique em Entrar como Usuário. Esta etapa irá alterar o contexto do usuário atual para Test User.

Signing in as the new user

6. Explore o painel de administração do ponto de vista do novo usuário. De acordo com as permissões deste usuário, você deve ver menos abas e recursos.

Confirming access permissions

Conclusão

Parabéns por concluir este tutorial do NGINX Proxy Manager. Você aprendeu a gerenciar hosts virtuais e habilitar a colaboração criando usuários pela interface gráfica! Você acha que voltará a gerenciar hosts virtuais do NGINX através da edição manual de arquivos de configuração?

Aqui está uma ideia para testar ainda mais seu aprendizado. Que tal ler sobre Como Servir Subdomínios ou Múltiplos Domínios com o NGINX. Mas em vez de seguir as configurações manuais, aplique o que você aprendeu e implante e configure os hosts virtuais usando o NGINX Proxy Manager.

Source:
https://adamtheautomator.com/nginx-proxy-manager/