Froxlor - Apache zu Nginx - Aufgabe des Lebens?

  • Moin bjo,

    jaein die Configs in /etc/nginx/sites-enabled sind noch die Standard Configs (oder hat das Froxlor gemacht?) die so aussieht:

    Bei invoke-rc.d nginx start bekomme ich keine Fehlermeldungen.

    Code
    root@**************:~# invoke-rc.d nginx start
    Starting nginx: nginx.
  • Genau die habe ich gelöscht :)
    Wenn ich /etc/nginx/sites-enabled/default wieder hinzufüge, startet nginx, ist im Web erreichbar doch ich bekomme einen forbidden.
    Das könnte daran liegen das in der /etc/nginx/sites-enabled/default keine php Dateien eingetragen waren. Also machte ich dies schnell.
    Der forbidden war zwar weg doch, als ich auf die Seite gegangen bin, startete bei mir ein Download einer PHP Datei.

    Das habe ich übrigens noch nicht gemacht (wollte Froxlor):

    Zitat

    Bitte beachten Sie: Das MySQL-Passwort wurde aus Sicherheitsgründen nicht ersetzt.
    Bitte ersetzen Sie "MYSQL_PASSWORD" manuell durch das entsprechende Passwort.
    Falls Sie es vergessen haben sollten, finden Sie es in der Datei "lib/userdata.inc.php".

    Ich benutze übrigens nginx/0.7.67.

  • Weil ich dachte ich habe Squeeze :)

    Ich habs jetzt nochmal mit Wheezy versucht und die Default gelöscht. Gleicher Fehler wie bisher.
    Die Shell sagt nginx sei gestartet doch der webserver ist nicht erreichbar.

    Die Config sieht mit Wheezy logischerweise anders aus. Ich poste sie mal vielleicht enthält sie ja Fehler:

  • So langsam aber sicher bin ich mehr als irritiert!

    Was hat Wheezy mit dem Löschen von der Default-Konfigurationsdatei von nginx zutun?
    Richtig, nichts.

    Zitat

    Die default muss weg, sonst kollidiert sie vermutlich mit einem
    Froxlor-Vhost. Wenn du sie weglässt, startet nginx nicht? Und warum
    nutzt du Squeeze und nicht Wheezy, was das aktuelle stable wäre?

    Das ist gelinde gesagt Unsinn, denn da wird nur der Aufruf der DNS-Einträge hin geleitet und zur Ausführung gebracht, was unter /var/www zu finden ist.
    Wenn man sich den Quellcode von Post 2 ansieht, steht das da auch drin.
    In dem Quellcode ist keine Domain hinterlegt, also wird alles in die Default-Route geleitet (/var/www).

    vHosts werden in einer jeweiligen, separaten Datei hinterlegt, man kann sogar mehrere Domains in einer hinterlegen, wenn ein und die selbe Seite über mehrere Domains erreichbar sein soll, nur Froxlor kann das nicht.

    Konkrete Abhilfe schafft das Studium der nginx-Dokumentation, da findet man dann so etwas hier: How nginx processes a request

    Froxlor übernimmt eigentlich alles und ich kann mich nicht erinnern jemals in den Anweisungen von Froxlor gelesen zu haben, irgend welche Dateien zu löschen, wenn es um die Einrichtung von nginx ging, schon gar nicht die Default-Datei.

    Mag sich vielleicht geändert haben, denn mittlerweile administriere ich nginx nur noch von Hand und lasse da ganz bestimmt keine Webanwendung mehr ran.

    Zu Deinem eigentlichen Problem und das werde ich jetzt mal ohne weitere Infos aus dem Kopf machen.

    Deine Seiten liegen ja unter ihren Root-Verzeichnissen, eingerichtet unter Apache.

    Um diese Seiten über nginx und Froxlor zu administrieren, wirst Du die Domains in Froxlor anlegen müssen, die Pfade zu den Rootverzeichnissen anpassen und nginx, resp. Froxlor, die Rechte auf diese Verzeichnisse geben müssen. Danach sollten weitere vHost-Dateien in /etc/nginx/sites-enabled/ zu finden sein, die dafür sorgen sollten, dass die Seiten auch aufgerufen werden können.

    Alternativ geht auch, Froxlor die Verzeichnisse anlegen zu lassen und die Seiteninhalte dahin zu kopieren.
    Datenbank technisch ändert sich nichts, diese müsste ja schon vorhanden sein.

    Andererseits muss man sich fragen, welche Anwendung 50% der CPU benötigt?
    Da sollte man wohl eher den Fehler suchen.
    Sollte es eine einfache Webseite sein, dürfte die Seite mehr als schlecht programmiert sein und ich würde den Betreiber auf den Pott setzen und gegebenenfalls sogar sperren, sollte keine Reaktion kommen. Schließlich kann es nicht sein, dass einer alle runter zieht.

    Im Übrigen wird an einer solchen Seite auch nginx nichts ändern können, auch wenn nginx wesentlich performanter ist, als dieses Riesenbaby Apache. :)

    Noch als kleiner Tipp!
    Man kann nginx auf einen anderen Port lauschen lassen, damit er nicht mit Apache kollidiert.
    Damit gewinnst Du Zeit und kannst die Seiten unter nginx testen, auch wenn die Leute auf den Indianer zugreifen.

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

  • Als Kommandos für nginx unter Wheezy listet Froxlor jedenfalls auf:

    Code
    rm /etc/nginx/sites-enabled/default
    mkdir -p /var/kunden/webs/
    mkdir -p /var/kunden/logs/
    mkdir -p /var/kunden/tmp/
    chmod 1777 /var/kunden/tmp/
    chmod u+x /etc/init.d/php-fcgi

    Zudem erstellt Froxlor einen eigenen Vhost für sich auf <ip>:80 default; - sofern nun in sites-enabled/default ebenso ein default-Vhost definiert ist, dürfte das IMHO zu Problemen führen.

  • Hallo,

    hier wird die ganze Zeit von der /etc/nginx/sites-enabled/default gesprochen.
    Aber wurden überhaupt weitere configs angelegt? Denn dann wäre klar, warum nginx nicht antwortet.
    ruf mal

    Code
    nginx -t

    auf. Damit überprüft nginx seine config und sagt dir auch, was nicht stimmt.