nginx mit Content via IP-Adresse und Content via URL

  • Hallo Leute,
    ich brauch mal wieder eure Hilfe... Seit dem Update auf nginx 1.4.0 kann ich meine Website per URL nicht mehr erreichen. Ich bekomm es auf Teufel komm raus nicht gebacken, dass es beides wieder funktioniert. Folgendes möchte ich erreichen:


    /var/www und die Unterordner (z.b. /phpmyadmin/) sollen nur per IPv4 aufrufbar sein. Das habe ich erreicht und das funktioniert alles wie es soll. Allerdings klappt das mit den vhosts irgendwie absolut nicht.


    Ich möchte /var/www/example.com/public_html via example.com aufrufen. Ich lande beim Aufruf aber trotzdem immer in /var/www, obwohl meiner Meiinung nach das Document Root richtig angegeben ist. Vielleicht habt ihr noch einen Tipp für mich parat.


    http://pastebin.com/mCifHk1D <- link zur nginx.conf

  • Ohne nginx aktualisiert zu haben und ohne Deine vhost-Dateien gesehen zu haben, wundert mich das jetzt nicht!
    In der nginx.conf hat keine vHost-Definition etwas zu suchen.


    Alles ab

    Code
    server {

    hat darin nichts verloren, das gehört in eine vHost-Datei.

    Schöne Grüße aus der Lüneburger Heide!
    Thomas

  • Ja, bei Debian z.b. gibt es die Ordner "sites-available" und "sites-enabled", das weiß ich. Bei Arch Linux aber nicht. habe die Ordner angelegt um das besser handeln zu können, aber damit funktionierte nach dem Update GAR NICHTS von beidem... So geht wenigstens der Aufruf via IP-Adresse. Und laut nginx-config-guide ist das mit den Serverblöcken nicht falsch... Siehe hier: Server names und hier: ServerBlockExample


    Aber irgendwo hab ich da noch einen Fehler und ich fiinde um's verrecken nicht wo...

  • Ja, momentan gar nicht, weil damit gar nichts ging. Die beiden Server-Blöcke waren vorher einzelne Dateien in "sites-available", eingebunden mit include /etc/nginx/sites-enabled/*; (die Dateien dann via Symlink)
    Aber das funktionierte gar nicht mehr... Dann hab ich die beiden Server-Blöcke der nginx.conf direkt hinzugefügt und dann funktionierte wenigstens der Aufruf via IP-Adresse...


    Via URL lande ich aber dennoch in /var/www und nicht in meinem angegebenen document root. :(

  • Wie hast Du nginx installiert?


    Es gibt unterschiedliche Pakete:
    - nginx
    - nginx-extras
    - nginx-full


    Ich habe festgestellt, dass die nginx typische Ordnerstruktur unter der Installaltion nginx nicht angelegt werden.


    nginx-full bringt hingegen die Ordnerstruktur mit, installiert aber auch Module, die man nicht unbedingt benötigt. nginx-extras sollte das auch machen. Auf der nginx-Seite gibt es Infos dazu, so ganz habe ich sie nicht im Kopf.


    Du könntest jetzt hingehen und alles händisch einpflegen, immer unter Berücksichtigung der erforderlichen Rechte auf den Ordnern und Dateien.


    Normaler Weise sieht eine ngix.conf in etwa so aus:


    Viel erklären möchte ich dazu nicht, nur so viel, das die vHosts mit include eingebunden werden -> zu sehen unter # Virtual Host Configs
    Die nginx.conf enthält nur Definitionen, die sich global auf den Server auswirken sollen. Für Feineinstellungen sind die vHost-Dateien da.

    Schöne Grüße aus der Lüneburger Heide!
    Thomas

  • So ist es, das Paket bei Arch ist aber ähnlich dem nginx-full. :) Ich werde nochmal bei 00 anfangen mit meiner configuration und dann mal sehen wie weit ich komme. Bin aber nach wie vor für Tipps und Anregungen dankbar :)

  • So, ich hab's jetzt wieder hinbekommen. Ich weiß nicht genau, was letztlich der Fehler war, aber habe jetzt vorbildlich wieder eine saubere nginx.conf, die Ordner sites-available und sites-enabled und für jede URL eine entsprechende vhost-Datei :)