Я веб-разработчик, и для проекта мне нужно запускать 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 должна быть на месте.