Назад | Перейти на главную страницу

Как перенаправить Apache на разные порты на сервере GlassFish?

У меня есть экземпляр GlassFish, на котором запущены разные службы на разных портах. Веб-сервер Apache находится перед GlassFish, и я хочу настроить виртуальные хосты на Apache для перенаправления на определенные порты на сервере GlassFish.

Я добавил Tomcat AJP в качестве jvm-опции для прослушивания порта 8009 и поместил необходимые .jars в папку lib /.

Как настроить GlassFish для перенаправления с порта 8009 на заданный порт (службу) в том же экземпляре?

Вместо использования ajp я бы рекомендовал использовать mod_proxy. Я сам сделал это с большим успехом. Как я настроил свои вещи, я просто настраиваю виртуальный домен так, чтобы он указывал на каталог, и создавал файл .htaccess как таковой:

ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

Конечно, измените, чтобы соответствовать вашим HTTP-портам. В tomcat (который я использую) я также редактирую server.xml в разделе conf. Для коннектора на порту 8080 я установил proxyName в соответствии с виртуальным хостом, а proxyPort - на 80.

Я должен добавить примечание, что я использую динамические виртуальные хосты для своей конфигурации, конфигурация моих сайтов (я использую debian) в / etc / apache2 / sites-available выглядит так:

<VirtualHost IP>
Servername yourdomain.com
ServerAlias *.yourdomain.com

UseCanonicalName Off

LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon

CustomLog /var/www/yourdomain.com/logs/custom.log vcommon
ErrorLog /var/www/yourdomain.com/logs/error.log
TransferLog /var/www/yourdomain.com/logs/access.log

RewriteLog/var/www/yourdomain.com/logs/rewrite.log
RewriteLogLevel 2

VirtualDocumentRoot /var/www/yourdomain.com/sites/%1/html
VirtualScriptAlias /var/www/yourdomain.com/sites/%1/cgi-bin

LogLevel debug

<Directory /var/www/yourdomain.com/sites/>
  AllowOverride All
</Directory>

</VirtualHost>

Это означает, что stackoverflow.yourdomain.com перейдет в /var/www/yourdomain.com/sites/stackoverflow/html

Я знаю, что вы не просили последнюю часть, я просто предоставил ее, чтобы дать полный обзор моей настройки и того, как она вписывается в файл .htaccess с помощью ProxyPass и ProxyPassReverse

Я бы посоветовал вам использовать модуль Apache mod_loadbalancer, который был специально реализован для использования с сервером приложений Glassfish и способен реагировать на команды конфигурации сервера приложений Glassfish, инициированные из консоли администратора.

См. Пример - https://blogs.oracle.com/kshitiz/entry/load_balancer_plugin_in_glassfish

Вы можете использовать Apache для указания на несколько разных серверов разных типов.

# Drop me in a file called my_proxies.conf in conf.d
# Apache picks up everything in conf.d/*.conf

NameVirtualHost *:80

<VirtualHost *:80>

# This Apache serves up images and cgi-bin
ProxyPass /images !
ProxyPass /cgi-bin !                                        
#                            
# Got stuff on this server (Jetty, Glassfish, Tomcat, or Apache )
#
ProxyPass /foo http://localhost:8080/foo
ProxyPassReverse /foo http://localhost:8080/foo
Redirect /foo http://localhost:8080/foo
ErrorLog /tmp/foo_error_log
CustomLog /tmp/foo_access_log
#
# Root comes last
# Let's put our main app on its own special server
#
ProxyPass / http://localhost:9090/
ProxyPassReverse / http://localhost:9090/
ErrorLog /tmp/bar_error_log
CustomLog /tmp/bar_access_log
#
</VirtualHost>