内部处理 Nginx 302 重定向,重定向应通过代理传递

内部处理 Nginx 302 重定向,重定向应通过代理传递

我有一个为 AWS Kibana 端点提供服务的 Nginx 配置。

server {
    listen 0.0.0.0:80;
    location / {
    proxy_pass http://<vpc-elasticsearch-endpoint>/_plugin/kibana/;
    }
}

问题是:当我访问 Nginx URL 时,我被重定向到另一个带有 302 的端点(AWS cognito),我无法从浏览器访问该端点。

cognito URL 如下所示:http://vpc-*****.amazonaws.com

我需要通过 Nginx 本身来解析 Cognito URL。也许可以添加另一个位置块来解析 Cognito。这样最终用户在重定向到 Cognito 之前就能看到她用来访问 Nginx 的原始 nginx 端点。

如何在 Nginx 中实现这一点?

答案1

尝试将Host标头添加到代理。默认情况下,nginx 将其设置为proxy_pass指令中找到的主机名。

server {
    listen 0.0.0.0:80;
    location / {
        proxy_pass http://<vpc-elasticsearch-endpoint>/_plugin/kibana/;
        proxy_set_header Host $host;
    }
}

相关内容