Foto von RealToughCandy.com: https://www.pexels.com/de-de/foto/person-grun-festhalten-halten-11035538/

📌 Warum dieses Skript?

NGINX ist einer der leistungsfähigsten Webserver, aber die Konfiguration kann für Einsteiger kompliziert sein. Mein NGINX Konfigurationsgenerator erleichtert den Prozess, indem er automatisch eine vollständige nginx.conf auf Basis der Benutzereingaben erstellt.


🛠️ Features

Automatische Erstellung von NGINX-Configs für verschiedene Szenarien
SSL-Unterstützung (automatische Zertifikatskonfiguration)
Weiterleitung von HTTP auf HTTPS (301 Redirect)
HSTS-Header aktivieren für zusätzliche Sicherheit
Einfache Web-Oberfläche für Benutzer ohne tiefgehende Server-Kenntnisse


📌 Beispiel: Generierte NGINX-Konfiguration

Angenommen, ein Benutzer gibt folgende Werte ein:

  • Domain: example.com
  • Root-Pfad: /var/www/html
  • SSL aktiviert:
  • HSTS aktiviert:
  • HTTP zu HTTPS-Redirect:

Das Skript erzeugt automatisch folgende NGINX-Konfiguration:

server {
    listen 80;
    server_name example.com;
    root /var/www/html;
    index index.html index.htm index.php;

    # SSL aktivieren
    listen 443 ssl;
    ssl_certificate /etc/ssl/certs/example.crt;
    ssl_certificate_key /etc/ssl/private/example.key;

    # HTTP zu HTTPS-Redirect
    if ($scheme = http) {
        return 301 https://$host$request_uri;
    }

    # Sicherheitsheader (HSTS)
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
}

💡 Diese Datei kann direkt als NGINX-Konfiguration verwendet werden!


🔎 Code-Analyse – Wichtige Abschnitte erklärt

Falls jemand selbst lernen möchte, wie man so einen NGINX-Generator in PHP baut, erkläre ich hier die wichtigsten Teile:

1️⃣ Nutzer-Formular verarbeiten

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $serverName = $_POST['server_name'];
    $rootPath = $_POST['root_path'];
    $enableSsl = isset($_POST['enable_ssl']) ? 'yes' : 'no';
    $sslCertificate = $_POST['ssl_certificate'];
    $sslCertificateKey = $_POST['ssl_certificate_key'];
    $redirectHttpToHttps = isset($_POST['redirect_http_to_https']) ? 'yes' : 'no';
    $enableHsts = isset($_POST['enable_hsts']) ? 'yes' : 'no';

👉 Hier werden alle Formulareingaben abgefragt (Domain, SSL, Redirects, etc.).


2️⃣ Grundstruktur der NGINX-Config aufbauen

$generatedNginxConfig = "server {\n";
$generatedNginxConfig .= "    listen 80;\n";
$generatedNginxConfig .= "    server_name {$serverName};\n";
$generatedNginxConfig .= "    root {$rootPath};\n";
$generatedNginxConfig .= "    index index.html index.htm index.php;\n";


👉
Hier wird die Basis für den Serverblock gesetzt (Standard-Ports, Root-Pfad, Index-Dateien).


3️⃣ SSL und HTTPS-Weiterleitung aktivieren

if ($enableSsl === 'yes') {
    $generatedNginxConfig .= "    listen 443 ssl;\n";
    $generatedNginxConfig .= "    ssl_certificate {$sslCertificate};\n";
    $generatedNginxConfig .= "    ssl_certificate_key {$sslCertificateKey};\n";
}

👉 Wenn der Nutzer SSL aktiviert hat, werden die Zertifikats-Pfade hinzugefügt.

if ($redirectHttpToHttps === 'yes') {
    $generatedNginxConfig .= "    if (\$scheme = http) {\n";
    $generatedNginxConfig .= "        return 301 https://\$host\$request_uri;\n";
    $generatedNginxConfig .= "    }\n";
}

👉 Falls ein HTTP-zu-HTTPS-Redirect gewünscht ist, wird eine 301-Weiterleitung gesetzt.


4️⃣ HSTS-Header für Sicherheit einfügen

if ($enableHsts === 'yes') {
    $generatedNginxConfig .= "    add_header Strict-Transport-Security \"max-age=31536000; includeSubDomains\" always;\n";
}

👉 Dieser Header sorgt dafür, dass Browser HTTPS dauerhaft priorisieren.


📥 Download & Nutzung

💾 Download: nginx_generator.php
📌 Lizenz: Open-Source – Feel free to use & modify!

📢 Fragen oder Verbesserungsvorschläge? Schreib mir! 🚀


💡 Fazit – Warum ist das Skript nützlich?

Zeitsparend – Keine manuelle NGINX-Config mehr nötig
Fehlersicher – Verhindert falsche oder unvollständige Einstellungen
Flexibel – Unterstützt SSL, Redirects & HSTS
Einsteigerfreundlich – Selbst für Leute ohne große Erfahrung nutzbar

Von Daniel Mattick

Ich bin Daniel, Technik-Enthusiast mit einer Vorliebe für Automatisierung, Skripting und alles, was IT-Prozesse einfacher macht. Ich bastle gerne an Lösungen, die den Alltag in der IT erleichtern – egal ob für Profis oder Neugierige, die sich in die Materie einarbeiten wollen. Dabei teile ich mein Wissen und meine Skripte in der IT Toolbox, weil ich finde: Gute Lösungen sollte man nicht für sich behalten!

4 Gedanken zu „NGINX Konfigurationsgenerator – Erstelle NGINX-Configs mit wenigen Klicks 🚀“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert