herramienta de configuración web nginx
Grupo de intercambio técnico QQ 1: 1106758598
QQ intercambio técnico grupo 2: 560797506
Correo electrónico: [email protected]
Dirección del sitio web oficial: https://www.nginxwebui.cn
Dirección de la versión profesional: https://pro.nginxwebui.cn
Casa rural: https://gitee.com/cym1102/nginxWebUI
Github: https://github.com/cym1102/nginxWebUI
Vídeotutorial: https://www.bilibili.com/video/BV18A4y1D7GZ
Código QR de donación de WeChat
nginxWebUI es una herramienta de administración gráfica para la configuración de nginx. Puede utilizar páginas web para configurar rápidamente varias funciones de nginx, incluido el reenvío de protocolo http, el reenvío de protocolo tcp, el proxy inverso, el equilibrio de carga, el servidor html estático y la solicitud y renovación automática de certificados SSL. , configuración, etc. Después de la configuración, el archivo nginx.conf se puede generar de una sola vez. Al mismo tiempo, se puede controlar a nginx para que use este archivo para iniciar y recargar, completando el control gráfico de bucle cerrado de nginx.
nginxWebUI también puede administrar múltiples clústeres de servidores nginx. Puede cambiar al servidor correspondiente para la configuración de nginx en cualquier momento con un solo clic. También puede sincronizar la configuración de un determinado servidor con otros servidores con un solo clic.
nginx en sí tiene funciones complejas. nginxWebUI no puede cubrir todas las funciones de nginx, pero puede cubrir el 90% de las configuraciones funcionales diarias de nginx. Para los elementos de configuración de nginx que no están cubiertos por la plataforma, puede usar plantillas de parámetros personalizadas para generar parámetros únicos en el. archivo de configuración.
Después de implementar este proyecto, ya no necesita buscar códigos de configuración en línea para configurar nginx. Ya no necesita solicitar y configurar certificados SSL manualmente. Solo necesita agregar, eliminar, modificar y registrar este proyecto para configurar y configurar fácilmente. iniciar nginx.
Este proyecto se basa en el sistema web de Solon. La base de datos utiliza sqlite, por lo que no es necesario instalar ninguna base de datos en el servidor.
Este sistema solicita certificados a través de Let's encrypt y utiliza el script acme.sh para la solicitud y renovación automatizadas. Los certificados que permiten la renovación se renovarán a las 2 a. m. todos los días. Solo se renovarán los certificados que tengan más de 60 días. emitidos bajo Linux son compatibles.
Al agregar soporte para la configuración de reenvío tcp/ip, es posible que sea necesario volver a compilar algunas versiones inferiores de nginx y el módulo stream se puede usar agregando el parámetro –with-stream para especificar la instalación. Sin embargo, en Ubuntu 18.04, nginx en el archivo. La biblioteca de software oficial ya tiene el módulo de transmisión, no es necesario volver a compilar. Si el elemento de reenvío TCP está configurado en este sistema, el elemento de configuración de ngx_stream_module.so se introducirá automáticamente. Maximice la optimización del archivo de configuración de ngnix.
Dirección de la versión profesional: https://pro.nginxwebui.cn
Función | Versión profesional | Versión de código abierto |
---|---|---|
Configuración de parámetros básicos | √ | √ |
configuración de parámetros http | √ | √ |
Configuración de proxy inverso | √ | √ |
Configuración de parámetros de flujo | √ | √ |
Configuración de equilibrio de carga | √ | √ |
Plantilla de parámetros | √ | √ |
Carga de página web estática | √ | √ |
Gestión de archivos de contraseñas | √ | √ |
Lista negra de direcciones IP | √ | √ |
Solicitud de certificado | √ | √ |
Documentación de la interfaz API | √ | √ |
Gestión remota | √ | √ |
Gestión unificada de nodos y grupos. | √ | × |
Sincronización unificada de archivos de configuración de nodos | √ | × |
Recopilación de datos de información de nodos. | √ | × |
Estadísticas de estado del nodo | √ | × |
Configuración de caché | √ | × |
colección de registros de nginx | √ | × |
visualización de registros de nginx | √ | × |
estadísticas de registro de nginx | √ | × |
estadísticas de tráfico nginx | √ | × |
Tomando el sistema operativo Ubuntu como ejemplo,
Nota: Este proyecto requiere que los comandos del sistema se ejecuten con el usuario root, lo cual es extremadamente fácil de explotar por parte de los piratas informáticos. Asegúrese de cambiar la contraseña por una compleja.
1. Instale el entorno java y nginx
Ubuntu:
apt update
apt install openjdk-11-jdk
apt install nginx
Centos:
yum install java-11-openjdk
yum install nginx
Ventanas:
下载JDK安装包 https://www.oracle.com/java/technologies/downloads/
下载nginx http://nginx.org/en/download.html
配置JAVA环境变量
JAVA_HOME : JDK安装目录
Path : JDK安装目录bin
重启电脑
2. Descargue el paquete de versión más reciente.
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
Si hay una nueva versión, solo necesita modificar la versión en la ruta.
3. Inicie el 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/
Descripción del parámetro (todo opcional)
--server.port ocupa el puerto, comienza con el puerto 8080 de forma predeterminada
--project.home directorio de archivos de configuración del proyecto, que almacena archivos de bases de datos, archivos de certificados, registros, etc., el valor predeterminado es /home/nginxWebUI/
--spring.database.type=mysql Use otras bases de datos, déjelo en blanco para usar la base de datos sqlite local, mysql opcional
--spring.datasource.url=jdbc:mysql://ip:port/nginxwebui URL de la base de datos
--spring.datasource.username=usuario raíz de la base de datos
--spring.datasource.password=contraseña de la base de datos
Tenga en cuenta que los comandos de Linux agregan un signo al final para indicar que el proyecto se está ejecutando en segundo plano.
Este proyecto produjo una imagen de Docker que admite la plataforma x86_64/arm64/arm v7, incluidos nginx y nginxWebUI, e integra la administración y operación de nginx.
1. Instale el entorno del contenedor Docker
Ubuntu:
apt install docker.io
Centos:
yum install docker
2. Extrae la imagen:
docker pull cym1102/nginxwebui:latest
或者
docker pull registry.cn-hangzhou.aliyuncs.com/cym19871102/nginxwebui:latest
3. Inicie el contenedor:
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
Aviso:
Utilice el parámetro --net=host al iniciar el contenedor para asignar directamente el puerto local. Debido a que nginx interno puede usar cualquier puerto, todos los puertos de la máquina local deben estar asignados.
El contenedor debe asignar la ruta /home/nginxWebUI:/home/nginxWebUI. Todos los archivos de datos del proyecto se almacenan en esta ruta, incluidas bases de datos, archivos de configuración de nginx, registros, certificados, etc. Al actualizar la imagen, este directorio puede. asegúrese de que los datos del proyecto no se pierdan. Tenga en cuenta Copia de seguridad.
El parámetro -e BOOT_OPTIONS puede completar los parámetros de inicio de Java y puede usar este parámetro para modificar el número de puerto.
--server.port ocupa el puerto. Si no se completa, se iniciará en el puerto 8080 de forma predeterminada.
Otro: el archivo de configuración cuando se usa docker-compose es el siguiente
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
Utilice maven para compilar y empaquetar
mvn clean package
Construir una imagen usando la ventana acoplable
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
ejecutar después
systemctl daemon-reload
systemctl enable nginxwebui.service
systemctl start nginxwebui.service
Abra http://xxx.xxx.xxx.xxx:8080 para ingresar a la página de inicio
Página de inicio de sesión, cuando la abra por primera vez, se le pedirá que inicialice la cuenta de administrador.
Luego de ingresar al sistema, podrá agregar y modificar la cuenta de administrador en la gestión de administrador.
En la configuración del parámetro http, puede configurar el proyecto http de nginx para el reenvío http. Se proporcionan varias configuraciones comunes de forma predeterminada. Otras configuraciones requeridas se pueden agregar, eliminar, modificar y verificar libremente. Puede verificar para habilitar el seguimiento de registros para generar registros. archivos.
Los parámetros del proyecto de flujo de nginx se pueden configurar en la configuración de parámetros TCP, pero en la mayoría de los casos no es necesario.
En el proxy inverso, puede configurar el proxy inverso de nginx, es decir, la función del servidor. Puede habilitar la función SSL, cargar archivos pem y archivos clave directamente desde la página web, o usar el certificado aplicado en el sistema para habilitar directamente. Función http a https, también puede habilitar el protocolo http2.
En el equilibrio de carga, puede configurar la función de equilibrio de carga de nginx, que es la función ascendente. En la gestión de proxy inverso, puede elegir el destino del proxy para que sea el equilibrio de carga configurado.
En la carga de archivos estáticos html, puede cargar directamente el paquete comprimido html en la ruta especificada. Después de cargarlo, se puede usar directamente en el proxy inverso, lo que elimina la necesidad de cargar archivos html en Linux.
Los certificados se pueden agregar en la administración de certificados y emitirse y renovarse. Una vez activada la renovación programada, el sistema renovará automáticamente el certificado que está a punto de caducar. Nota: El certificado se emite utilizando el modo dns de acme.sh. que necesita cooperar con aliKey y aliSecret de Alibaba Cloud para su uso. Solicite primero aliKey y aliSecret.
Administración de archivos de respaldo, aquí puede ver la versión histórica de respaldo de nginx.cnf. Cuando ocurre un error en nginx, puede optar por retroceder a una determinada versión histórica.
El archivo conf finalmente se genera y se pueden realizar más modificaciones manuales aquí. Después de confirmar que las modificaciones son correctas, el archivo conf local se puede sobrescribir, verificar y reiniciar. Puede optar por generar un único archivo nginx.conf o separarlos. archivo de configuración en conf según el nombre de dominio .d.
Administración remota de servidores, si hay varios servidores nginx, puede implementar nginxWebUI en todos ellos, luego iniciar sesión en uno de ellos, agregar la IP, el nombre de usuario y la contraseña de otros servidores en la administración remota, y podrá administrar todos los servidores nginx en una máquina.
Proporciona una función de sincronización con un solo clic, que puede sincronizar la configuración de datos y los archivos de certificado de un determinado servidor con otros servidores.
Este sistema proporciona llamadas a la interfaz http. Abra http://xxx.xxx.xxx.xxx:8080/doc.html para ver la página de la interfaz smart-doc.
La llamada de la interfaz debe agregar el token en el encabezado de la solicitud http. Para obtener el token, primero debe abrir el permiso de llamada de la interfaz de usuario en la administración del administrador y luego llamar a la interfaz del token a través del nombre de usuario y la contraseña para obtener el token. .
Si olvida su contraseña de inicio de sesión o no guarda el código QR de verificación en dos pasos, puede seguir el tutorial a continuación para restablecer su contraseña y desactivar la verificación en dos pasos.
1.método de instalación jar, ejecutar comando
java -jar /home/nginxWebUI/nginxWebUI.jar --project.home=/home/nginxWebUI/ --project.findPass=true
--project.home es el directorio donde se encuentra el archivo del proyecto, o el directorio de mapeo cuando se usa un contenedor acoplable
--project.findPass es si se debe imprimir el nombre de usuario y la contraseña
Después de una operación exitosa, puede restablecer e imprimir todos los nombres de usuario y contraseñas y desactivar la verificación en dos pasos.
2. Método de instalación de Docker, primero ejecute el comando para ingresar al contenedor de Docker, donde {ID} es la identificación del contenedor
docker exec -it {ID} /bin/sh
Ejecute el comando nuevamente
java -jar /home/nginxWebUI.jar --project.findPass=true
Después de una operación exitosa, puede restablecer e imprimir todos los nombres de usuario y contraseñas y desactivar la verificación en dos pasos.