r-Nginx:代理传递/代理重定向到闪亮的web应用程序



我们正在尝试更新我们的内部服务器基础设施,并通过Nginx服务器代理对R闪亮Web服务器的所有访问。我可以从闪亮的服务器获得响应,但无法通过Nginx服务器获得相关文件,如css/js。

设置:

  • 2个docker容器(1个用于托管nginx,1个运行R用于闪亮的应用程序(

  • 两个码头集装箱都是码头网络的成员

  • 闪亮服务器侦听端口7676(内部ip地址172.18.0.3(

  • nginx服务器托管了一些带有iFrame的静态html文件(遗留的,无法摆脱(,这些文件应该显示闪亮的服务器的内容

  • 访问nginx-server/QueryLandscape.html加载带有iFrame<iframe src="ilandscape"></iframe>的页面

  • iFrame工作:它加载R-shine应用程序的静态部分,但不加载相关的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 conf到proxy/redirecthttp://nginx-server:8001/ilandscape/shared/shiny.css --> 172.18.0.3:7676/shared/shiny.css缺少什么?

谢谢你的帮助,Tobi

看起来充当浏览器的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;

基本上你现在有一个代理,我们也想要一个反向代理。让我知道这是否有效。

最新更新