
Eu tenho uma configuração de proxy reverso host nginx -> nagios, ambos nas máquinas virtuais do Ubuntu 20.04, são como apenas o apt-get install padrão não personalizado. Adicionei certificado autoassinado apenas para teste.
192.168.254.107 - nginx 192.168.254.200 - nagios
O problema é que o cgi-bin parece não ser redirecionado e está sendo servido no próprio nginx
Configuração 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;
}
}
Erro
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"
Percebi isso quando tentei abrir em outro navegador e ele procurou o caminho no host nginx ...
https://192.168.254.107/cgi-bin/nagios4/status.cgi?hostgroup=all&style=hostdetail
Responder1
O problema provavelmente está nessas duas linhas da sua configuração:
location /nagios4 {
proxy_pass https://192.168.254.200/nagios4;
Remova nagios4
a location
diretiva para encaminhar todos os locais para o proxy ou
remova-o /nagios4
da proxy_pass
diretiva.
Você pode ver nos logs de erros que nagios4
aparecem entre o cgi-bin
diretório e o arquivo cgi real, como extinfo.cgi
.
Responder2
Encontrei o mesmo problema e era antigo, mas ainda funcionava para HTTP. Não tentei https porque estou usando certificado autoassinado
O principal problema é que o cgi-bin ainda está sendo chamado na pasta/host nginx e não no backend. Isso corrigiu o problema e redirecionou a chamada para o back-end.
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;
}