프록시 전달을 위한 Nginx 재작성 URL

프록시 전달을 위한 Nginx 재작성 URL

그래서 kubernetes 클러스터에 두 개의 nginx 서버가 있습니다. 하나의 nginx 서버가 내 phpmyadmin 파일을 제공하는 다른 서버의 역방향 프록시 역할을 하길 원합니다.

첫 번째 서버에서 phpmydadmin에 액세스하려면 사용자는 다음을 입력해야 합니다. https://mynginx.example/phpmyadmin 여기서는 /phpmyadmin을 /로 대체하여 프록시를 전달하기 전에 내 nginx 서버에서 URI를 다시 작성하도록 합니다.

나는 지금 이것을 쓴다

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

그러나 실제로 404 오류가 반환되고 phpmyadmin을 제공하는 nginx의 로그를 보면 다음과 같은 내용이 표시됩니다.

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

내 /phpmyadmin을 /로 바꾸지 않는 것 같습니다.

내 모든 구성 파일은 다음과 같습니다.

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

답변1

나는 그것을 고쳤다! 내 정규식(/.*)에 문제가 있었습니다. /를 제거하고 이제 작동합니다. 여러분의 도움과 제안에 감사드립니다. 링크를 따라가며 몇 가지를 배웠습니다 x)

관련 정보