Como usar o Nginx Proxy Manager

Como usar o Nginx Proxy Manager
Nginx é um servidor da web popular e proxy reverso usado para rotear o tráfego e redirecioná -lo para outro servidor. Configurar o NGINX como proxy reverso pode ser demorado e propenso a erros e incorporativos. Este guia mostrará como configurar e usar o Nginx Proxy Manager para facilitar o gerenciamento e a configuração. Antes de mergulhar no tutorial, existem alguns pré -requisitos. Você precisará:
  1. Um servidor Linux
  2. Docker e Docker Compose instalado no servidor
  3. Raiz ou usuário com permissões sudo

Se você tiver tudo isso, vamos mergulhar.

Qual é o gerenciador de proxy nginx?

O NGINX Proxy Manager (NPM) é um sistema de gerenciamento de proxy reverso em execução 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 exige que os usuários saibam como trabalhar com servidores nginx ou certificados SSL. NPM é uma ferramenta de código aberto mantido por desenvolvedores de todo o mundo. É adequado para ambientes de pequenos servidores e ambientes de laboratório privado. Este tutorial se concentrará em mostrar como implantar o NGINX Proxy Manager:

Instalando Docker e Sqlite

O NGINX Proxy Manager é executado como um contêiner do Docker; Assim, requer Docker e Docker-Compompose instalados no servidor. Por uma questão de simplicidade, vou ilustrar apenas como instalar o Docker no Ubuntu. Consulte a documentação do Docker para obter referência sobre como configurá -lo em outros sistemas. Para instalar o Docker no Ubuntu, comece removendo instalações antigas do Docker. Pule isso se nenhum estiver disponível.

sudo apt-get Remover Docker Docker-Engine Docker.IO Containerd Runc

Em seguida, instale o repositório e todas as dependências usando os comandos:

Atualização de sudo apt-get
sudo apt-get Install apt-transport-https Certificados de CA Curl gnupg lsb-lançamento -y

Adicione a tecla GPG do repositório do Docker:

CURL -FSSL https: // Download.Docker.com/linux/ubuntu/gpg | sudo gpg--daarmor -o/usr/share/keyrings/docker-archive-keyring.gpg

Em seguida, adicione o repositório estável usando o comando echo como:

eco "deb [arch = amd64 assinado por/usr/share/keyrings/docker-archive-keyring.gpg] https: // download.Docker.com/linux/ubuntu \
$ (lsb_release -cs) estável "| sudo tee/etc/apt/fontes.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-c docker-c-cli contêinerd.IO Docker -Compose -y

Agora execute o Docker e habilite na startup:

sudo systemctl atability docker.serviço
sudo systemctl start docker.serviço
sudo systemctl atability contêinerd.serviço

Instale o sqlite

A próxima etapa é instalar o banco de dados SQLite que usaremos para executar o NPM. É bom observar que você pode usar o banco de dados MySQL também.

Implante NPM no Docker

Para implantar o Nginx Proxy Manager, precisamos criar um arquivo Docker-Compompose 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 que você crie o arquivo Docker-Compompose em um diretório, você tem permissões completas.

Nano Docker-Compose.Yaml

Em 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'
Reinicie: sempre
Portas:
# Porta http
- '80: 80 '
# Porta https:
- '443: 443'
# Admin ui
- '81: 81 '
ambiente:
Db_sqlite_file: "/data/npm.sqlite "
volumes:
- ./dados:/dados
- ./letSencrypt:/etc/letSencrypt

Finalmente, execute o comando Docker-Compose como:

Docker -Compor Up -d

Isso implantará a pilha da imagem do NPM especificada no arquivo Docker-Compose. Saída da criação:

Criando rede "Debian_default" com o driver padrão
App Pulling (JC21/nginx-proxy-manager: mais recente)…
mais recente: puxando de JC21/nginx-proxy-manager
801BFAA63EF2: Pull completo
7927CD3BBE4C: Pull completo
F53B85628DA5: Pull completo
e834c30791f9: puxe completo
6b68b3708dd5: puxe completo
963FE519B5FD: Pull completo
37E54D057F10: Pull completo
-------------------------------------
Digest: SHA256: B33AAB798A6150BA7DD238D36936D0882A312C983A0B3EB261A6DCBD5E6A3425
Status: Imagem mais recente baixada para JC21/nginx-proxy-manager: mais recente
Criando Debian_app_1… feito

Acessando a interface do usuário da NPM

Uma vez criado e em execução, você pode fazer login na interface usando o endereço IP e a porta especificados no arquivo Docker-Compose. Nesse caso, porta 81.

http: // ip: 81

Seria melhor se você aterrisse na NPM Login Ui. Digite o nome de usuário e a senha como:

[email protected] 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 pode configurar seus hosts proxy:

Trabalhando com NPM

Tendo instalado e garantido 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 para hosts - hosts proxy e clique em Adicionar host proxy.

Selecione o esquema como http ou https. Se o serviço que você deseja expor não suporta tráfego HTTPS, siga com HTTP. Em seguida, adicione os nomes de domínio, nome de host e IP. Você também pode selecionar explorações comuns em bloco para maior segurança.

Depois de expor o serviço, tente acessá -lo usando o nome do host especificado ou o IP e a porta. Este serviço deve estar acessível. Você também pode gerenciar o proxy na lista de hosts proxy.

Lista de acesso a NPM

Em alguns casos, podemos precisar expor um aplicativo ou serviço na lista de proxy da NPM a endereços IP específicos. Para configurar isso, você pode usar a lista de acesso NPM.

Navegue para acessar a lista e clique em Adicionar Lista de Proxy. Aqui, dê a eles uma lista de acesso um nome; Você também pode selecionar satisfazer qualquer.

Na guia Autorização, defina os nomes de usuário e senhas que você usará para fazer login no serviço.

Navegue até a guia Access e adicione os endereços IP dos quais você deseja permitir conexões e negar todos os outros.

Para anexar a lista de acesso a um aplicativo da web específico, navegue para os hosts - host proxy e selecione seu host. Clique em Editar e defina a lista de acesso conforme definido acima.

Provisionando ssl certs

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, verifique se o domínio aponta para o NPM Proxy Server.

Navegue até 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. Finalmente, concorde com os termos de serviço e salve. Você também pode adicionar um desafio do DNS, mas não vou cobrir isso neste tutorial.

Isso criará um novo certificado SSL confiável.

Personalize 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 proibido.







403 - proibido


Fonte: Codepen https: // codepen.io/blecaf/caneta/nloepy

Conclusão

Este tutorial analisou a instalação e a implantação do Nginx Proxy Manager em um servidor Ubuntu executando o Docker. Em seguida, abordamos como configurar o NPM e adicionar hosts ao gerenciador de proxy.

Lembre -se: experimentação consistente é a chave para dominar, então experimente!