1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Um Zugriff auf die Ressourcen sowie auf Teile des Forums zu erhalten, müsst ihr euren XenForo Validation Token an dieser Stelle hinterlegen. Probleme in diesem Umfeld bitte im Forum melden. Danke!
    Information ausblenden

NGINX + Plesk + PHP-FPM ... Rewrite Optionen für NGINX festlegen

Dieses Thema im Forum "Technik und Co." wurde erstellt von Maestro2k5, 1. Nov. 2014.

  1. Maestro2k5

    Maestro2k5 Bekanntes Mitglied Lizenzinhaber

    Hallo,

    ich habe nun ein Server der eigentlich super läuft und habe da auch das NGINX Zeugs aktiviert. Nun habe ich meine .htaccess datei

    # Mod_security can interfere with uploading of content such as attachments. If you
    # cannot attach files, remove the "#" from the lines below.
    # <IfModule mod_security.c>
    # SecFilterEngine Off
    # SecFilterScanPOST Off
    # </IfModule>

    ErrorDocument 401 default
    ErrorDocument 403 default
    ErrorDocument 404 default
    ErrorDocument 500 default

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,QSA,L]
    RewriteRule ^index.html$ / [R=301,L]

    RewriteCond %{REQUEST_FILENAME} -d
    RewriteCond %{REQUEST_URI} !(/$)
    RewriteCond %{SERVER_PORT} 80
    RewriteRule (.*) https://www.android-port.de/$1 [R=301,L]

    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule (.*) https://www.android-port.de/$1 [L]

    #RewriteCond %{HTTP_HOST} !^www\.android-port\.de [NC]
    #RewriteRule ^(.*)$ http://www.android-port.de/$1 [L,R=301]

    # If you are having problems with the rewrite rules, remove the "#" from the
    # line that begins "RewriteBase" below. You will also have to change the path
    # of the rewrite to reflect the path to your XenForo installation.


    # This line may be needed to enable WebDAV editing with PHP as a CGI.
    #RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml) - [NC,L]
    RewriteRule (robots\.txt)$ robots.php [NC,L]
    RewriteRule ^.*$ index.php [NC,L]
    </IfModule>


    folgende NGINX Einstellungen konvertieren lassen.


    if ($http_host !~ "^www\."){
    set $rule_0 1$rule_0;
    }
    if ($rule_0 = "1"){
    rewrite ^/(.*)$ https://www.$http_host/$1 permanent;
    }
    rewrite ^/index.html$ / permanent;
    if (-d $request_filename){
    set $rule_2 1$rule_2;
    }
    if ($uri !~ "(/$)"){
    set $rule_2 2$rule_2;
    }
    if ($server_port ~ "80"){
    set $rule_2 3$rule_2;
    }
    if ($rule_2 = "321"){
    rewrite /(.*) https://www.android-port.de/$1 permanent;
    }
    if ($server_port !~ "^443$"){
    set $rule_3 1$rule_3;
    }
    if ($rule_3 = "1"){
    rewrite /(.*) https://www.android-port.de/$1 last;
    }

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

    location ~* \.(ac3|avi|bmp|bz2|css|cue|dat|doc|docx|dts|exe|flv|gif|gz|htm|html|ico|img|iso|jpeg|jpg|js|mkv|mp3|mp4|mpeg|mpg|ogg|pdf|png|ppt|pptx|qt|rar|rm|swf|tar|tgz|txt|wav|xls|xlsx|zip)$ {
    expires 30d;
    add_header Pragma public;
    add_header Cache-Control "public";
    try_files $uri @fallback;
    }

    gzip on;
    gzip_proxied any;
    gzip_types text/plain text/xml text/css application/x-javascript;
    gzip_vary on;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";


    leider erhalten meine USer seit kurzem folgende Fehler:

    AP.png


    jemand ne Idee was da falsch ist.
     
  2. DRaver

    DRaver Bekanntes Mitglied

    schau mal ins error log von nginx.
     
  3. Maestro2k5

    Maestro2k5 Bekanntes Mitglied Lizenzinhaber

    Ohm, mal schauen ob ich dat finde. Sind die Ansätze denn zwecks der Konvertierung denn überhaupt richtig, habe da echt kaum erfahrung.
     
  4. DRaver

    DRaver Bekanntes Mitglied

    Und Meister, hast du die Logs gefunden?

    Die Rewirtes sehen wild aus. Ehrlich gesagt habe ich sowas noch nie in NGINX gesehen.
    Auf XF.com gibt es einige Leute, die sich besser damit auskennen aber wenn das deine ganze Conf für die Domain ist, sehe ich schon auf Anhieb einige Probleme.

    Zum Beispiel ist dein Install Verzeichnis nicht vor Zugriff geschützt und deine Admin Oberfläche ebenfalls nicht.

    Ich würde da einen Passwort Schutz drauf legen. Jedenfalls habe ich das bei mir so gemacht.
     
  5. HWS

    HWS Aktives Mitglied

  6. Maestro2k5

    Maestro2k5 Bekanntes Mitglied Lizenzinhaber

    Das Log ja bzw der Fehler ist weg. Aber ja ich definiere nur diese Regeln in Plesk da ja mit nginx die .httaccess datei nicht greift.

    Ich habe das versucht in plesk einzufügen, aber das läuft nur bedingt. Es werden dann z.B. die Links die von www.android-port.de kommen nicht mehr auf die https://www.android-port.de weitergeleitet so wie ich das gerne hätte.
     
  7. Maestro2k5

    Maestro2k5 Bekanntes Mitglied Lizenzinhaber

    Nachtrag;

    zwecks der Ordner diese also diese zu schützen wäre es dann so oder irre ich mich?

    location ~ /(dir1|dir2|dir3) {
    deny all;
    return 404;
    }

    oder wenn es nur ein Ordner ist so?

    location /testdir {
    deny all;
    return 404;
    }

    wäre jetzt für /internal_data, /library ?

    dies müsste ich dann auch in der nginx regel definieren?

    -------

    zu dem Ordnerschutz mit Passwort

    # nginx configuration auth_basic "MySQLDumper"; auth_basic_user_file /pfad/.htpasswd;

    nun die frage kann die .htpasswd gleich bleiben wie vorher? Und wo definiere ich welche Ordner damit geschützt werden?

    ok, ich habs also die .htpasswd kann weiter verwendet werden und um es auf einen ordner zu ddefinieren sollte es so z.B aussehen.

    location /zu schützender ordner (Pfad)/ {
    auth_basic "Restricted";
    auth_basic_user_file /pfad/.htpasswd;
    }

    ^^ Läuft so, aber ich kann es nur für einen ordner festlegen.
     
    Zuletzt bearbeitet: 3. Nov. 2014
  8. HWS

    HWS Aktives Mitglied

  9. DRaver

    DRaver Bekanntes Mitglied

    Passwortschutz macht wohl mehr Sinn. Du willst ja selber noch darauf zugreifen :)
     
  10. Maestro2k5

    Maestro2k5 Bekanntes Mitglied Lizenzinhaber

    Das habe ich versucht, aber das beißt sich wohl mit den dingen die ich in plesk einfügen kann, mit dem oben vorhanden rewrites geht es bisher.
    Ich habe jetzt verschiedene Varianten versucht.

    Das versuche ich ja gerade, bisher geht es nur für einen Ordner.

    Ich stelle gleich dieses NGINX Zeugs aus, es ist zwar schnell aber es nervt :D
     
    otto gefällt das.
  11. DRaver

    DRaver Bekanntes Mitglied

    Na normalerweise würde man sich ja auch VOR der Installation eines neuen Webserver Systems mit der Software vertraut machen, die man nun einsetzen will.
     
  12. Maestro2k5

    Maestro2k5 Bekanntes Mitglied Lizenzinhaber

    Das ist ne Standard-Installation und naja Supportmäßig soll ja alles so laufen. Ich meine es läuft ja auch soweit alles nur halt nicht so wie ich das gern hätte.

    Ich habe ja auch die Wahl normal den Apache zu nutzen, dann hätte ich den Ärger nicht. Aber dachte mir das es so einfach performanter ist. Und einsetzen will ist gut gesagt. Ich möchte nur das es funktioniert ... wie und mit was war mir bisher egal. Aber ich habe schon einiges hinbekommen das sollte es daran nicht scheitern.
     
  13. HWS

    HWS Aktives Mitglied

    So, wie du das konfigurierst ist das nicht performanter, sondern ein riesiges Sicherheitsproblem.
     
  14. Maestro2k5

    Maestro2k5 Bekanntes Mitglied Lizenzinhaber

    Danke für die Aufschlussreiche Antwort, ich weiß ja das ich keine Ahnung habe, das muss man mir auch nicht vorhalten. Ich bin aber durchaus bereit zu lernen und mich einzulesen und es vernüftig zu machen. Nur wäre es dann durchaus hilfreich die Antworten etwas ausführlicher zu gestallten wo denn genau die Probleme liegen (Außer die die vor meinem Rechner sitzen).

    Ich habe nicht mal viel konfiguriert. Außer halt oben die rewrite regeln, der rest ist standard installation / plesk.
     

    Anhänge:

  15. DRaver

    DRaver Bekanntes Mitglied

    Ich kenne mich mit diesem Plesk- Schrott nicht aus, aber wenn ich dein Screen richtig interpretiere, werden die Webseiten weiterhin von dem Apache ausgegeben und der Ngnix dient nur als reverse Proxy für statische Dateien und für das Verarbeiten der PHP Dateien.

    Vom daher wären Nginx rewrites fällig unnötig.
     
  16. Maestro2k5

    Maestro2k5 Bekanntes Mitglied Lizenzinhaber

    Wenn ich die Option PHP durch nginx verarbeiten ausschalte ist das auch so, dann greifen die normalen apache rewrites zb.
     
  17. DRaver

    DRaver Bekanntes Mitglied

    Fein, dann schalte das aus. Bei deinem Useraufkommen ist das doch total Latte.
     
  18. Maestro2k5

    Maestro2k5 Bekanntes Mitglied Lizenzinhaber

    Dann mache ich das, dachte es wäre Sinnvoll. Ich meine sonst läuft meine Seite eigentlich recht schnell. Besser als vorher habe ich den Eindruck.

    Edit. Es ist ausgeschaltet. Aber ich finde das man vorher flüssiger navigieren konnte im Forum, aber denke das täuscht.
     
  19. DRaver

    DRaver Bekanntes Mitglied

    Ja das ist ja auch sinnvoll aber eben nur für Leute, die sich damit auskennen.

    Ich selber haben einen Nginx ohne Plesk laufen und habe mich erst mal einen Monat in die Materie eingearbeitet.
    Ich muss aber auch viele Anfragen gleichzeitig abwickeln und da ist das System sehr performant.

    Arbeite dich doch in der Zwischenzeit in die Materie ein und dann kannst du, wenn du es drauf hast auch ganz auf Nginx wechseln.
     
  20. Maestro2k5

    Maestro2k5 Bekanntes Mitglied Lizenzinhaber

    Danke, das werde ich tun. Es läuft ja nun erstmal alles.