
我在 ubuntu 20.04 虛擬機器上有一個反向代理設定 nginx 主機 -> nagios,這些就像預設的 apt-get install 未自訂。我添加自簽名證書只是為了測試。
192.168.254.107-nginx 192.168.254.200-nagios
問題是 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
問題可能是您的配置的這兩行:
location /nagios4 {
proxy_pass https://192.168.254.200/nagios4;
要么nagios4
在location
指令中刪除以將所有位置轉發到代理,要么從指令中
刪除。您可以從目錄和實際 cgi 檔案之間出現的 錯誤日誌中看到,例如./nagios4
proxy_pass
nagios4
cgi-bin
extinfo.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;
}