Help us understand the problem. What is going on with this article?

RStudioServerのプロキシ設定(Apache)

More than 1 year has passed since last update.

はじめに

RStudio Serverをインストールした際、Apacheのプロキシ設定で調査した内容を記述します

前提事項

  • OSはlinux(Ubuntu 18.04 LTS)になります
  • RStudioServerのインストール手順はDownload RStudio Serverを参照ください

発生事象

RStudio ServerをApache経由で動作させるためRunning RStudio Server with a Proxyを参考にプロキシ設定を行いました
その際、URLパスをするとログイン画面が404となる事象が発生しました

画面イメージ

設定内容(修正前)

http.confのURLパス(例:rstudio)を以下のように設定した

RedirectMatch permanent ^/rstudio$ /rstudio/

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

対処

RStudio Serverの一部機能(ログインやログアウト等)は明示的にサブディレクトリへリダイレクトが必要なため設定内容を修正した

設定内容(修正後)

http.confのURLパス(例:rstudio)を以下のように変更した

#ログインとログアウトはサブディレクトリにリダイレクトする
Redirect /auth-sign-in /rstudio/auth-sign-in  
Redirect /auth-sign-out /rstudio/auth-sign-out

#ログイン認証後のページをリダイレクトする
<If "%{HTTP_REFERER} =~ /auth-sign-in/">
  RedirectMatch ^/$     /rstudio/
</If>

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

参考情報

tz2i5i_ebinuma
仕事はフリーランスでやってます。 自宅で調べたことを投稿しています。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away