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 aufbuild
,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.
- Verbot sensibler Verzeichnisse: Der
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!