Heim > Backend-Entwicklung > PHP-Tutorial > Wie konfiguriere ich Nginx für die Bereitstellung von Inhalten aus zwei Unterordnern mit unterschiedlichen Stammpfaden?

Wie konfiguriere ich Nginx für die Bereitstellung von Inhalten aus zwei Unterordnern mit unterschiedlichen Stammpfaden?

Susan Sarandon
Freigeben: 2024-11-23 00:52:12
Original
392 Leute haben es durchsucht

How to Configure Nginx to Serve Content from Two Subfolders with Different Root Paths?

Nginx-Standortkonfiguration für Unterordner

In diesem Artikel erfahren Sie, wie Sie Nginx so konfigurieren, dass Inhalte aus zwei Unterordnern bereitgestellt werden, einem unter der Root-Pfad und der andere unter einer bestimmten URL.

Betrachten Sie das folgende Verzeichnis Struktur:

/var/www/myside/
├── static
├── manage
Nach dem Login kopieren

Unser Ziel ist es, den Ordner /static unter der Stamm-URL (z. B. http://example.org/) und den Ordner /manage unter /manage (z. B. http) zugänglich zu machen ://example.org/manage). In diesem Fall enthält der Ordner /manage den PHP-Framework-Code von Slim, wobei sich die eigentliche PHP-Datei in /var/www/mysite/manage/public/index.php befindet.

Nginx-Konfiguration

Um dies zu erreichen, können wir die Standortanweisung von Nginx verwenden. Hier ist eine mögliche Konfiguration:

server {
  listen 80;
  server_name example.org;
  error_log /usr/local/etc/nginx/logs/mysite/error.log;
  access_log /usr/local/etc/nginx/logs/mysite/access.log;
  root /var/www/mysite;

  location / {
    root /var/www/mysite/static;
    index index.html;
  }

  location /manage {
    alias /var/www/mysite/manage/public;
    index index.php;

    if (!-e $request_filename) {
      rewrite ^ /manage/index.php last;
    }

    location ~ \.php$ {
      if (!-f $request_filename) {
        return 404;
      }
      fastcgi_pass 127.0.0.1:9000;

      include fastcgi_params;
      fastcgi_param SCRIPT_FILENAME $request_filename;
      fastcgi_param SCRIPT_NAME $fastcgi_script_name;
    }
  }

  location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass 127.0.0.1:9000;

    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param SCRIPT_NAME $fastcgi_script_name;
    fastcgi_index index.php;
  }
}
Nach dem Login kopieren

Erklärung

Lassen Sie uns die Konfiguration aufschlüsseln:

  • Erster Standortblock (/ ): Gibt an, dass der Ordner /static vom Stammverzeichnis aus bedient werden soll URI.
  • Zweiter Standortblock (/manage): Verwendet die Alias-Direktive, um den /manage-URI dem Verzeichnis /var/www/mysite/manage/public zuzuordnen.
  • Dritter Standortblock (Speicherort ~ .php$ innerhalb von /manage): Konfiguriert die Verarbeitung von PHP-Dateien innerhalb von /manage Ordner.
  • Endgültiger Standortblock (Speicherort ~ .php$ auf Serverebene): Konfiguriert die PHP-Dateiverarbeitung innerhalb des /static-Ordners.

Verwendung von Alias ​​vs. Root

Bei der Verwendung von Alias ​​stellt Nginx Dateien aus dem angegebenen Verzeichnis bereit und behält dabei das Original bei URI. Dies ist für unseren Zweck nützlich, da wir möchten, dass der /manage-URI auf das Verzeichnis /var/www/mysite/manage/public verweist.

Im Gegensatz dazu ändert root das Stammverzeichnis für den Standortblock, also Es ist nicht für unser Szenario geeignet, in dem wir verschiedene Unterordner von verschiedenen Standorten aus bedienen möchten.

Regel neu schreiben für index.php

Die Rewrite-Regel stellt sicher, dass Anfragen für nicht vorhandene Dateien im Ordner /manage an index.php umgeleitet werden. Dadurch kann die PHP-Anwendung von Slim die Anfrage verarbeiten.

PHP-Dateiverarbeitung

Beide Speicherortblöcke für die PHP-Dateiverarbeitung enthalten die erforderliche Konfiguration zum Ausführen von PHP-Skripten wie FastCGI Einstellungen und Variablen. Die fastcgi_pass-Direktive leitet PHP-Anfragen an einen PHP-FastCGI-Server weiter.

Abschlussbemerkungen

Stellen Sie sicher, dass Ihr PHP-FastCGI-Server läuft und ordnungsgemäß konfiguriert ist. Dieses Setup sollte es Ihnen ermöglichen, Inhalte aus den Unterordnern /static und /manage korrekt bereitzustellen.

Das obige ist der detaillierte Inhalt vonWie konfiguriere ich Nginx für die Bereitstellung von Inhalten aus zwei Unterordnern mit unterschiedlichen Stammpfaden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage