Я веб-разработчик, и для проекта мне нужно запускать 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.
Кто-нибудь может объяснить мне, почему?
Спасибо; -)
Я решил свою проблему, сделав это в с поддержкой сайтов
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_http
модулей?
И, конечно же, стороны tomcat и nodejs должны быть на месте.