背景
我有两个 Web 应用程序实例,希望它们可以在mydomain.com/
和处访问mydomain.com/staging/
。我已将 nginx 配置为根据路径将请求代理到适当的实例,但是当在暂存实例中单击链接时,路径(在 HTML 中)指向非暂存应用程序。
我拥有的
我想配置 nginx,以便每当使用 referrer 发出 http 请求时,将请求代理到暂存环境mydomain.com/staging/...
。我有这么多工作要做。
我需要的
我需要将请求重定向到正确的 /staging url。我无法弄清楚如何example.com/<all this>
从请求的 url 中获取()路径并将其附加到我的 /staging 路径以进行重定向。这是我的配置的相关部分。
location @puma {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
# if mydomain.com/products/1 is requested with a /staging referrer
# I need to redirect to /staging/products/1 instead of always /staging/
if ($http_referer ~* /.*\.com/staging$ ) {
set $request_url /staging/;
return 301 $request_url;
}
proxy_pass http://puma_production;
}