ferramenta de configuração da web nginx
Grupo de intercâmbio técnico QQ 1: 1106758598
Grupo de intercâmbio técnico QQ 2: 560797506
E-mail: [email protected]
Endereço do site oficial: https://www.nginxwebui.cn
Endereço da versão profissional: https://pro.nginxwebui.cn
Guia: https://gitee.com/cym1102/nginxWebUI
Github: https://github.com/cym1102/nginxWebUI
Tutorial em vídeo: https://www.bilibili.com/video/BV18A4y1D7GZ
Código QR de doação WeChat
nginxWebUI é uma ferramenta de gerenciamento gráfico para configuração do nginx. Você pode usar páginas da web para configurar rapidamente várias funções do nginx, incluindo encaminhamento de protocolo http, encaminhamento de protocolo tcp, proxy reverso, balanceamento de carga, servidor html estático e aplicação e renovação automática de certificado SSL. , configuração, etc. Após a configuração, o arquivo nginx.conf pode ser gerado de uma só vez, o nginx pode ser controlado para usar este arquivo para iniciar e recarregar, completando o controle gráfico de loop fechado do nginx.
O nginxWebUI também pode gerenciar vários clusters de servidores nginx. Você pode alternar para o servidor correspondente para configuração do nginx a qualquer momento com um clique. Você também pode sincronizar a configuração de um determinado servidor para outros servidores com um clique para facilitar o gerenciamento do cluster.
O próprio nginx possui funções complexas. O nginxWebUI não pode cobrir todas as funções do nginx, mas pode cobrir 90% das configurações funcionais diárias do nginx. Para itens de configuração do nginx que não são cobertos pela plataforma, você pode usar modelos de parâmetros personalizados para gerar parâmetros exclusivos no. arquivo conf.
Depois de implantar este projeto, você não precisa mais procurar códigos de configuração online para configurar o nginx. Você não precisa mais solicitar e configurar certificados SSL manualmente. Você só precisa adicionar, excluir, modificar e fazer check-in neste projeto para configurar e configurar facilmente. inicie o nginx.
Este projeto é baseado no sistema web do solon. O banco de dados utiliza sqlite, portanto não há necessidade de instalar nenhum banco de dados no servidor.
Este sistema se aplica a certificados por meio do Let's encrypt e usa o script acme.sh para aplicação e renovação automatizadas. Somente certificados com mais de 60 dias serão renovados. emitidos no Linux são suportados.
Ao adicionar suporte para configuração de encaminhamento tcp/ip, algumas versões inferiores do nginx podem precisar ser recompiladas, e o módulo stream pode ser usado adicionando o parâmetro –with-stream para especificar a instalação. No entanto, no Ubuntu 18.04, nginx no arquivo. a biblioteca de software oficial já possui o módulo stream, não há necessidade de recompilar. Se o item de encaminhamento tcp estiver configurado neste sistema, o item de configuração de ngx_stream_module.so será introduzido automaticamente. maximizar a otimização do arquivo de configuração ngnix.
Endereço da versão profissional: https://pro.nginxwebui.cn
Função | Versão profissional | Versão de código aberto |
---|---|---|
Configuração básica de parâmetros | √ | √ |
configuração de parâmetros http | √ | √ |
Configuração de proxy reverso | √ | √ |
Configuração de parâmetros de fluxo | √ | √ |
Configuração de balanceamento de carga | √ | √ |
Modelo de parâmetro | √ | √ |
Upload de página da web estática | √ | √ |
Gerenciamento de arquivos de senha | √ | √ |
IP da lista negra | √ | √ |
Solicitação de certificado | √ | √ |
Documentação da interface API | √ | √ |
Gerenciamento remoto | √ | √ |
Gerenciamento unificado de nós e grupos | √ | × |
Sincronização unificada de arquivos de configuração de nó | √ | × |
Coleta de dados de informações do nó | √ | × |
Estatísticas de status do nó | √ | × |
Configuração de cache | √ | × |
coleção de logs nginx | √ | × |
visualização de log nginx | √ | × |
estatísticas de registro nginx | √ | × |
estatísticas de tráfego nginx | √ | × |
Tomando o sistema operacional Ubuntu como exemplo,
Nota: Este projeto requer que comandos do sistema sejam executados sob o usuário root, o que é extremamente fácil de ser explorado por hackers.
1. Instale o ambiente java e nginx
Ubuntu:
apt update
apt install openjdk-11-jdk
apt install nginx
Centos:
yum install java-11-openjdk
yum install nginx
Windows:
下载JDK安装包 https://www.oracle.com/java/technologies/downloads/
下载nginx http://nginx.org/en/download.html
配置JAVA环境变量
JAVA_HOME : JDK安装目录
Path : JDK安装目录bin
重启电脑
2. Baixe o jar do pacote de versão mais recente
Linux: mkdir /home/nginxWebUI/
wget -O /home/nginxWebUI/nginxWebUI.jar https://gitee.com/cym1102/nginxWebUI/releases/download/4.2.5/nginxWebUI-4.2.5.jar
Windows: 直接使用浏览器下载 https://gitee.com/cym1102/nginxWebUI/releases/download/4.2.5/nginxWebUI-4.2.5.jar 到 D:/home/nginxWebUI/nginxWebUI.jar
Se houver uma nova versão, você só precisará modificar a versão no caminho.
3. Inicie o programa
Linux: nohup java -jar -Dfile.encoding=UTF-8 /home/nginxWebUI/nginxWebUI.jar --server.port=8080 --project.home=/home/nginxWebUI/ > /dev/null &
Windows: java -jar -Dfile.encoding=UTF-8 D:/home/nginxWebUI/nginxWebUI.jar --server.port=8080 --project.home=D:/home/nginxWebUI/
Descrição do parâmetro (todos opcionais)
--server.port ocupa a porta, começa com a porta 8080 por padrão
--project.home diretório do arquivo de configuração do projeto, que armazena arquivos de banco de dados, arquivos de certificado, logs, etc., o padrão é /home/nginxWebUI/
--spring.database.type=mysql Use outros bancos de dados, deixe em branco para usar o banco de dados sqlite local, opcional mysql
--spring.datasource.url=jdbc:mysql://ip:port/nginxwebui url do banco de dados
--spring.datasource.username=usuário raiz do banco de dados
--spring.datasource.password=passar senha do banco de dados
Observe que os comandos do Linux adicionam um E comercial no final para indicar que o projeto está sendo executado em segundo plano.
Este projeto produziu uma imagem docker que suporta a plataforma x86_64/arm64/arm v7, incluindo nginx e nginxWebUI, e integra o gerenciamento e operação do nginx.
1. Instale o ambiente do contêiner docker
Ubuntu:
apt install docker.io
Centos:
yum install docker
2. Puxe a imagem:
docker pull cym1102/nginxwebui:latest
或者
docker pull registry.cn-hangzhou.aliyuncs.com/cym19871102/nginxwebui:latest
3. Inicie o contêiner:
docker run -itd
-v /home/nginxWebUI:/home/nginxWebUI
-e BOOT_OPTIONS="--server.port=8080"
--net=host
--restart=always
cym1102/nginxwebui:latest
或者
docker run -itd
-v /home/nginxWebUI:/home/nginxWebUI
-e BOOT_OPTIONS="--server.port=8080"
--net=host
--restart=always
registry.cn-hangzhou.aliyuncs.com/cym19871102/nginxwebui:latest
Perceber:
Use o parâmetro --net=host ao iniciar o contêiner para mapear diretamente a porta local. Como o nginx interno pode usar qualquer porta, todas as portas da máquina local devem ser mapeadas.
O contêiner precisa mapear o caminho /home/nginxWebUI:/home/nginxWebUI. Todos os arquivos de dados do projeto são armazenados neste caminho, incluindo bancos de dados, arquivos de configuração nginx, logs, certificados, etc. certifique-se de que os dados do projeto não sejam perdidos. Observe Backup.
O parâmetro -e BOOT_OPTIONS pode preencher os parâmetros de inicialização do Java e você pode usar esse parâmetro para modificar o número da porta.
--server.port ocupa a porta. Se não for preenchido, ele iniciará na porta 8080 por padrão.
Outro: O arquivo de configuração ao usar docker-compose é o seguinte
version: "3.2"
services:
nginxWebUi-server:
image: cym1102/nginxwebui:latest
volumes:
- type: bind
source: "/home/nginxWebUI"
target: "/home/nginxWebUI"
environment:
BOOT_OPTIONS: "--server.port=8080"
network_mode: "host"
restart: always
或者
version: "3.2"
services:
nginxWebUi-server:
image: registry.cn-hangzhou.aliyuncs.com/cym19871102/nginxwebui:latest
volumes:
- type: bind
source: "/home/nginxWebUI"
target: "/home/nginxWebUI"
environment:
BOOT_OPTIONS: "--server.port=8080"
network_mode: "host"
restart: always
Use maven para compilar e empacotar
mvn clean package
Construa uma imagem usando docker
docker build -t nginxwebui:latest .
vim /etc/systemd/system/nginxwebui.service
[Unit]
Description=NginxWebUI
After=syslog.target
After=network.target
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/home/nginxWebUI
ExecStart=/usr/bin/java -jar -Dfile.encoding=UTF-8 /home/nginxWebUI/nginxWebUI.jar
Restart=always
[Install]
WantedBy=multi-user.target
executar depois
systemctl daemon-reload
systemctl enable nginxwebui.service
systemctl start nginxwebui.service
Abra http://xxx.xxx.xxx.xxx:8080 para entrar na página inicial
Página de login, ao abri-la pela primeira vez, será solicitado que você inicialize a conta de administrador.
Após entrar no sistema, você pode adicionar e modificar a conta do administrador no gerenciamento do administrador.
Na configuração do parâmetro http, você pode configurar o projeto http do nginx para encaminhamento de http. Várias configurações comuns são fornecidas por padrão. Outras configurações necessárias podem ser adicionadas, excluídas, modificadas e verificadas livremente. arquivos.
Os parâmetros do projeto de fluxo do nginx podem ser configurados na configuração dos parâmetros TCP, mas na maioria dos casos isso não é necessário.
No proxy reverso, você pode configurar o proxy reverso do nginx, ou seja, a função do servidor. Você pode habilitar a função SSL, fazer upload de arquivos pem e arquivos de chave diretamente da página da web ou usar o certificado aplicado no sistema para habilitar diretamente o. função http para https, você também pode ativar o protocolo http2.
No balanceamento de carga, você pode configurar a função de balanceamento de carga do nginx, que é a função upstream. No gerenciamento de proxy reverso, você pode escolher o destino do proxy para ser o balanceamento de carga configurado.
No upload de arquivo estático html, você pode fazer upload diretamente do pacote compactado html para o caminho especificado. Após o upload, ele pode ser usado diretamente no proxy reverso, eliminando a necessidade de fazer upload de arquivos html no Linux.
Os certificados podem ser adicionados no gerenciamento de certificados e emitidos e renovados. Após a ativação da renovação agendada, o sistema renovará automaticamente o certificado que está prestes a expirar. Nota: O certificado é emitido usando o modo DNS do acme.sh. que precisa cooperar com aliKey e aliSecret do Alibaba Cloud para usar. Solicite primeiro aliKey e aliSecret.
Gerenciamento de arquivos de backup, aqui você pode ver a versão histórica de backup do nginx.cnf. Quando ocorre um erro no nginx, você pode optar por reverter para uma determinada versão histórica.
O arquivo conf é finalmente gerado e outras modificações manuais podem ser feitas aqui. Depois de confirmar que as modificações estão corretas, o arquivo conf local pode ser substituído, verificado e reiniciado. Você pode optar por gerar um único arquivo nginx.conf ou separar cada um. arquivo de configuração em conf de acordo com o nome de domínio .d.
Gerenciamento de servidor remoto, se houver vários servidores nginx, você pode implantar o nginxWebUI em todos eles, fazer login em um deles, adicionar o IP e o nome de usuário e a senha de outros servidores no gerenciamento remoto e gerenciar todos os servidores nginx em uma máquina.
Fornece função de sincronização com um clique, que pode sincronizar a configuração de dados e arquivos de certificado de um determinado servidor para outros servidores
Este sistema fornece chamada de interface http. Abra http://xxx.xxx.xxx.xxx:8080/doc.html para visualizar a página da interface smart-doc.
A chamada da interface precisa adicionar o token no cabeçalho da solicitação http. Para obter o token, você precisa primeiro abrir a permissão de chamada da interface do usuário no gerenciamento do administrador e, em seguida, chamar a interface do token através do nome de usuário e senha para obter o token. .
Caso você esqueça sua senha de login ou não salve o código QR da verificação em duas etapas, siga o tutorial abaixo para redefinir sua senha e desativar a verificação em duas etapas.
Método de instalação 1.jar, execute o comando
java -jar /home/nginxWebUI/nginxWebUI.jar --project.home=/home/nginxWebUI/ --project.findPass=true
--project.home é o diretório onde o arquivo do projeto está localizado ou o diretório de mapeamento ao usar um contêiner docker
--project.findPass é se deve imprimir nome de usuário e senha
Após a operação bem-sucedida, você pode redefinir e imprimir todos os nomes de usuário e senhas e desativar a verificação em duas etapas.
2. Método de instalação do Docker, primeiro execute o comando para entrar no contêiner do Docker, onde {ID} é o ID do contêiner
docker exec -it {ID} /bin/sh
Execute o comando novamente
java -jar /home/nginxWebUI.jar --project.findPass=true
Após a operação bem-sucedida, você pode redefinir e imprimir todos os nomes de usuário e senhas e desativar a verificação em duas etapas.