Apache2とNode.jsの連携プレー

Node.jsで作成したアプリに、Apache2からアクセスするときの設定事項についてメモっておきます。

こちらの記事の通りにやってみたんですが、以下のエラーが出てApache2の再起動に失敗しました。
Invalid command ‘ProxyPass’, perhaps misspelled or defined by a module not included in the server configuration

ProxyPassコマンドを使えるようにするために、これに関するモジュールをインストールしなくてはならないみたいです。

環境

OS: Ubuntu 18.04
Apache2: パッケージインストールしたもの
Node.js: v12.15.0

手順

プロキシー関連のモジュールをインストールする。[参考サイト]

$ sudo a2enmod proxy
$ sudo a2enmod proxy_http
$ sudo a2enmod proxy_balancer
$ sudo a2enmod lbmethod_byrequests

設定ファイルの作成

/etc/apache2/conf-available/node.confを作成する。

<Location /node/>
  ProxyPass http://localhost:1234/
  ProxyPassReverse http://localhost:1234/
  Order deny,allow
  Deny from all
  Allow from all
</Location>

シンボリックリンクを張る。

$ /etc/apache2/conf-enabled
$ sudo ln -s ../conf-available/node.conf node.conf

Apache2を再起動する。

$ sudo service apache2 restart

連携プレー

Node.jsで書いたアプリを1234番ポートで起動する。
http://localhost/node/にアクセスすれば、Node.jsアプリの画面が表示される。