nginx - ich verstehe da so gut wie gar nix

  • Eigentlich war ich ja froh, dass die Erstinstallation erfolgreich war und auch so weit ging. Dachte eigentlich die Anbindung an PHP und SSL wäre das Komplizierteste, aber nein, das ist das EINFACHSTE! Gut, an "rewrite" habe ich mich noch nicht versucht, wie auch, scheitere ja schon vorher, bei statischen Dingen.

    Irgendwie scheitere ich hier an den einfachsten Dingen, also Dingen wie in Ordner A Etag abschalten, in Ordner B ein anderes Expire setzen. Global Vorgaben machen für Bilder wie JPG oder PNG.... Beim Apache ist das ganz einfach. Da wird von oben nach unten abgearbeitet bzw. in der Order, wie die Vorgaben sind. Kommen mehrere Bereiche für eine URL in Frage, wird "gemerged" bzw. überschrieben. Aber NGINX? Was haben die denn für eine Struktur bzw. Abarbeitung???? Dokus gibt es viele. Lese die nun auch schon seit fast 48 Stunden hoch und runter. Ergebnis: Es geht nicht so wie es soll.

    Offizielle Doku und Beispiele:

    location = / { [ configuration A ] }

    location / { [ configuration B ] }

    location /documents/ { [ configuration C ] }

    location ^~ /images/ { [ configuration D ] }

    location ~* \.(gif|jpg|jpeg)$ { [ configuration E ] }

    "The “/” request will match configuration A, the “/index.html” request will match configuration B, the “/documents/document.html” request will match configuration C, the “/images/1.gif” request will match configuration D, and the “/documents/1.jpg” request will match configuration E."

    Aha, ok, so weit ist das zu verstehen, also die Erklärung für genau dieses Beispiel, mehr aber auch nicht. Dabei ist das teilweise genau das, was ich brauche und suche.

    Also Anweisungen für Bilder (egal wo die sind). Hier im Beispiel wäre das "configuration E".

    Nehmen wir nun mal an, was bei mir wirklich der Fall ist, es gibt die Ordner "folder-1", "folder-2" und "folder-3" und die entsprechenden "locations" dazu. In allen liegen alle möglichen Daten, PHP, HTML und auch Bilder. Alle Ordner bekommen andere Vorgaben. Expire, Zugriffsrechte, benötigte Header. Geht auch so weit alles.... ABER..... Wenn man einfach aufruft: domain-de/folder-1/img.jpg

    Diese "configuration E" hat dann Vorrang und die "locations" für die drei Ordner werden entsprechend ignoriert. Also alle Vorgaben für die Ordner werden ignoriert. Lass ich "configuration E" weg, dann greifen wieder die von den Ordnern, aber dann haben ALLE Bilder keine Vorgaben mir.

    Ich verzweifel da echt. Kennt sich einer aus?

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Wenn ich schon so was da lese:

    "Im obigen Beispiel wird eine Abfrage für /rewriteme/hello zunächst vom ersten Standortblock verarbeitet. Sie wird in /hello umgeschrieben und ein Standort gesucht. In diesem Fall stimmt sie wieder mit dem ersten Standort überein und wird wie gewohnt von den try_files verarbeitet. Wenn nichts gefunden wird, kehren Sie möglicherweise zu /fallback/index.html zurück (mithilfe der oben beschriebenen internen Umleitung try_files)."

    Was bitte bedeutet "möglicherweise" bei einer Konfiguration???

    Oder

    "Wenn wir beispielsweise das letzte Beispiel so ändern, dass es ein Umschreiben enthält, können wir feststellen, dass die Abfrage manchmal direkt an den zweiten Standort übergeben wird, ohne sich auf die Direktive try_files zu verlassen:"

    Aha, manchmal. Geht wohl nach Lust und Laune, oder Tageszeit oder wie?

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(