NGINX proxy_pass 返回内容类型 HTML 而不是内容类型 JAVASCRIPT

Rak*_*kib 6 nginx proxypass resolve nginx-upstreams upstream

我有以下 NGINX 配置

\n
events {}\n\nhttp {\n  access_log       /dev/stdout;\n  error_log        /dev/stderr;\n\n  resolver 1.1.1.1 1.0.0.1 valid=5s ipv6=off; # CloudFlare DNS resolver\n\n  upstream myupstream {\n    server       xyz.appspot.com:443;\n  }\n\n  server {\n    server_name            www. mywebsite.com;\n    listen                 80;\n\n    set $myupstream "xyz.appspot.com:443";\n\n    location ^~ /mypath/ {\n      proxy_pass       https://myupstream/theirpath/;  # <-------- Case A - proxy_pass via UPSTREAM\n      proxy_pass       https://$myupstream/theirpath/; # <-------- Case B - proxy_pass via VARIABLE\n      proxy_set_header Host "$myupstream";\n    }\n  }\n}\n\n# TEST_URL:                http://www.mywebsite.com/mypath/framework.js\n# DESTINATION_URL:         https://xyz.appspot.com:443/theirpath/framework.js\n
Run Code Online (Sandbox Code Playgroud)\n

问题出现在proxy_pass线路中

\n

当我使用案例 A \xe2\x9c\x85 ...

\n

... proxy_pass 通过 UPSTREAM... TEST_URLContent-Type: application/javascript按预期返回正确的标头

\n

当我使用案例 B \xe2\x9d\x8c ...

\n

... proxy_pass via VARIABLE ... TEST_URL 返回错误的标头Content-Type: text/html

\n

这会导致浏览器渲染错误。

\n
\n

如何确保“案例 B”像“案例 A”一样正确返回?

\n

我确保 DESTINATION_URLContent-Type: application/javascript每次都能正确返回。

\n