WordPress サイトは CDN の背後にあります。-origin で CDN をバイパスしたい

WordPress サイトは CDN の背後にあります。-origin で CDN をバイパスしたい

マルチ環境設定の場合、次のようになります。

https://www.example.com/=> クラウドフロント =>https://www-origin.example.com/=> WordPress の FastCGI

これは問題なく動作します。ただし、デバッグの目的で CloudFront をバイパスできるようにしたいと思います (SEO の問題を防ぐために robots.txt を配置します)。

https://www-origin.example.com/=> WordPress の FastCGI

私の問題は、WordPress が絶対 URL を保存するため、どのコンテンツに対しても CDN リンクを返すことです。応答内のリンクを含め、nginx で www-origin.example.com を www.example.com に透過的に書き換えたいのですが、何かヒントはありますか? fastcgi_param HTTP_HOST を設定してみましたが、効果はありませんでした。

server {
    listen 80;
    listen [::]:80;
    root /data/html/wordpress;
    index  index.php index.html index.htm;
    server_name  _;
    client_max_body_size 100M;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         include fastcgi_params;
    }
}

server {
    listen 80;
    root /data/html/wordpress;
    index  index.php index.html index.htm;
    server_name www-origin.example.com;
    client_max_body_size 100M;

    access_log /var/log/nginx/origin-access.log;
    error_log /var/log/nginx/origin-error.log;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         fastcgi_param HTTP_HOST www.example.com;
         include fastcgi_params;
    }
}

** 27-02 更新

今のところ、次の情報を得ました。コメントをいただければ幸いです。

server {
    server_name ~^(?<subdomain>.+)-origin(?<domain>\..+\..+)$;

    listen 80;

    access_log /var/log/nginx/access-origin.log;
    error_log /var/log/nginx/error-origin.log;

    location /test
    {
        root   /sites/$subdomain$domain;
    }


    location / { 
      proxy_pass http://127.0.0.1:80;
      proxy_redirect "https://$subdomain$domain/" "https://subdomain-origin$domain/";
      sub_filter_once off;
      sub_filter "$subdomain$domain" "$subdomain-origin$domain";
      sub_filter_types *;
      proxy_http_version 1.1;
      proxy_set_header Accept-Encoding "";

      proxy_set_header Host $subdomain$domain;

      # include details about the original request
      proxy_set_header X-Original-Host $http_host;
      proxy_set_header X-Original-Scheme $scheme;
      proxy_set_header X-Forwarded-For $remote_addr;
    }
}

server {
    listen 80 default_server;
    listen [::]:80;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    root /data/html/wordpress;
    index  index.php index.html index.htm;
    server_name _;

    client_max_body_size 100M;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

関連情報