在 Ngnix 中使用动态内容替代反向代理 HTML

在 Ngnix 中使用动态内容替代反向代理 HTML

我正在设置一个反向代理,以便通过多个后端对各种网站进行内部测试。

为了能够动态添加后端,我使用通配符子域和部分内容server_name来提取我的 Nginx 配置的设置:

server {
    listen 80;
    server_name   ~^(?<domain>.+)\.internal-checks(?<bundle>[0-9])\.mycompany\.com$;

    [...]

    proxy_set_header Host $domain;
    proxy_pass http://10.0.0.$bundle:8080;

到目前为止一切顺利。我遇到的问题是:

我怎样才能替换所有出现的 http://$domain http://$domain.internal-checks$bundle.mycompany.com 在我从后端收到的内容中?

需要这样做是为了调整内容中的所有链接以匹配反向代理的通配符 DNS。

我目前的尝试是使用subs_filter。如果我使用硬编码值,则替换有效:

subs_filter http://www.my-site.com http://www.my-site.com.internal-checks1.mycompany.com r;

但无论我尝试哪种组合,用变量替换最终只会得到原始内容。这是我最新的镜头:

subs_filter http://$domain http://$domain.internal-checks$bundle.mycompany.com r;

期望变量如何subs_filter使用?

相关内容