Итак, в настоящее время у меня есть сервер Glassfish 3.1 и сервер apache 2.2, работающие на одном компьютере. Однако я пытаюсь выяснить, как направить некоторый трафик через сервер apache на сервер Glassfish, чтобы скрыть нестандартные порты 8080,8181. У меня также есть статический контент, обслуживаемый на сервере apache. Я немного искал и прочитал несколько примеров, в которых говорится об этом, однако я действительно новичок в apache и не разбираюсь в вещах virtualhost и mod_proxy. Любая помощь в понимании этого и того, как достичь того, что я пытаюсь сделать, была бы замечательной.
РЕДАКТИРОВАТЬ
На примере Шейна я пробовал следующее.
<VirtualHost *:80>
ServerName forum.mydomain.com
# any logging config, etc, that you need
ProxyPass / http://127.0.0.1:8080/forum/
ProxyPassReverse / http://127.0.0.1:8080/forum/
</VirtualHost>
Но теперь весь мой трафик собирается http://127.0.0.1:8080/forum/ и по какой-то причине все изображения отсутствуют. Так что позвольте мне лучше объяснить свой сценарий. У меня есть сервер apache, который обслуживает статические страницы, доступ к этим страницам осуществляется с mydomain.com. Затем у меня есть форум, который работает как веб-приложение на моем сервере Glassfish, и они обслуживаются на mydomain.com:8080/forum/, я бы хотел, чтобы forum.mydomain.com перешел на mydomain.com:8080/ forum / но скрыть от пользователя порт 8080. Дайте мне знать, что вы думаете.
ИЗМЕНИТЬ ЧАСТЬ 2
Так как моя последняя попытка не сработала, я решил попробовать другое отклонение примеров Шейна, поэтому я попробовал следующее.
<VirtualHost *:80>
ServerName mydomain.com
ServerAlias subdomain.mydomain.com
DocumentRoot "/usr/local/apache/htdocs"
<Location /forum>
ProxyPass http://127.0.0.1:8080/forum/
ProxyPassReverse http://127.0.0.1:8080/forum/
</Location>
</VirtualHost>
Но это тоже не сработало, теперь, если я нажимаю mydomain.com, он переводит меня на mydomain.com//forums/list.page, но это ошибка 404 (я думаю, это странно, потому что он явно попал на сервер Glassfish, потому что он перенаправлен на страницу list.page). Однако, если я перейду на subdomain.mydomain.com, я перейду на мои обычные статические веб-страницы. Я чувствую, что должен быть рядом, но я просто не уверен, что не так. В этом примере я надеялся, что mydomain.com и subdomain.mydomain.com переведут меня на мои статические страницы, а mydomain.com/forum/ переведет меня в мое приложение форума на Glassfish.
ИЗМЕНИТЬ Часть 3 Финал?
Итак, я наконец получил маршрутизацию, как я хотел, НО по какой-то причине на форуме отсутствуют все изображения. В итоге я сделал это следующим образом.
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.mydomain.com
ServerAlias subdomain.mydomain.com mydomain.com
DocumentRoot "/usr/local/apache/htdocs"
</VirtualHost>
<VirtualHost *:80>
ServerName forum.mydomain.com
# any logging config, etc, that you need
ProxyPass / http://127.0.0.1:8080/forum/
ProxyPassReverse / http://127.0.0.1:8080/forum/
</VirtualHost>
Теперь мне просто нужно разобраться в проблеме с изображением. . .
В основном ProxyPass
Директивы могут обслуживать запросы к местоположению с контентом с другого сервера HTTP (или AJP).
Вот пример конфигурации с комментариями, которые могут помочь прояснить ситуацию:
# We'll call this your existing vhost:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /path/to/www/
# other existing config
# Let's say you want to serve http://example.com/glassfishapp from the 8080 listener:
<Location /glassfishapp>
ProxyPass http://127.0.0.1:8080
ProxyPassReverse http://127.0.0.1:8080
</Location>
</VirtualHost>
# Now, let's say there's a whole domain you want to serve from the 8181 listener:
<VirtualHost *:80>
ServerName glass.example.com
# any logging config, etc, that you need
ProxyPass / http://127.0.0.1:8181/
ProxyPassReverse / http://127.0.0.1:8181/
</VirtualHost>