NodeJSをサブディレクトリで動かす為のApacheの設定


そろそろnginxに移行しようかなとも思っているのですが、現状、Apache上で動かしていたため、ApacheでのNodeJSのプロキシ設定です。

Apacheの設定は、最初に設定してそれっきりで次に設定する時に覚えていないので、メモとして残しておきます。

別にNodeJSに限った話ではなく、他の似たようなモノにも適用できるかもしれません。

ProxyPass, ProxyPassReverseのみだと、NodeJS内のドキュメントルート以下のリンクなどがそのまま表示されてしまい、正常に動作しないので、SetOutputFilterとProxyHTMLURLMapを設定し、ドキュメントルート以下のリンクに指定したサブディレクトリを追加するように設定します。

<VirtualHost *:80>
  ... その他設定 ...
 
  ProxyPass /hoge https://localhost:3000
  ProxyPassReverse /hoge https://localhost:3000
  <Location /hoge>
    SetOutputFilter proxy-html
    ProxyHTMLURLMap / /hoge/
  </Location>
 
  ... その他設定 ...
</VirtualHost>

関連記事