Nginx 重写 URL 以进行代理传递

Nginx 重写 URL 以进行代理传递

因此,我在 kubernetes 集群中有两个 nginx 服务器。我希望一个 nginx 服务器充当另一个为我的 phpmyadmin 文件提供服务的 nginx 服务器的反向代理。

为了从第一台服务器访问我的 phpmydadmin,用户必须输入: https://mynginx.example/phpmyadmin 从那里我希望我的 nginx 服务器在代理传递之前用 / 替换 /phpmyadmin 重写 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)

相关内容