cgi-bin が Nagios ホストの nginx によってプロキシされない

cgi-bin が Nagios ホストの nginx によってプロキシされない

Ubuntu 20.04 マシン上に、nginx ホスト -> nagios のリバース プロキシ セットアップを仮想化しました。これらは、カスタマイズされていないデフォルトの apt-get インストールのようなものです。テスト用に自己署名証明書を追加しました。

192.168.254.107 - nginx 192.168.254.200 - ナギオス

問題は、cgi-binがリダイレクトされず、nginx自体で提供されているように見えることです。

Nginx の設定

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;
    }
}

エラー

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"

別のブラウザで開こうとしたときに、nginx ホスト上のパスを検索することに気づきました...

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

答え1

問題はおそらく、設定の次の 2 行にあります。

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

すべての場所をプロキシに転送するには、ディレクティブの を削除するか、nagios4ディレクティブからを 削除します。ディレクトリと実際の cgi ファイルの間に表示されるなど のエラー ログから確認できます。location
/nagios4proxy_pass
nagios4cgi-binextinfo.cgi

答え2

同じ問題を見つけましたが、古いものでしたが、HTTPではまだ機能していました。自己署名証明書を使用しているため、httpsは試していません。

主な問題は、cgi-bin がバックエンドではなく、nginx フォルダー/ホストで引き続き呼び出されていることです。これにより、この問題は修正され、呼び出しがバックエンドにリダイレクトされました。

     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

関連情報