私はWeb開発者であり、プロジェクトでは、ポートを使用せずにTomcatとnodejsを実行する必要があります。
Httpdでプロキシモジュールに関する投稿を見たので、次のように2つの仮想ホストを作成しました。
<VirtualHost *:80>
ServerName localhost
# ErrorLog "logs/Tomcat-error.log"
ProxyPreserveHost On
ProxyPass /Tomcat http://localhost:8080/
ProxyPassReverse /Tomcat http://localhost:8080/
</VirtualHost>
<VirtualHost *:80>
ServerName localhost
# ErrorLog "logs/nodejs-error.log"
ProxyPreserveHost On
ProxyPass /nodejs http://localhost:8000/
ProxyPassReverse /nodejs http://localhost:8000/
</VirtualHost>
また、localhost/nodejsまたはlocalhost/Tomcatの両方にアクセスしようとすると、NotFoundエラーが発生します。
誰かが私に理由を説明できますか?
ありがとう;-)
最初に一致したVirtualHost
は、以下をシャドウします。したがって、ProxyPass
からnodejs
に到達することはありません。
すべてを次のようにマージする必要があります。
<VirtualHost *:80>
ServerName localhost
# ErrorLog "logs/Tomcat-error.log"
<Location /Tomcat/ >
ProxyPreserveHost On
ProxyPass http://localhost:8080/
ProxyPassReverse http://localhost:8080/
</Location>
# ErrorLog "logs/nodejs-error.log"
<Location /nodejs/ >
ProxyPreserveHost On
ProxyPass http://localhost:8000/
ProxyPassReverse http://localhost:8000/
</Location>
</VirtualHost>
proxy
およびproxy_http
モジュールを有効にしましたか?
そしてもちろん、Tomcat側とnodejs側を配置する必要があります。