Nginx: Virtuellen Unterordner im SCRIPT_FILENAME entfernen.

Dieses Thema im Forum "Web- & File-Services" wurde erstellt von Gast123, 17.02.2015.

  1. #1 Gast123, 17.02.2015
    Zuletzt von einem Moderator bearbeitet: 17.02.2015
    Gast123

    Gast123 Guest

    [gelöst] Nginx: Virtuellen Unterordner im SCRIPT_FILENAME entfernen.

    Hallo zusammen,

    ich habe einen TLS-gesicherten HTTPS Server unter einer Domain, sagen wir:
    Code:
    tls.mydomain.com
    Um dort nun mehrere Webseiten / -applications betreiben zu können, habe ich diese unter dem zugehörigen Nginx-Server in verschiedene locations gepackt.
    Z.B.:
    Code:
    tls.mydomain.com/phpmyadmin
    tls.mydomain.com/nagios3
    Bei letzterem musste ich, da nagios3 nicht in einem genau so genannten Ordner liegt, ein Alias auf
    Code:
    /usr/share/nagios3/htdocs
    einführen.
    Nun übergibt Nginx leider jedwede PHP-Datei unter o.g. URL als
    Code:
    /nagios3/<pfad>/<datei>.php
    an den PHP Prozessor.
    Dies führt dazu, dass dieser versucht Dateien nach dem Schema
    Code:
    /usr/share/nagios3/htdocs/[B]nagios3[/B]/<pfad>/<datei>.php
    aufzurufen, statt, was richtig wäre,
    Code:
    /usr/share/nagios3/htdocs/<pfad>/<datei>.php
    .
    Das einzige was ich zu dem Thema gefunden habe ist die Rewrite-Funktion von nginx:
    Code:
    rewrite ^/nagios3(/.+\.php.*)$ $1 last;
    Dies bleibt aber ohne Auswirkung. Das Dokument wird weiterhin nicht gefuden.
    Das Logfile sagt dazu nur:
    Code:
    FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream
    Wäre für Hilfe zum Entfernen des ersten Ordners im Script-Path (In diesem Falle nagios3) sehr dankbar.

    MfG

    Schard

    PS: Hier der location-Part - Ich habe es zuletzt auch mit der fastcgi_split_path_info Dikrektive probiert - Kein Erfolg. :(
    Code:
    location /nagios3 {
        alias /usr/share/nagios3/htdocs;
    
        access_log /var/log/nginx/nagios.access.log;
        error_log /var/log/nginx/nagios.error.log debug; #info;
    
        auth_basic "Nagios Restricted Access";
        auth_basic_user_file /etc/nagios3/htpasswd.users;
    
        index index.php;
    
        location /nagios3/stylesheets {
            alias /etc/nagios3/stylesheets;
        }
    
        location ~ ^/nagios3/.+\.php$ {
            alias /usr/share/nagios3/htdocs;
            fastcgi_split_path_info ^/nagios3(/.+\.php)(/.*)$;
            include fastcgi.conf;
            fastcgi_param SCRIPT_FILENAME /usr/share/nagios3/htdocs$fastcgi_script_name;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
        }
    
        location ~ \.cgi$ {
            alias /usr/lib/cgi-bin/nagios3;
            rewrite ^/nagios3(/.*)$ $1 last;
            rewrite ^/cgi-bin/nagios3/(.*)$ /$1;
            include /etc/nginx/fastcgi_params;
            fastcgi_param AUTH_USER $remote_user;
            fastcgi_param REMOTE_USER $remote_user;
            fastcgi_param SCRIPT_FILENAME /usr/lib/cgi-bin/nagios3$fastcgi_script_name;
            fastcgi_pass unix:/var/run/fcgiwrap.socket;
        }
    }
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Gast123, 17.02.2015
    Zuletzt von einem Moderator bearbeitet: 17.02.2015
    Gast123

    Gast123 Guest

    Geschafft

    Hier die Lösung:
    Code:
        location /nagios3 {
            alias /usr/share/nagios3/htdocs;
    
            access_log /var/log/nginx/nagios.access.log;
            error_log /var/log/nginx/nagios.error.log debug; #info;
    
            auth_basic "Nagios Restricted Access";
            auth_basic_user_file /etc/nagios3/htpasswd.users;
    
            index index.php;
    
            location /nagios3/stylesheets {
                alias /etc/nagios3/stylesheets;
            }
    
            location ~ ^/nagios3/(.+\.php)$ {
                include fastcgi.conf;
                fastcgi_param SCRIPT_FILENAME /usr/share/nagios3/htdocs/$1;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
            }
        }
    
        location ~ ^/cgi-bin/nagios3/(.+\.cgi)$ {
            auth_basic "Nagios Restricted Access";
            auth_basic_user_file /etc/nagios3/htpasswd.users;
            include /etc/nginx/fastcgi_params;
            fastcgi_param SCRIPT_FILENAME /usr/lib/cgi-bin/nagios3/$1;
            fastcgi_param AUTH_USER $remote_user;
            fastcgi_param REMOTE_USER $remote_user;
            fastcgi_pass unix:/var/run/fcgiwrap.socket;
        }
    
    
    Die CGI-location kann man leider nicht in die Nagios-location mit rein nehmen, da Nagios die Skripte direkt versucht über
    Code:
    /cgi-bin/nagios3
    aufzurufen.
     
Thema:

Nginx: Virtuellen Unterordner im SCRIPT_FILENAME entfernen.

Die Seite wird geladen...

Nginx: Virtuellen Unterordner im SCRIPT_FILENAME entfernen. - Ähnliche Themen

  1. Nginx gibt TCP-Load-Balancer im Quellcode frei

    Nginx gibt TCP-Load-Balancer im Quellcode frei: Der Hersteller des Webservers Nginx hat die Quellen des bislang nur proprietär vertriebenen Moduls zur fortschrittlichen Verteilung von Lasten...
  2. Webserver Nginx Plus Release 6 freigegeben

    Webserver Nginx Plus Release 6 freigegeben: Während vor zwei Wochen die Open-Source-Version Nginx 1.7.12 erschien, folgte nun die kommerzielle Version Nginx Plus Release 6 (R6), die mit...
  3. nginx owncloud, php? Problem

    nginx owncloud, php? Problem: Moin, ich bin gerade dabei mir ne owncloud auf meinem server aufzusetzen, leider kenne ich keine vernünftige die ohne php auskommt, daher muss ich...
  4. Nginx redirect für darkstat

    Nginx redirect für darkstat: Moin, zur Zeit muss ich einen Server überwachen um die quelle für traffic spitzen zu finden. Dafür scheint darkstat die richtige Wahl zu sein um...
  5. OpenShift Enterprise 2.2 integriert JBoss A-MQ und Nginx

    OpenShift Enterprise 2.2 integriert JBoss A-MQ und Nginx: Red Hat hat die Enterprise-Variante seines Platform-as-a-Service (PaaS)-Dienstes OpenShift in der Version 2.2 veröffentlicht. Mit OpenShift lassen...