使用nginx反向代理,加载不到静态文件
10.240.218.91上部署了一个工具(类似jupyter一样),可以通过https://10.240.218.91/直接访问,并使用。
现在想通过https://10.240.218.90/vtune-o...这个地址,打开这个工具,也就是能获取https://10.240.218.91/上的内容,nginx配置如下:
location = /vtune-open {
proxy_pass https://10.240.218.91/;
proxy_set_header Host $host;
client_max_body_size 5000m;
error_page 502 =203 /50x.html;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
问题是https://10.240.218.91/的静态资源,比如https://10.240.218.91/socket.js现在变成了访问https://10.240.218.90/socket.js,结果就是not found。
我搜索了一圈,有人建议是只要包含js,css之类后缀的,都再次反向代理,全部指向10.240.218.91。
但是,因为本身https://10.240.218.90/下面,本身是一个完整的项目,有很多自己的静态资源,这样就使得https://10.240.218.90/无法正常访问了.
这种问题,能通过修改nginx配置做到吗?还是需要通过前端来弄呢?
nginx第一次配置,实在没办法了,救救孩子吧。。。
补:最后总结,就是想要实现,rewrite到https://10.240.218.91/,但使得浏览器地址保持https://10.240.218.90/vtune-o...不变。。。我搜了一圈,好像实现不了。。。唉
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果你访问的工具是个网页的话建议你不要用二级路径。因为网页中会再次请求js和css以及其他静态资源,而这些静态资源是不会带上二级路径/vtune-open/ 的
可以用端口的方式,比如你在90机器上开启8090端口,然后反向代理到91的机器
rewrite 只能解决你的一部分问题
静态资源不要杂糅在一起,按文件夹、或者归并在 对象存储 上,比较推荐
要点在于
location /aaa/ { ... }
下的root /var/www
是会拼接 location 里的路径的。比如说访问http://your.domain.com/aaa/test1.txt
,实际访问的文件就是/var/www/aaa/test1.txt
,而不是/var/www/test1.txt
。建议自己起一个 nginx 服务器多试试。
求问 楼主解决没呀? 同样的需求