cgi-bin wird von nginx nicht für den Nagios-Host proxied

cgi-bin wird von nginx nicht für den Nagios-Host proxied

Ich habe einen Reverse-Proxy eingerichtet, Nginx-Host -> Nagios, beide auf virtuellen Ubuntu 20.04-Rechnern. Dies ist wie eine Standard-Apt-get-Installation, nicht angepasst. Ich habe nur zum Test ein selbstsigniertes Zertifikat hinzugefügt.

192.168.254.107 - nginx 192.168.254.200 - nagios

Das Problem ist, dass das CGI-Bin nicht umgeleitet zu sein scheint und auf Nginx selbst bereitgestellt wird.

Nginx-Konfiguration

server {
    listen 443 ssl;
    listen 80 default_server;
    ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
    ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 2m;

    location /nagios4 {
        proxy_pass https://192.168.254.200/nagios4;
        proxy_set_header Host $host;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
    }
}

Fehler

2020/12/02 05:08:53 [error] 2307#2307: *21 open() "/usr/share/nginx/html/cgi-bin/nagios4/avail.cgi" failed (2: No such file or directory), client: 192.168.254.163, server: , request: "GET /cgi-bin/nagios4/avail.cgi HTTP/1.1", host: "192.168.254.107", referrer: "https://192.168.254.107/nagios4/side.php"
2020/12/02 05:08:58 [error] 2307#2307: *21 open() "/usr/share/nginx/html/cgi-bin/nagios4/extinfo.cgi" failed (2: No such file or directory), client: 192.168.254.163, server: , request: "GET /cgi-bin/nagios4/extinfo.cgi?type=3 HTTP/1.1", host: "192.168.254.107", referrer: "https://192.168.254.107/nagios4/side.php"
2020/12/02 05:09:02 [error] 2307#2307: *21 open() "/usr/share/nginx/html/cgi-bin/nagios4/extinfo.cgi" failed (2: No such file or directory), client: 192.168.254.163, server: , request: "GET /cgi-bin/nagios4/extinfo.cgi?type=6 HTTP/1.1", host: "192.168.254.107", referrer: "https://192.168.254.107/nagios4/side.php"
2020/12/02 05:09:02 [error] 2307#2307: *21 open() "/usr/share/nginx/html/cgi-bin/nagios4/extinfo.cgi" failed (2: No such file or directory), client: 192.168.254.163, server: , request: "GET /cgi-bin/nagios4/extinfo.cgi?type=0 HTTP/1.1", host: "192.168.254.107", referrer: "https://192.168.254.107/nagios4/side.php"
2020/12/02 05:09:03 [error] 2307#2307: *21 open() "/usr/share/nginx/html/cgi-bin/nagios4/extinfo.cgi" failed (2: No such file or directory), client: 192.168.254.163, server: , request: "GET /cgi-bin/nagios4/extinfo.cgi?type=4 HTTP/1.1", host: "192.168.254.107", referrer: "https://192.168.254.107/nagios4/side.php"

Das ist mir aufgefallen, als ich versucht habe, es in einem anderen Browser zu öffnen. Es sucht nach dem Pfad auf dem Nginx-Host ...

https://192.168.254.107/cgi-bin/nagios4/status.cgi?hostgroup=all&style=hostdetail

Antwort1

Das Problem liegt wahrscheinlich an diesen beiden Zeilen Ihrer Konfiguration:

location /nagios4 {
    proxy_pass https://192.168.254.200/nagios4;

Entfernen Sie entweder nagios4die locationAnweisung, alle Standorte an den Proxy weiterzuleiten, oder
entfernen Sie das /nagios4aus der proxy_passAnweisung.
Sie können aus den Fehlerprotokollen ersehen, dass nagios4zwischen dem cgi-binVerzeichnis und der eigentlichen CGI-Datei Folgendes angezeigt wird extinfo.cgi:

Antwort2

Ich habe das gleiche Problem festgestellt und es war alt, funktionierte aber immer noch für HTTP. Ich habe https nicht ausprobiert, da ich ein selbstsigniertes Zertifikat verwende

Das Hauptproblem ist, dass CGI-Bin immer noch im Nginx-Ordner/Host und nicht im Backend aufgerufen wird. Dies hat das Problem behoben und den Aufruf an das Backend umgeleitet.

     location /cgi-bin/nagios3/ {
          proxy_pass https://nagios.localdomain.com/cgi-bin/nagios3/;
          proxy_redirect default;
     }

     location /nagios3/ {
          proxy_pass  https://nagios.localdomain.com/nagios3/;
          proxy_redirect default;
     }

     location /nagios/ {
          proxy_pass  https://nagios.localdomain.com/nagios3/;
          proxy_redirect default;
     }

http://mailman.nginx.org/pipermail/nginx/2008-April/004623.htmlhttps://web.archive.org/web/20090209033420/http://wiki.codemongers.com/NginxProxyNagios

verwandte Informationen