- Um servidor Linux
- Docker e Docker Compose instalados no servidor
- Root ou usuário com permissões de sudo
Se você tem tudo isso, vamos mergulhar.
O que é o Nginx Proxy Manager?
O gerenciador de proxy Nginx (NPM) é um sistema de gerenciamento de proxy reverso executado no Docker. O NPM é baseado em um servidor Nginx e fornece aos usuários uma interface da web limpa, eficiente e bonita para facilitar o gerenciamento. A ferramenta é fácil de configurar e não requer que os usuários saibam como trabalhar com servidores Nginx ou certificados SSL. NPM é uma ferramenta de código aberto mantida por desenvolvedores de todo o mundo. É adequado para pequenos ambientes de servidor e ambientes de laboratório privado. Este tutorial se concentrará em mostrar como implantar o gerenciador de proxy Nginx:
Instalando Docker e SQLite
O gerenciador Nginx Proxy é executado como um contêiner do docker; portanto, requer Docker e docker-compose instalados no servidor. Para simplificar, vou apenas ilustrar como instalar o Docker no Ubuntu. Consulte a documentação do Docker para referência sobre como configurá-lo em outros sistemas. Para instalar o Docker no Ubuntu, comece removendo as instalações antigas do Docker. Pule isto se nenhum estiver disponível.
sudo apt-get remove docker docker-engine docker.Io containerd runcEm seguida, instale o repositório e todas as dependências usando os comandos:
sudo apt-get updatesudo apt-get install apt-transport-https ca-certificados curl gnupg lsb-release -y
Adicione a chave GPG do repositório Docker:
curl -fsSL https: // download.docker.com / linux / ubuntu / gpg | sudo gpg --dearmor -o / usr / share / keyrings / docker-archive-keyring.gpgEm seguida, adicione o repositório estável usando o comando echo como:
echo "deb [arch = amd64 assinado por = / usr / share / keyrings / docker-archive-keyring.gpg] https: // download.docker.com / linux / ubuntu \$ (lsb_release -cs) stable "| sudo tee / etc / apt / sources.Lista.d / docker.lista> / dev / null
Por fim, atualize os repositórios e instale o docker usando os comandos:
sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose -yAgora execute o docker e habilite na inicialização:
sudo systemctl enable docker.serviçosudo systemctl start docker.serviço
sudo systemctl enable containerd.serviço
Instale SQLite
O próximo passo é instalar o banco de dados SQLite que usaremos para executar o NPM. É bom notar que você também pode usar o banco de dados MySQL.
Implantar NPM no Docker
Para implantar o Nginx Proxy Manager, precisamos criar um arquivo docker-compose para executar o Docker e inicializar o contêiner. Para saber mais sobre o arquivo de composição do Docker e como ele funciona, considere os recursos vinculados aqui. Eu recomendo fortemente que você crie o arquivo docker-compose em um diretório no qual você tenha permissões totais.
nano docker-compose.yamlEm seguida, adicione as seguintes linhas ao arquivo de composição, salve e feche.
versão: "3"Serviços:
aplicativo:
imagem: 'jc21 / nginx-proxy-manager: mais recente'
reiniciar: sempre
portas:
# Porta HTTP
- '80: 80 '
# Porta HTTPS:
- '443: 443'
# Admin UI
- '81: 81 '
meio Ambiente:
DB_SQLITE_FILE: "/ data / npm.sqlite "
volumes:
- ./ data: / data
- ./ letsencrypt: / etc / letsencrypt
Por fim, execute o comando docker-compose como:
docker-compose up -dIsso implantará a pilha da imagem NPM especificada no arquivo docker-compose. Saída de criação:
Criação de rede "debian_default" com o driver padrãoPuxando aplicativo (jc21 / nginx-proxy-manager: mais recente) ..
mais recente: puxando de jc21 / nginx-proxy-manager
801bfaa63ef2: Extração completa
7927cd3bbe4c: Puxar completo
f53b85628da5: Extração completa
e834c30791f9: Puxado completo
6b68b3708dd5: Extração completa
963fe519b5fd: Extração completa
37e54d057f10: Extração completa
-------------------------------------
Resumo: sha256: b33aab798a6150ba7dd238d36936d0882a312c983a0b3eb261a6dcbd5e6a3425
Status: imagem mais recente baixada para jc21 / nginx-proxy-manager: mais recente
Criando debian_app_1… concluído
Acessando a IU do NPM
Depois de criado e executado, você pode fazer login na Interface usando o endereço IP e a porta especificados no arquivo docker-compose. Neste caso, porta 81.
http: // IP: 81
Seria melhor se você acessasse a IU de login do NPM. Digite o nome de usuário e a senha como:
[email protegido] e changeme, respectivamente.
No login inicial, você terá que atualizar os detalhes do administrador.
Depois de atualizar todos os detalhes do usuário, você chegará ao painel principal, de onde poderá configurar seus hosts proxy:
Trabalhando com NPM
Depois de instalar e garantir que o gerenciador de proxy esteja em execução, podemos adicionar um host proxy para expor um serviço em execução no servidor. Navegue até Hosts - Proxy Hosts e clique em Add Proxy Host.
Selecione o esquema como HTTP ou HTTPS. Se o serviço que você deseja expor não é compatível com tráfego HTTPS, use HTTP. Em seguida, adicione os nomes de domínio, nome do host de encaminhamento e IP. Você também pode selecionar Bloquear exploits comuns para aumentar a segurança.
Depois de expor o serviço, tente acessá-lo usando o nome de host ou IP e porta especificados. Este serviço deve ser acessível. Você também pode gerenciar o proxy na lista de hosts de proxy.
Lista de acesso NPM
Em alguns casos, podemos precisar expor um aplicativo ou serviço na lista de proxy NPM para endereços IP específicos. Para configurar isso, você pode usar a Lista de Acesso NPM.
Navegue até a Lista de Acesso e clique em Adicionar Lista de Proxy. Aqui, dê a eles um nome de lista de acesso; você também pode selecionar Satisfaça Qualquer.
Na guia de autorização, defina os nomes de usuário e senhas que você usará para fazer login no serviço.
Navegue até a guia Acesso e adicione os endereços IP dos quais deseja permitir conexões e negar todos os outros.
Para anexar a Lista de Acesso a um aplicativo da web específico, navegue até Hosts - Host Proxy e selecione seu host. Clique em Editar e defina a lista de acesso conforme definido acima.
Provisionamento de certificados SSL
O NPM também permite que você forneça certificados SSL em vários nomes de domínio. Antes de adicionar um nome de domínio à provisão SSL, certifique-se de que o domínio aponta para o servidor proxy NPM.
Navegue até os certificados SSL e clique em Adicionar certificado SSL. Forneça os nomes de domínio e o endereço de e-mail para Let's Encrypt. Por fim, concorde com os termos de serviço e salve. Você também pode adicionar um desafio de DNS, mas não vou cobrir isso neste tutorial.
Isso criará um novo certificado SSL confiável.
Personalizar a página inicial
Você também pode personalizar a página da Web padrão para o servidor NPM. Clique em Configurações - Site padrão e selecione Editar. Você pode optar por mostrar um erro 404, redirecionar para um novo endereço ou criar uma página personalizada.
Por exemplo, abaixo está um código HTML para mostrar 403 Forbidden.
FONTE: CodePen https: // codepen.io / blecaf / pen / NLoEPY
Conclusão
Este tutorial examinou a instalação e implantação do gerenciador Nginx Proxy em um servidor Ubuntu executando o Docker. Em seguida, abordamos como configurar o NPM e adicionar hosts ao gerenciador de proxy.
Lembre-se: a experimentação consistente é a chave para o domínio, então experimente!