您好,亲爱的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隧道和端口转发的情况下访问我的应用程序?
非常感谢任何想法!
答案 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