nginx Proxy

Wenn Webman direkten Zugriff auf das Internet benötigt, wird empfohlen, einen nginx-Proxy vor Webman zu schalten. Dies hat folgende Vorteile:

  • Statische Ressourcen werden von nginx verarbeitet, sodass sich Webman auf die Geschäftslogik konzentrieren kann.
  • Es ermöglicht mehreren Webman-Instanzen die gemeinsame Nutzung der Ports 80 und 443, indem verschiedene Sites durch Domains unterschieden werden, um mehrere Sites auf einem Server bereitzustellen.
  • Es kann die Koexistenz von php-fpm und der Webman-Architektur ermöglichen.
  • Nginx-Proxy-SSL implementiert https, was einfacher und effizienter ist.
  • Es kann unrechtmäßige Anfragen aus dem Internet streng filtern.

Beispiel für nginx Proxy

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

server {
  server_name Ihre_Domain;
  listen 80;
  access_log off;
  # Hinweis: Hier muss unbedingt das public-Verzeichnis unter Webman konfiguriert werden, nicht das Wurzelverzeichnis von Webman
  root /your/webman/public;

  location ^~ / {
      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 "";
      if (!-e $request_filename){
          proxy_pass http://webman;
      }
  }

  # Zugang zu allen Dateien, die mit .php enden, verweigern
  location ~ \.php$ {
      return 404;
  }

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

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

}

Im Allgemeinen müssen Entwickler in der obigen Konfiguration nur server_name und root auf die tatsächlichen Werte setzen. Die anderen Felder müssen nicht konfiguriert werden.

Hinweis
Besonders wichtig ist, dass die root-Option unbedingt auf das public-Verzeichnis unter Webman konfiguriert werden muss. Stellen Sie auf keinen Fall direkt das Verzeichnis von Webman ein, da sonst alle Ihre Dateien möglicherweise aus dem Internet heruntergeladen werden können, einschließlich sensibler Dateien wie Datenbankkonfigurationen.