Nginx 重寫 url 以進行代理傳遞

Nginx 重寫 url 以進行代理傳遞

所以我在 kubernetes 叢集中有兩個 nginx 伺服器。我希望一台 nginx 伺服器充當另一台為我的 phpmyadmin 檔案提供服務的反向代理。

為了從第一台伺服器存取我的 phpmydadmin,使用者必須輸入: https://mynginx.example/phpmyadmin 我希望我的 nginx 伺服器在代理傳遞之前重寫 URI,用 / 取代 /phpmyadmin。

我暫時寫這個

      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

我修好它 了 !這是我的正規表示式 (/.*) 的問題,我刪除了 /,現在它可以工作了。

相關內容