Nginx-Proxy

Wenn webman direkten Zugriff von außen benötigt, wird empfohlen, einen Nginx-Proxy vor webman zu setzen. Dies bietet folgende Vorteile:

  • Statische Ressourcen werden von Nginx verarbeitet, sodass webman sich auf die Geschäftslogik konzentrieren kann
  • Mehrere webman-Instanzen können die Ports 80 und 443 gemeinsam nutzen und über verschiedene Domains unterschieden werden, um mehrere Websites auf einem Server zu betreiben
  • Ermöglicht das Zusammenarbeiten von PHP-FPM- und webman-Architektur
  • Nginx-Proxy mit SSL für HTTPS ist einfacher und effizienter
  • Kann illegale Anfragen aus dem externen Netz strikt filtern

Nginx-Proxy-Beispiel

upstream webman {
    server 127.0.0.1:8787;
    keepalive 10240;
}

server {
  server_name domain_der_website;
  listen 80;
  access_log off;
  # Wichtig: root muss auf das public-Verzeichnis unter webman zeigen, nicht auf das webman-Stammverzeichnis
  root /your/webman/public;

  location / {
    try_files $uri @proxy;
  }

  location @proxy {
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    proxy_pass http://webman;
  }

  # Zugriff auf alle Dateien mit Endung .php verweigern
  location ~ \.php$ {
      return 404;
  }

  # Zugriff auf .well-known-Verzeichnis erlauben
  location ~ ^/\.well-known/ {
    allow all;
  }

  # Zugriff auf alle Dateien oder Verzeichnisse, die mit . beginnen, verweigern
  location ~ /\. {
      return 404;
  }

}

In der Regel müssen Entwickler nur server_name und root mit den tatsächlichen Werten konfigurieren; andere Felder müssen nicht konfiguriert werden.

Hinweis
Besonders wichtig: Die Option root muss auf das public-Verzeichnis unter webman zeigen. Setzen Sie sie niemals auf das webman-Stammverzeichnis, sonst könnten alle Ihre Dateien aus dem Internet herunterladbar und zugreifbar sein, einschließlich sensibler Dateien wie der Datenbankkonfiguration.