Nginx-Webkonfigurationstool
QQ technische Austauschgruppe 1: 1106758598
QQ technische Austauschgruppe 2: 560797506
E-Mail: [email protected]
Offizielle Website-Adresse: https://www.nginxwebui.cn
Adresse der professionellen Version: https://pro.nginxwebui.cn
Gitee: https://gitee.com/cym1102/nginxWebUI
Github: https://github.com/cym1102/nginxWebUI
Video-Tutorial: https://www.bilibili.com/video/BV18A4y1D7GZ
WeChat-Spenden-QR-Code
nginxWebUI ist ein grafisches Verwaltungstool für die Nginx-Konfiguration. Mithilfe von Webseiten können Sie schnell verschiedene Funktionen von Nginx konfigurieren, darunter HTTP-Protokollweiterleitung, TCP-Protokollweiterleitung, Reverse-Proxy, Lastausgleich, statischer HTML-Server sowie die automatische Anwendung und Erneuerung von SSL-Zertifikaten. , Konfiguration usw. Nach der Konfiguration kann die Datei nginx.conf auf einmal generiert werden. Gleichzeitig kann Nginx so gesteuert werden, dass diese Datei zum Starten und Neuladen verwendet wird, wodurch die grafische Steuerung von Nginx im geschlossenen Regelkreis abgeschlossen wird.
nginxWebUI kann auch mehrere Nginx-Servercluster verwalten. Sie können jederzeit mit einem Klick zum entsprechenden Server wechseln. Sie können die Konfiguration eines bestimmten Servers auch mit einem Klick mit anderen Servern synchronisieren, um die Clusterverwaltung zu erleichtern.
Nginx selbst verfügt über komplexe Funktionen. NginxWebUI kann jedoch nicht alle Funktionen von Nginx abdecken. Für Nginx-Konfigurationselemente, die nicht von der Plattform abgedeckt werden, können Sie benutzerdefinierte Parametervorlagen verwenden, um eindeutige Parameter zu generieren conf-Datei.
Nach der Bereitstellung dieses Projekts müssen Sie nicht mehr online nach Konfigurationscodes suchen, um Nginx zu konfigurieren. Sie müssen SSL-Zertifikate nicht mehr manuell beantragen und konfigurieren. Sie müssen dieses Projekt nur noch hinzufügen, löschen, ändern und einchecken Starten Sie Nginx.
Dieses Projekt basiert auf dem Websystem von Solon. Die Datenbank verwendet SQLite, sodass keine Datenbank auf dem Server installiert werden muss.
Dieses System beantragt Zertifikate über Let's encrypt und verwendet das acme.sh-Skript für die automatische Beantragung und Erneuerung. Nur Zertifikate, die älter als 60 Tage sind, werden erneuert unter Linux ausgegeben werden unterstützt.
Beim Hinzufügen von Unterstützung für die TCP/IP-Weiterleitungskonfiguration müssen möglicherweise einige niedrigere Versionen von Nginx neu kompiliert werden, und das Stream-Modul kann durch Hinzufügen des Parameters –with-stream verwendet werden, um die Installation anzugeben. Unter Ubuntu 18.04 ist Nginx jedoch in der Die offizielle Softwarebibliothek verfügt bereits über das Stream-Modul. Wenn das TCP-Weiterleitungselement in diesem System konfiguriert ist, wird das Konfigurationselement ngx_stream_module.so automatisch eingeführt Maximieren Sie die Optimierung der NGNIX-Konfigurationsdatei.
Adresse der professionellen Version: https://pro.nginxwebui.cn
Funktion | Professionelle Version | Open-Source-Version |
---|---|---|
Grundlegende Parameterkonfiguration | √ | √ |
Konfiguration der http-Parameter | √ | √ |
Reverse-Proxy-Konfiguration | √ | √ |
Stream-Parameterkonfiguration | √ | √ |
Konfiguration des Lastausgleichs | √ | √ |
Parametervorlage | √ | √ |
Statischer Webseiten-Upload | √ | √ |
Verwaltung von Passwortdateien | √ | √ |
IP auf die schwarze Liste setzen | √ | √ |
Zertifikatsantrag | √ | √ |
Dokumentation der API-Schnittstelle | √ | √ |
Fernverwaltung | √ | √ |
Einheitliche Verwaltung von Knoten und Gruppen | √ | × |
Einheitliche Synchronisierung von Knotenkonfigurationsdateien | √ | × |
Erfassung von Knoteninformationsdaten | √ | × |
Statistiken zum Knotenstatus | √ | × |
Cache-Konfiguration | √ | × |
Nginx-Protokollsammlung | √ | × |
Nginx-Protokollanzeige | √ | × |
Nginx-Protokollstatistiken | √ | × |
Nginx-Verkehrsstatistiken | √ | × |
Am Beispiel des Ubuntu-Betriebssystems:
Hinweis: Für dieses Projekt müssen Systembefehle unter dem Root-Benutzer ausgeführt werden, was von Hackern äußerst leicht ausgenutzt werden kann. Bitte ändern Sie das Passwort unbedingt in ein komplexes.
1. Installieren Sie die Java-Umgebung und 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. Laden Sie das neueste Release-Paket-JAR herunter
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
Wenn es eine neue Version gibt, müssen Sie nur die Version im Pfad ändern.
3. Starten Sie das Programm
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/
Parameterbeschreibung (alle optional)
--server.port belegt den Port, beginnt standardmäßig mit Port 8080
--project.home Projektkonfigurationsdateiverzeichnis, in dem Datenbankdateien, Zertifikatdateien, Protokolle usw. gespeichert werden. Der Standardwert ist /home/nginxWebUI/
--spring.database.type=mysql Andere Datenbanken verwenden, leer lassen, um die lokale SQLite-Datenbank zu verwenden, optional MySQL
--spring.datasource.url=jdbc:mysql://ip:port/nginxwebui Datenbank-URL
--spring.datasource.username=Root-Datenbankbenutzer
--spring.datasource.password=Datenbankpasswort übergeben
Beachten Sie, dass Linux-Befehle am Ende ein kaufmännisches Und hinzufügen, um anzuzeigen, dass das Projekt im Hintergrund ausgeführt wird.
Dieses Projekt hat ein Docker-Image erstellt, das die Plattform x86_64/arm64/arm v7, einschließlich Nginx und NginxWebUI, unterstützt und die Verwaltung und den Betrieb von Nginx integriert.
1. Installieren Sie die Docker-Containerumgebung
Ubuntu:
apt install docker.io
Centos:
yum install docker
2. Ziehen Sie das Bild:
docker pull cym1102/nginxwebui:latest
或者
docker pull registry.cn-hangzhou.aliyuncs.com/cym19871102/nginxwebui:latest
3. Starten Sie den Container:
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
Beachten:
Bitte verwenden Sie beim Starten des Containers den Parameter --net=host, um den lokalen Port direkt zuzuordnen. Da internes Nginx jeden Port verwenden kann, müssen alle Ports des lokalen Computers zugeordnet werden.
Der Container muss den Pfad /home/nginxWebUI:/home/nginxWebUI zuordnen. Alle Datendateien des Projekts werden in diesem Pfad gespeichert, einschließlich Datenbanken, Nginx-Konfigurationsdateien, Protokollen, Zertifikaten usw. Beim Aktualisieren des Images kann dieses Verzeichnis gespeichert werden Stellen Sie sicher, dass die Projektdaten nicht verloren gehen. Bitte beachten Sie Backup.
Der Parameter -e BOOT_OPTIONS kann die Java-Startparameter ausfüllen und Sie können diesen Parameter zum Ändern der Portnummer verwenden.
--server.port belegt den Port. Wenn er nicht ausgefüllt ist, wird standardmäßig auf Port 8080 gestartet.
Noch etwas: Die Konfigurationsdatei bei Verwendung von Docker-Compose lautet wie folgt
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
Verwenden Sie Maven zum Kompilieren und Packen
mvn clean package
Erstellen Sie ein Image mit 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
danach ausführen
systemctl daemon-reload
systemctl enable nginxwebui.service
systemctl start nginxwebui.service
Öffnen Sie http://xxx.xxx.xxx.xxx:8080, um die Homepage aufzurufen
Wenn Sie die Anmeldeseite zum ersten Mal öffnen, werden Sie aufgefordert, das Administratorkonto zu initialisieren.
Nach dem Betreten des Systems können Sie in der Administratorverwaltung das Administratorkonto hinzufügen und ändern.
In der HTTP-Parameterkonfiguration können Sie das HTTP-Projekt von nginx für die HTTP-Weiterleitung konfigurieren. Weitere erforderliche Konfigurationen können hinzugefügt, gelöscht, geändert und überprüft werden, um Protokolle zu erstellen Dateien.
Die Stream-Projektparameter von Nginx können in der TCP-Parameterkonfiguration konfiguriert werden, in den meisten Fällen ist dies jedoch nicht erforderlich.
Im Reverse-Proxy können Sie den Reverse-Proxy von Nginx, also die Serverfunktion, konfigurieren. Sie können die SSL-Funktion aktivieren, PEM-Dateien und Schlüsseldateien direkt von der Webseite hochladen oder das im System angewendete Zertifikat verwenden, um das direkt zu aktivieren Wenn Sie die HTTP-zu-https-Funktion verwenden, können Sie auch das http2-Protokoll aktivieren
Beim Lastausgleich können Sie die Lastausgleichsfunktion von Nginx konfigurieren, bei der es sich um die Upstream-Funktion handelt. Bei der Reverse-Proxy-Verwaltung können Sie das Proxy-Ziel als konfigurierten Lastausgleich auswählen.
Beim Hochladen statischer HTML-Dateien können Sie das komprimierte HTML-Paket direkt in den angegebenen Pfad hochladen. Nach dem Hochladen kann es direkt im Reverse-Proxy verwendet werden, sodass keine HTML-Dateien unter Linux hochgeladen werden müssen.
Zertifikate können in der Zertifikatsverwaltung hinzugefügt und ausgestellt und erneuert werden. Nachdem die geplante Verlängerung aktiviert wurde, erneuert das System automatisch das Zertifikat, das demnächst abläuft. Hinweis: Das Zertifikat wird im DNS-Modus von acme.sh ausgestellt. Für die Verwendung muss AliKey und AliSecret von Alibaba Cloud zusammenarbeiten. Bitte beantragen Sie zuerst AliKey und AliSecret
Sicherungsdateiverwaltung: Hier können Sie die gesicherte historische Version von nginx.cnf sehen. Wenn in nginx ein Fehler auftritt, können Sie ein Rollback auf eine bestimmte historische Version durchführen.
Die conf-Datei wird schließlich generiert und hier können weitere manuelle Änderungen vorgenommen werden. Nachdem bestätigt wurde, dass die Änderungen korrekt sind, kann die lokale conf-Datei überschrieben, überprüft und neu gestartet werden. Sie können wählen, ob Sie eine einzelne nginx.conf-Datei generieren möchten Konfigurationsdatei in conf entsprechend dem Domänennamen .d unter
Remote-Serververwaltung: Wenn mehrere Nginx-Server vorhanden sind, können Sie nginxWebUI auf allen bereitstellen, sich dann bei einem von ihnen anmelden, die IP sowie den Benutzernamen und das Kennwort anderer Server in der Remoteverwaltung hinzufügen und alle Nginx-Server verwalten eine Maschine.
Bietet eine Ein-Klick-Synchronisierungsfunktion, mit der die Datenkonfigurations- und Zertifikatsdateien eines bestimmten Servers mit anderen Servern synchronisiert werden können
Dieses System bietet HTTP-Schnittstellenaufrufe. Öffnen Sie http://xxx.xxx.xxx.xxx:8080/doc.html, um die Seite der Smart-Doc-Schnittstelle anzuzeigen.
Der Schnittstellenaufruf muss das Token im HTTP-Anforderungsheader hinzufügen. Um das Token zu erhalten, müssen Sie zunächst die Benutzerschnittstellenaufrufberechtigung in der Administratorverwaltung öffnen und dann die Tokenschnittstelle über den Benutzernamen und das Kennwort aufrufen, um das Token zu erhalten .
Wenn Sie Ihr Anmeldekennwort vergessen oder den QR-Code für die zweistufige Verifizierung nicht speichern, können Sie der folgenden Anleitung folgen, um Ihr Kennwort zurückzusetzen und die zweistufige Verifizierung zu deaktivieren.
1.jar-Installationsmethode, Befehl ausführen
java -jar /home/nginxWebUI/nginxWebUI.jar --project.home=/home/nginxWebUI/ --project.findPass=true
--project.home ist das Verzeichnis, in dem sich die Projektdatei befindet, oder das Zuordnungsverzeichnis bei Verwendung eines Docker-Containers
--project.findPass gibt an, ob Benutzername und Passwort gedruckt werden sollen
Nach erfolgreichem Vorgang können Sie alle Benutzernamen und Passwörter zurücksetzen, ausdrucken und die zweistufige Verifizierung deaktivieren.
2. Docker-Installationsmethode: Führen Sie zunächst den Befehl aus, um den Docker-Container aufzurufen, wobei {ID} die ID des Containers ist
docker exec -it {ID} /bin/sh
Führen Sie den Befehl erneut aus
java -jar /home/nginxWebUI.jar --project.findPass=true
Nach erfolgreichem Vorgang können Sie alle Benutzernamen und Passwörter zurücksetzen, ausdrucken und die zweistufige Verifizierung deaktivieren.