Comment redirect Apache vers différents ports sur un server GlassFish?

J'ai une instance GlassFish utilisant différents services sur différents ports. Un server web Apache se trouve devant GlassFish et je souhaite configurer des hôtes virtuels sur Apache pour redirect vers certains ports du server GlassFish.

J'ai ajouté le Tomcat AJP comme une option jvm pour écouter sur le port 8009 et j'ai placé les .jars nécessaires sous lib /.

Comment puis-je configurer GlassFish pour redirect du port 8009 vers un port (service) donné sur la même instance?

Au lieu d'utiliser ajp, je reorderais l'utilisation de mod_proxy. Je l'ai fait moi-même avec beaucoup de succès. Comme je l'ai configuré, je configure simplement un domaine virtuel pour pointer vers un directory et crée un file .htaccess en tant que tel:

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

Évidemment, modifiez vos ports HTTP. Dans Tomcat (que j'utilise), je modifie aussi dans server.xml sous conf. Pour le connecteur sur le port 8080, je configure le proxyName pour faire correspondre l'hôte virtuel et le proxyPort à 80.

Je devrais append une note que j'utilise des servers virtuels dynamics pour ma configuration, la configuration de mes sites (j'utilise debian) sous / etc / apache2 / sites-regards disponibles en tant que tels:

 <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> 

Cela signifie que stackoverflow.ingourain.com va à /var/www/yourdomain.com/sites/stackoverflow/html

Je sais que vous n'avez pas demandé la dernière partie, je l'ai fourni pour donner un aperçu complet de mon installation, et comment cela s'inscrit dans le file .htaccess avec ProxyPass et ProxyPassReverse

Vous pouvez utiliser Apache pour pointer vers plusieurs servers différents de différents types.

 # Déposez-moi dans un file appelé my_proxies.conf dans conf.d
 # Apache reprend tout dans conf.d / *. Conf

 NameVirtualHost *: 80

 <VirtualHost *: 80>

 # Ce Apache sert des images et cgi-bin
 ProxyPass / images!
 ProxyPass / cgi-bin!                                        
 #                            
 # J'ai des trucs sur ce server (Jetty, Glassfish, Tomcat ou 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 vient en dernier
 # Mettons notre application principale sur son propre server spécial
 #
 ProxyPass / http: // localhost: 9090 /
 ProxyPassReverse / http: // localhost: 9090 /
 ErrorLog / tmp / bar_error_log
 CustomLog / tmp / bar_access_log
 #
 </ VirtualHost>

Je vous suggère d'utiliser un module Apache mod_loadbalancer, spécialement mis en œuvre pour l'utilisation avec le server d'application Glassfish et capable de réagir aux commands de configuration du server d'application Glassfish lancées à partir de la console d'administration.

Voir l'exemple – https://blogs.oracle.com/kshitiz/entry/load_balancer_plugin_in_glassfish