Nginx reescribe la URL para pasar proxy

Nginx reescribe la URL para pasar proxy

Entonces tengo dos servidores nginx en un clúster de Kubernetes. Quiero que un servidor nginx actúe como proxy inverso para el otro que sirve mis archivos phpmyadmin.

Para acceder a mi phpmydadmin desde el primer servidor, el usuario debe escribir: https://mynginx.example/phpmyadmin A partir de ahí quiero que mi servidor nginx reescriba el URI antes de que pase el proxy reemplazando /phpmyadmin por /.

escribo esto por ahora

      location                /phpmyadmin {
            rewrite           /phpmyadmin(/.*) $1 break;
            proxy_pass        https://phpmyadmin.default.svc.cluster.local:5000;
      }

Pero en realidad, cuando me devuelve el error 404 y cuando vi registros en nginx que sirve phpmyadmin, veo:

19 open() "/var/www/localhost/htdocs/phpmyadmin/phpmyadmin" failed (2: No such file or directory)

No parece reemplazar mi /phpmyadmin por /.

Todo mi archivo de configuración es:

server {
        listen                  80 default_server;
        listen                  [::]:80 default_server;

        return                  301 https://$host$request_uri;
}

server {
      listen                  443 ssl default_server;
      root                    /www;
      index                   index.html;

      ssl_certificate         /tls/tls.crt;
      ssl_certificate_key     /tls/tls.key;

      location                /phpmyadmin {
            rewrite           /phpmyadmin(/.*) $1 break;
            proxy_pass        https://phpmyadmin.default.svc.cluster.local:5000;
      }

      location                ~ /wordpress(.*) {
            return            307 $scheme://$host:5050$1;
      }
}

Respuesta1

Lo arreglé ! Fue un problema con mi expresión regular (/.*), eliminé / y ahora funciona. Gracias por tu ayuda y sugerencia. Sigo los enlaces y aprendí algunas cosas x)

información relacionada