Nginx Konfiguration für mehrere Seiten

  • Hallo Leute,

    nachdem ich per dieser Anleitung (aber mit MySQL statt SQLite) Owncloud, Wordpress und Raspcontrol auf einem nginx-Server zum Laufen gebracht hab, hab ich jetzt ein paar Schwierigkeiten bei der Konfiguration des Servers.

    So soll das mal aussehen.

    meinedomain.de

    Damit ich etwas Ordnung in /var/www/ hab dachte ich, dass ich eine einfach Seite mit z.B. iWeb anlege, die einfach nur drei Links zu den jeweilgen Bereichen enthält. iWeb deshalb, weil man damit schnell nett aussehende Seiten erstellen kann. Oder gibts da besseres?

    Das Problem ist:
    Der nginx server verbindet nach der Konfigurationsdatei nur per SSL. Für Owncloud und Raspcontrol hätte ich das auch gerne, für Wordpress und die "Startseite" reicht ja aber HTTP.

    Ich vermute, dass ich da mit /etc/nginx/sites-available/ was anstellen muss, aber ich bin mir nicht sicher wie das hin haut. Google hat mir da auch nicht viel weiter geholfen, bin noch eher am Anfang, was Server betrifft.

    Könnt ihr mir da weiterhelfen? Vielen Dank!

    Oliver

  • /etc/nginx/sites-available/meinedomain.de
    server {
    listen 80;
    server_name [font="Tahoma, Verdana, Arial, sans-serif"]meinedomain.de[/font];
    access_log /var/log/nginx/meinedomain.de.access.log;
    location / {
    root /var/www/;
    index index.html index.htm index.php;
    }
    .... usw.
    }

    Diese config aktivieren indem an sie in enabled linkt
    ln -nfs /etc/nginx/sites-available/meinedomain.de /etc/nginx/sites-enabled/meinedomain.de

    /etc/init.d/nginx reload

    Ich weiss jetzt nicht wie Deine gninx config aussieht, aber ggf. kannst Du das auch in der aktuellen config auch schon mit einfügen indem Du einfach einen Match auf die URL machst und so dann den Document Root je Aufruf anders setzt.

  • Der Ansatz ist richtig, aber ich glaube, die Frage des TE bezieht sich mehr darauf, wie er mit folgendem umgehen soll:

    Code
    rewrite ^ https://$server_name$request_uri? permanent;

    Das soll selektiv für die subdirectories /owncloud und /raspcontrol laufen, nicht aber für andere. Das Problem lösen verschiedene document roots m.E. nicht. Da ich mich mit den rewrite-Regeln nicht auskenne, bewundere ich das Problem und warte gespannt darauf, selbst etwas zu lernen ;)

    Andererseits: https zusätzlich kann eigentlich nie schaden, solange die Aufrufe vom Blog nicht so heftig sind, dass die Performance in die Knie geht...

  • Hi!

    Vielen Dank für eure Antworten. Genau das ist meine Frage.
    Wäre es leichter, wenn man das über Subdomains und jeweils eigene Konfigurationsdateien löst?

    Eigentlich wollte ich mein Domainpaket bei Strato nicht upgraden... ;)

  • Ich frage einfach noch mal nach.

    Du hast folgendes was schon funktioniert:

    meinedomain.de
    http://meinedomain.de/owncloud
    http://meinedomain.de/wordpress
    http://meinedomain.de/raspcontrol

    Wegen Owncloud nach der Anleitung wird jetzt alles nach HTTPs umgeleitet.
    Du willst aber unter meinedomain.de direkt etwas ablegen was auch über HTTP ohne SSL erreichbar ist.

    Owncloud weiterhin per SSL und die anderen Sachen auch.

    Das hier aus der Anleitung:
    server {
    listen 80;
    server_name 192.168.XXX.XXX;
    rewrite ^ https://%24server_name%24request_uri? permanent; # enforce https
    }

    Ersetzen durch:
    server {
    listen 80;
    server_name 192.168.XXX.XXX;
    location /owncloud {
    rewrite ^ https://%24server_name%24request_uri? permanent;
    }
    location /wordpress {
    rewrite ^ https://%24server_name%24request_uri? permanent;
    }
    location /raspcontrol {
    rewrite ^ https://%24server_name%24request_uri? permanent;
    }
    root /var/www;
    index index.php;
    client_max_body_size 1000M; # set maximum upload size
    fastcgi_buffers 64 4K;
    # falls Du da auch PHP benutzen willst auch diesen Teil mit rein:
    location ~ ^(?<script_name>.+?\.php)(?<path_info>/.*)?$ {
    try_files $script_name = 404;
    include fastcgi_params;
    fastcgi_param PATH_INFO $path_info;
    fastcgi_param HTTPS on;
    fastcgi_pass 127.0.0.1:9000;
    }
    }

    Den SSL Part lässt Du so wie er ist. Wir wollen ja nur alles in / auch ohne SSL benutzen können und nur bei owncloud, raspcontrol und wordpress soll auf SSL umgeleitet werden.

    cya
    ruedigerp

  • Klingt für mich schlüssig, wobei nach dem Ziel des TE der Teil location /wordpress{...} raus sollte (Wordpress soll ja eben nicht SSL-gesichert sein). Wenn das rewrite da weg ist, richtet sich der Rest nach der von ruedigerp vorgegebenen Standardkonfiguration des Servers, so dass alles schick sein sollte...

  • Vielen Dank!!
    Hab heute die Zeit gefunden mal rumzuprobieren, jetzt scheints zu gehen.
    Zur Vorsicht hab ich noch mal den Code hier. Ist der so in Ordnung?

    Viele Grüße,
    Oliver

    Einmal editiert, zuletzt von Revilo (30. August 2013 um 00:08)

  • Hallo,
    ich habe dasselbe Anliegen wie Revilo (TE).
    Ich möchte unter http://meinedomain.de/owncloud den https Zugriff, allerdings auf allen anderen Verzeichnissen, hauptsächlich unter http://meinedomain.de/joomla und direkt unter meinedomain.de kein https Zugriff.
    Das Problem beim obigen Lösungsvorschlag ist, dass dann bei mir zum Teil php nicht funktioniert hat (es kam immer das dialog feld öffnen, wenn ich eine php datei lade), oder zwar der Zugriff funktioniert, aber links automatisch auf https springen.
    Ich möchte joomla installieren - greife ich auf die installationsdatei mittels https zu läuft alles, greife ich aber mittels http auf die index.php (wodurch joomla konfiguriert und installiert wird), klappt es nicht. Die "Weiter-Buttons" funktionieren nicht und joomla läuft auch nur unter https - nicht unter http.

    Kann mir jemand helfen?
    Grüße lichtbricht

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!