Beispiel NGINX Konfiguration für OrangeHRM: Anleitung für eine optimale Einrichtung

Spread the info

OrangeHRM ist eine beliebte Open-Source-HR-Management-Software, die sich gut für die Verwaltung von Personalangelegenheiten eignet. Wenn du planst, OrangeHRM selbst zu hosten und dafür den NGINX-Server zu verwenden, bist du hier genau richtig. Dieser Artikel erklärt dir, wie du eine NGINX-Konfiguration für die sichere und effiziente Bereitstellung von OrangeHRM erstellen kannst. Dabei stelle ich eine bewährte Konfiguration vor, die du für deine eigenen Zwecke anpassen kannst.

Warum NGINX für OrangeHRM?

NGINX ist bekannt für seine Leistungsfähigkeit und Effizienz bei der Bereitstellung von Webdiensten. Die Vorteile, NGINX als HTTP-Server für OrangeHRM zu verwenden, sind:

  • Hohe Performance durch geringeren Speicherbedarf und eine effiziente Anfragebearbeitung.
  • Skalierbarkeit, was besonders wichtig ist, wenn die Anzahl der Nutzer von OrangeHRM wächst.
  • Flexibilität, um spezifische Konfigurationen vorzunehmen und Sicherheitseinstellungen einfach umzusetzen.

Beispielkonfiguration für NGINX und OrangeHRM

Im Folgenden findest du eine anonymisierte NGINX-Konfiguration, die auf die Bereitstellung von OrangeHRM angepasst ist. Diese Konfiguration deckt grundlegende Sicherheitsaspekte ab und sorgt für eine optimierte Nutzung von Server-Ressourcen.

server {
    if ($host = deine-domain.tld) {
        return 301 https://$host$request_uri;
    }

    listen 80;
    listen [::]:80;
    server_name deine-domain.tld;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    access_log off;
    error_log /var/log/nginx/error_deine-domain.log;

    root /var/www/html/deine-domain.tld;
    index index.php index.html;

    server_name deine-domain.tld;
    client_max_body_size 10M;
    autoindex off;

    location / {
        try_files $uri $uri/ /index.php?$uri&$args;
    }

    location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        # Optional: Timeout für lange PHP-Prozesse erhöhen
        #fastcgi_read_timeout 3600s;
    }

    location ~ (/)?(build|lib|license|tests|test|apps|cache|config|data|log|plugins)(/.*)?$ {
        return 403;
    }

    location /log.txt {
        deny all;
    }

    location ~ (\.(bak|config|dist|inc|swp|xml|sql|sh|xsl|conf|ini|json)|~)$ {
        deny all;
    }

    location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt)$ {
        access_log off;
        expires max;
    }

    ssl_certificate /etc/letsencrypt/live/deine-domain.tld/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/deine-domain.tld/privkey.pem;
}

Erklärung der Konfiguration

  • HTTP zu HTTPS-Umleitung: Die erste server-Block sorgt dafür, dass alle HTTP-Anfragen automatisch auf HTTPS umgeleitet werden, um die Sicherheit zu erhöhen.
  • SSL/TLS-Konfiguration: Die zweite server-Block definiert den HTTPS-Listener mit aktivierter SSL-Unterstützung, inklusive der Pfade zu Zertifikat und Schlüssel.
  • Document Root: Der Pfad, der in der root-Direktive angegeben ist, zeigt auf das Verzeichnis, in dem sich die OrangeHRM-Installation befindet.
  • PHP-Unterstützung: Der location-Block für PHP-Dateien leitet Anfragen an den PHP-FPM-Socket weiter und sorgt so für eine effiziente Verarbeitung von PHP-Skripten.
  • Sicherheitsmaßnahmen:
    • Verbot sensibler Verzeichnisse: Der location-Block, der auf build, lib, config usw. verweist, verhindert den Zugriff auf sensible Verzeichnisse.
    • Dateityp-Einschränkungen: Es gibt Blöcke, die den Zugriff auf bestimmte Dateitypen wie .bak, .sql und andere kritische Dateien verbieten.
    • Caching von statischen Dateien: Dateien wie Bilder, CSS und JavaScript werden für maximale Effizienz zwischengespeichert.

Anpassung und Optimierung

Diese Konfiguration kann je nach Bedarf angepasst werden:

  • Pfadanpassung: Ändere den root-Pfad entsprechend deiner OrangeHRM-Installation.
  • SSL-Zertifikate: Stelle sicher, dass deine Zertifikate korrekt eingerichtet sind, insbesondere, wenn du sie über einen anderen Dienst als Certbot beziehst.
  • Client-Maximum: Der Parameter client_max_body_size kann angepasst werden, um Upload-Beschränkungen festzulegen.

Fazit

Die NGINX-Konfiguration für die Bereitstellung von OrangeHRM erfordert zwar etwas technisches Verständnis, doch mit der oben gezeigten Beispielkonfiguration bist du gut vorbereitet. Passe die Einstellungen an deine speziellen Anforderungen an, um eine sichere und leistungsfähige Hosting-Umgebung für OrangeHRM zu schaffen.

Diese Konfiguration bietet einen soliden Ausgangspunkt, um OrangeHRM in einer Produktionsumgebung mit NGINX sicher und effektiv zu hosten. Viel Erfolg bei deiner Installation und Einrichtung!

Kommentar verfassen

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