質問: 設定例) ``` ProxyPass /example1/ http://xxx.xxx.x.xx:8080/example1/ ProxyPassReverse /example1/ http://xxx.xxx.x.xx:8080/example1/ ProxyPass /example2/ http://xxx.xxx.x.xx:8080/example2/ ProxyPassReverse /example2/ http://xxx.xxx.x.xx:8080/example2/ ProxyPass /example3/ http://xxx.xxx.x.xx:8080/example3/ ProxyPassReverse /example3/ http://xxx.xxx.x.xx:8080/example3/ ``` 上記のような設定で、Apacheのdocumentroot配下に「example1」ディレクトリを作成すると、 http://xxx.xxx.x.xx:8080/example1/にリダイレクトできますが、 そこから他画面への遷移が404:Not Foundエラーになってしまいます。 どのようにすれば画面遷移ができるようになるでしょうか。 下記サイトのmod_proxyのProxyPassディレクティブを参考にしています。 <https://httpd.apache.org/docs/2.2/ja/mod/mod_proxy.html> いろいろ調べても方法が見つからず困っております。 もし方法をおわかりの方がおられましたら、ご教授いただけると幸いです。 何卒、よろしくお願い申し上げます。
回答: 設定は正しいように思います。 > > Apacheのdocumentroot配下に「example1」ディレクトリを作成すると、 > > > `ProxyPass` を設定する Apache httpd (フロント側)には example1 ディレクトリは不要なはずです。 8080番ポートで待ち受けるバックエンドも Apache httpd で、そちらに作成したということでしょうか? > > そこから他画面への遷移が404:Not Foundエラーになってしまいます。 > > > そのリンクの URL はどうなっていますか? **http://(フロントのホスト名)/example1/** で始まっていないため、フロントの Apache httpd が 404 を返しているのか、それとも、**http://(フロントのホスト名)/example1/** で始まっているけれど、バックエンドが 404 を返しているのか、どちらでしょうか? 404 のときに、バックエンド側のアクセスログが出力されるかどうかでわかると思います。 ### (2018/06/16 10:58) 追記 フロントに https でアクセスするのであれば、**/etc/httpd/conf.d/ssl.conf** の `` 内に ProxyPass を設定する必要があります。