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 dieroot
-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.