Блестящий сервер, работающий на локальном хосте, не может быть доступен из сети при перенаправлении apache - PullRequest
1 голос
/ 13 марта 2019

Здравствуйте, дорогой, переполнение стека!

У меня проблемы с настройкой блестящего сервера и маршрутизации apache2.Приблизительно следуя этому руководству https://support.rstudio.com/hc/en-us/articles/213733868-Running-Shiny-Server-with-a-Proxy (но с apache2)

Я настроил блестящую работу на моем порту 127.0.0.1: 2224 .Все прекрасно работает, когда я открываю туннель и порт вперед, я вижу свое приложение на localhost.

Я устанавливаю pwd и перенаправление в apache следующим образом:

<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 / что угодно - но ресурсы доступны только через localhost: 2224 / shared / что угодно

...

есть идеи, где я испортил маршрут?Какие привилегии отсутствуют, или что попытаться получить доступ к моему приложению без настройки туннеля ssh и переадресации порта?

Большое спасибо за любые идеи!

1 Ответ

0 голосов
/ 14 марта 2019

Приблизительно следуя этому руководству https://support.rstudio.com/hc/en-us/articles/213733868-Running-Shiny-Server-with-a-Proxy (но с apache2)

Я успешно использовал apache2 в качестве обратного прокси-сервера для сервера Shiny, когда подробно следовал этому руководствув частности последние примеры.В вашем случае вы должны заменить

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
...