我们在 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 容器,但该应用程序不存在于浏览器中。
您知道我们如何实现这一目标以及有什么问题吗?
诚挚的问候