问题:
- 我使用 nginx指令将URI 中具有特定路径的请求
proxy_pass
重定向到。https
location
https://domain/path/index.html
http://container_ip:port/index.html
- 这对于初始请求来说非常有效。
- 但是,如果 HTML 文件指定了要加载的资源,客户端则不需要路径,只使用基本 URL 来搜索这些资源;在示例中
https://domain/main.css
。
问题:
我如何配置 nginx 以便也在原始路径中搜索此类资源;在示例中https://domain/path/main.css
?
当前错误的 nginx 配置:
server {
listen 443 ssl;
server_name domain;
[...]
location /path/ {
proxy_set_header Host $host;
proxy_pass http://container_ip:port/;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
答案1
资源路径由您的应用程序生成。正确且可靠的方法是修复您的应用程序以生成具有正确路径的资源 URL。
如果你想要一个不可靠的解决方案,你可以尝试使用http://nginx.org/en/docs/http/ngx_http_sub_module.html替换 nginx 代理的响应中的资源 URL。但是,这可能会产生难以诊断的不良副作用。