上下文
我在GCE上的kubernetes集群上部署了一个有角度的2应用程序。我可以使用负载均衡器服务通过暴露的公共IP访问它,没有任何问题。
但是,我打算在路径/assessment
上访问它,因此设置了一个带有以下内容的nginx反向代理。
配置
$ cat nginx/frontend.conf
server {
listen 443;
ssl on;
ssl_certificate /etc/tls/cert.pem;
ssl_certificate_key /etc/tls/key.pem;
location /assessment/ {
proxy_pass http://participation-frontend.default.svc.cluster.local/;
}
// etc.
}
症状
在呈现html时,找不到资源(css,js),而是返回404
。知道为什么会这样吗?
我也注意到,如果我将位置设置为/
,那么一切都很完美。
日志
正如您在下面的日志摘录中所看到的,对文件的请求将直接在root上执行。在这种情况下:/inline.508911a34e3d7fcf458e.bundle.js
而不是/assessment/GET /inline.508911a34e3d7fcf458e.bundle.js
“/etc/nginx/html/inline.508911a34e3d7fcf458e.bundle.js” failed (2: No such file or directory), client: 10.132.0.4, server: , request: “GET /inline.508911a34e3d7fcf458e.bundle.js HTTP/1.1", host: “<nginx-public-IP>”, referrer: “https://<nginx-public-IP>/assessment/“
答案 0 :(得分:0)
html5 base url必须与nginx中定义的位置匹配。
location /assessment/
<base href="/assessment/">