はじめに
もともとApatch + TomcatでJavaアプリケーションを稼働しているサーバーがあり、
そこにReact + Node + Typescriptで作ったアプリケーションを稼働させたいという要望があり(私の要望)それを実現するためにやったことを書いていこうと思います。
参考にしたサイトはこちら
#前提条件
- Javaのアプリケーションは稼働済み
- Javaアプリケーションは
xxx.xxx.xxx
でアクセス可(ルート) - Nodeアプリケーションは
xxx.xxx.xxx/node/
でアクセス可にする - Nodeアプリケーションの稼働ポートは
3000
- localhost:3000/node/でNodeアプリケーションが稼働している
#設定値
特定のURLにアクセスした場合に違うパスにアクセスさせる。(ブラウザで見えるアクセスURLは変わりません。)
xxx.xxx.xxx/node/
↓
localhost:3000/node/
conf/httpd.conf
#コメントを外して有効にする
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_http_module modules/mod_proxy.so
もコメントで無効の場合は、
コメントを外して有効にする。
conf/extra/httpd-proxy-ajp.conf
# 以下を追記
<Location /node/>
ProxyPass http://localhost:3000/
ProxyPassReverse http://localhost:3000/
Require all granted
</Location>
アクセスのパスを変更したい場合はLocation /node/
の/node/
を変更することで実現できます。
元々はhttpd-proxy-ajp.conf
のファイルにajpに関する設定があり今回は同じファイルに書いていますが、おそらく上記参考サイトのようにhttpd-proxy.conf
のようなファイルを作ってそちらに書いたほうがわかりやすいと思います。