nginx 位置重写但 proxy_rewrite 关闭

nginx 位置重写但 proxy_rewrite 关闭

我正在尝试使用 nginx 将请求代理到我的内部后端。

我的配置如下:

location /Shibboleth.sso {
    proxy_pass internal-backend; # ip
    proxy_redirect off;
}

但是,我的重定向总是被重写。我的后端返回如下响应https://www.google.de/test我的浏览器接收到https://www.mydomain.de/test

我如何让 nginx 仅转发响应?

答案1

我解决了这个问题。POUND(我的 ssl-proxy)默认会自动重写每个位置。我添加了

RewriteLocation 0

到 pound.cfg 并且最终它起作用了。

答案2

这是我的配置:

  set $s3_bucket '<BUCKETNAME>.s3.amazonaws.com';

  location / {
        send_timeout 5m;
        proxy_read_timeout 240;
        proxy_send_timeout 240;
        proxy_connect_timeout 240;
        proxy_http_version 1.1;
        proxy_set_header Host $s3_bucket;
        proxy_set_header Authorization '';
        proxy_hide_header x-amz-id-2;
        proxy_hide_header x-amz-request-id;
        proxy_ignore_headers "Set-Cookie";
        proxy_buffering off;
        proxy_intercept_errors on;
        proxy_redirect off;
        resolver 8.8.8.8;
        proxy_pass http://$s3_bucket;
        }

已测试并正常运行。它只是将 URI 传递给 S3 实例,允许您在代理处终止 SSL 连接。对于需要静态 IP 的防火墙等非常有用;因为 AWS 地址空间对于白名单目的来说非常大。

相关内容