У меня есть два общедоступных сайта (foo.com и bar.com), которые указывают на аппаратный балансировщик нагрузки. Это оборудование перенаправляет трафик на мой сервер следующим образом:
http://foo.com ==> порт 7700
https://foo.com ==> порт 7701
http://bar.com ==> порт 7800
https://bar.com ==> порт 7801
Мой сервер в настоящее время является старой коробкой iPlanet, которая определяет два виртуальных сервера (foo.com для 7700, 7701 и bar.com для 7800, 7801). Поскольку балансировщик нагрузки перенаправляется непосредственно на эти порты, все работает нормально.
Теперь мне нужно перенести этот веб-сайт в конфигурацию Apache 2.2 + JBoss 6.0, и в настоящее время я не знаю, как лучше всего это сделать.
Я уже настроил Apache для прослушивания на моих четырех портах (7700,7701,7800, 7801) и настроил SSL для 7701,7801. Я предполагаю, что предпочтительно, чтобы Apache обрабатывал рукопожатия SSL и соединения. Я настроил 4 записи виртуального хоста в Apache следующим образом:
<VirtualHost *:7700>
DocumentRoot "/htdocs/foo.com"
ServerName foo.com
</VirtualHost>
<VirtualHost *:7701>
DocumentRoot "/htdocs/foo.com"
ServerName foo.com
SSLEngine on
SSLCipherSuite ALL:...
SSLCertificateFile "/cert/foo.com.crt"
SSLCertificateKeyFile "/cert/foo.com.key"
</VirtualHost>
<VirtualHost *:7800>
DocumentRoot "/htdocs/bar.com"
ServerName bar.com
</VirtualHost>
<VirtualHost *:7801>
DocumentRoot "/htdocs/bar.com"
ServerName bar.com
SSLEngine on
SSLCipherSuite ALL:...
SSLCertificateFile "/cert/bar.com.crt"
SSLCertificateKeyFile "/cert/bar.com.key"
</VirtualHost>
Я проверил это со статическим контентом, и соединения HTTP и HTTPS работают правильно.
Для моей конфигурации JBoss мои приложения развернуты как / foo и / bar, хотя я не знаю, должна ли это быть окончательная конфигурация. Что я хочу сделать, это:
Пересылать весь трафик с 7700/7701 до http://localhost:8080/foo, и с 7800/7801 до http://localhost:8080/bar. Я не хочу видеть / foo и / bar в общедоступный URL, однако, пользователь должен просто увидеть http://www.foo.com и http://www.bar.com.
Есть ли способ настроить mod_jk для пересылки запросов на определенный URL? Или я должен искать способы размещения JBoss хоста foo.com на порте A и bar.com на порте B - и просто направить mod_jk на каждый порт отдельно?