0

我们在 Apache 服务器后面运行 Shiny 服务器和 ShinyProxy 服务器。我们希望通过 URL my.domain.com/app/app2 访问 ShinyProxy 服务器应用程序

ShinyProxy 服务器应用程序在服务器上的端口 8080 (localhost:8080) 下可用

其他 Shiny 应用程序(不是 ShinyProxy)仍应在 URL my.domain.com/app1、my.domain.com/app2、my.domain.com/appN 下可用

普通的 Shiny 服务器在端口 3838 (localhost:3838) 上运行

我们正在努力寻找正确的 Apache 重写规则来实现以下目标:

my.domain.com/app1 -> localhost:3838(闪亮的服务器)

my.domain.com/app/app2 -> localhost:8080(闪亮代理服务器)

我们得到的壁橱是具有以下条件的

RewriteRule /pscapp/(.*) ws://localhost:3838/$1 [P,L] 
RewriteCond %{​​​​​HTTP:Upgrade}​​​​​ !=websocket RewriteRule /pscapp/(.*) http://localhost:3838/$1 [P,L] 
ProxyPass /pacapp http://localhost:3838/ retry=1 acquire=3000 timeout=600 Keepalive=On 
ProxyPassReverse /pscapp http://localhost:3838/ 
#ProxyRequests Off 
#RewriteCond /app !-f 
RewriteCond %{​​​​​HTTP:Upgrade}​​​​​ =websocket RewriteRule /app/(.*) ws://localhost:8080/$1 [P,L] 
RewriteCond %{​​​​​HTTP:Upgrade}​​​​​ !=websocket RewriteRule /app/(.*) http://localhost:8080/$1 [P,L] 
ProxyPass /app/ http://localhost:8080/ retry=1 acquire=3000 timeout=600 Keepalive=On 
ProxyPassReverse /app/(.*) http://localhost:8080/app/(.*) 
ProxyRequests Off

当我们重新启动 httpd 时,Shiny 服务器位工作正常。但是 ShinyProxy 位只是显示了一点内容然后卡住了,即:

访问https://my.domain.com/app1工作正常

访问https://my.domain.com/app/app2启动了 ShinyProxy docker 容器,但该应用程序不存在于浏览器中。

您知道我们如何实现这一目标以及有什么问题吗?

诚挚的问候

4

0 回答 0