我们正在尝试更新我们的内部服务器基础设施,并通过 Nginx 服务器代理对我们的 R闪亮网络服务器的所有访问。我能够从闪亮的服务器获得响应,但无法通过 Nginx 服务器获取 css/js 等相关文件。
Setup:
2 个 docker 容器(1 个用于托管 nginx,1 个运行 R 用于闪亮的应用程序)
两个 docker 容器都是 docker 网络的成员
闪亮的服务器监听端口7676(内部IP地址172.18.0.3)
nginx 服务器正在托管一些带有 iFrame 的静态 html 文件(旧版,无法摆脱),这应该显示闪亮服务器的内容
访问nginx-服务器/QueryLandscape.html使用 iFrame 加载页面<iframe src="ilandscape"></iframe>
iFrame 有效:它加载 R-shiny 应用程序的静态部分,但不加载相关的 JS/CSS/....(例如http://nginx-server:8001/ilandscape/shared/shiny.css
)
在 nginx-docker 容器中我可以访问这个 css 文件wget 172.18.0.3:7676/shared/shiny.css
Nginx.conf
location /ilandscape/ {
proxy_pass http://172.18.0.3:7676/;
#proxy_redirect http://172.18.0.3:7676/ $scheme://$host/;
# websocket headers
proxy_set_header Upgrade $http_upgrade;
proxy_http_version 1.1;
proxy_read_timeout 20d;
proxy_set_header Host $host;
}
我的 nginx 配置中缺少什么来代理/重定向http://nginx-server:8001/ilandscape/shared/shiny.css --> 172.18.0.3:7676/shared/shiny.css
?
感谢您的帮助,
飞鸟
看起来充当浏览器的 iframe 正在接收主机名而不是资源的完整路径。您可以设置以下 ReverseProxy 标头并尝试一下吗:
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
基本上你现在有一个代理,我们也想要一个反向代理。让我知道这个是否奏效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)