通过apache重定向时,无法从Web访问本地主机上运行的闪亮服务器

时间:2019-03-13 16:15:22

标签: r shiny apache2 shiny-server

您好,亲爱的stackoverflow!

我在设置闪亮的服务器和apache2路由时遇到问题。 大致遵循本指南https://support.rstudio.com/hc/en-us/articles/213733868-Running-Shiny-Server-with-a-Proxy(但使用apache2)

我将Shiny设置为在 127.0.0.1:2224 端口上运行。当我打开隧道并转发端口时,一切正常,我在本地主机上看到我的应用程序。

我在apache中将pwd和重定向设置为:

<VirtualHost *:80>
    ServerAdmin karin@localhost
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    ProxyPass "/myapp" "http://localhost:2224"
    ProxyPassReverse "/myapp" "http://localhost:2224"

   <Location /myapp>
    AuthType Basic
    AuthName "Enter your login name and password"
    AuthUserFile /etc/apache2/.htpasswd
    Require valid-user
   </Location>

然后当我打开public my.ip / myapp 时,系统会提示我登录,然后重定向到本地端口2224,是的!

〜但是,该应用似乎已损坏。我看不到任何资源,图像,CSS-只是应用ui.R

中编码的普通界面

我在日志中看到大量404,闪亮的服务器正在查找地址为 my.ip / shared / every 的所有这些资源,但是这些资源是仅可通过 localhost:2224 / shared / every

访问

...

知道我弄乱了路由吗?缺少哪些特权,或者什么可以尝试在不设置ssh隧道和端口转发的情况下访问我的应用程序?

非常感谢任何想法!

1 个答案:

答案 0 :(得分:0)

  

大致遵循本指南https://support.rstudio.com/hc/en-us/articles/213733868-Running-Shiny-Server-with-a-Proxy(但使用apache2)

详细遵循该指南(尤其是最后一个示例)时,我已经成功地将apache2用作闪亮服务器的反向代理。在您的情况下,您应该替换

ProxyPass "/myapp" "http://localhost:2224"
ProxyPassReverse "/myapp" "http://localhost:2224"

使用

 RedirectMatch permanent ^/myapp$ /myapp/

 RewriteEngine on
 RewriteCond %{HTTP:Upgrade} =websocket
 RewriteRule /myapp/(.*) ws://localhost:2224/$1 [P,L]
 RewriteCond %{HTTP:Upgrade} !=websocket
 RewriteRule /myapp/(.*) http://localhost:2224/$1 [P,L]
 ProxyPass /myapp/ http://localhost:2224/
 ProxyPassReverse /myapp/ http://localhost:2224/

 Header edit Location ^/ /myapp/
 ProxyRequests Off