Tomcat
在同一埠上執行 Apache http、Apache tomcat 和 nodejs
我是一名網路開發人員,對於一個項目,我需要在不使用埠的情況下執行 tomcat 和 nodejs。
我在 httpd 中看到了一些關於代理模組的文章,所以我創建了兩個虛擬主機,如下所示:
<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 時,我得到一個 Not Found 錯誤。
有人可以解釋一下為什麼嗎?
謝謝 ;-)
sites-enabled
我通過在conf中執行此操作解決了我的問題:NameVirtualHost MY-IP:80 <VirtualHost MY-IP:80> ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/ ServerName dummy.com </VirtualHost> <VirtualHost MY-IP:80> DocumentRoot /var/www ServerName dummy.org </VirtualHost>
希望它可以幫助其他人
第一個匹配
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 端應該就位。