nginx proxy_pass 更改请求和响应中的目标域

nginx proxy_pass 更改请求和响应中的目标域

我的问题是:

我有一台具有内部域名的服务器service.internal.example.com,它将所有请求另一个域的客户端重定向到其 FQDN https://service.internal.example.com。此服务器不受我的控制,必须继续保持可访问状态service.internal.example.com

我的工作是设置一个代理,使该服务可以从完全独立的external.example.comDNS 域访问。(这意味着 DNS 区域彼此不了解,外部 DNS 查询将通过以下方式回答恩斯域为了*.internal.example.com

我也无法控制 DNS 域。

我尝试了代理传递、设置主机头并重写,但目前没有任何效果。

server {
    listen       443 ssl http2;
    listen       [::]:443 ssl http2;
    server_name  service.external.example.com;

    location / {
        rewrite ^(.*) https://service.internal.example.com$1 break;

        proxy_pass https://10.1.2.3/; # ip of service.internal.example.com
        proxy_redirect off;

        proxy_set_header    Host "service.internal.example.com";
        proxy_cookie_domain service.internal.example.com service.external.example.com;  

        sub_filter "service.internal.example.com" "service.external.example.com";
        sub_filter_once off;
    }
    
    ssl_certificate "/etc/pki/nginx/example.crt";
    ssl_certificate_key "/etc/pki/nginx/example.key";
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout  10m;
    ssl_ciphers PROFILE=SYSTEM;
    ssl_prefer_server_ciphers on;
}

我将非常感激您的建议。

相关内容