やりたいこと
Apacheが受けた通信は別サーバにプロキシを行うが、特定のパスの通信に関してはプロキシをせずに自サーバのリソースで応答したい。
例として/healthというリクエストに関しては/var/www/html/health.htmlを表示させる。

環境情報
- Apache/2.4.37 (Red Hat Enterprise Linux)
やり方
/var/www/html/health/health.htmlを準備した上で、以下のhttpd-proxy.confを/etc/httpd/conf.d/に配置をし、サービスを起動する。
ProxyPass / http://hoge.myapp:8080/
ProxyPassReverse / http://hoge.myapp:8080/
<Location /health>
ProxyPass !
SetHandler default-handler
DirectoryIndex health.html
</Location>Apacheを起動しているサーバ内から打鍵をすると、確かにローカルに配置したHTMLの内容が表示される。
$ curl http://localhost/health/ MyHealthCheckHTML
以下、補足です。
補足
アクセスログを見ると以下のようになっており、healthという通信だけはローカルに、それ以外のパスはバックエンドのアプリケーションサーバにプロキシがされていました。
172.17.0.1 - - [...] "GET /sample/ HTTP/1.1" 200 636 "-" "curl/8.0.1" 172.17.0.1 - - [...] "GET /health/ HTTP/1.1" 200 14 "-" "curl/8.0.1"
記載の中にある「!」は「ローカルサーバをリモートサーバのミラーとして振る舞わせること」を意味していて、ProxyPassの構文としても重要なので覚えておくと役立つと思います。
以上。