Die Tomcat Server kann hinter einem Apache Reverse Proxy betrieben werden. Dies ist z.B. notwendig wenn die Nuclos Instanz über HTTPS zur Verfügung gestellt werden soll, der Port 443 aber schon von einer anderen Webanwendung oder Nuclos Instanz benutzt wird.
Tomcat konfigurieren
In der Tomcat Konfigration /opt/nuclos/tomcat/apache-tomcat-x.x-x/conf/server.xml diese Zeile
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
in folgende abändern.
<Connector port="8009" protocol="AJP/1.3" /> <Connector address="127.0.0.1" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
Um die Änderungen zu übernehmen muss Nuclos neugestartet werden.
/opt/nuclos/bin/shutdown.sh /opt/nuclos/bin/startup.sh
Apache konfigurieren für den Rich-Client (Java Web Start)
Danach muss eine neue Apache Vhost Konfiguration erstellt werden. Die Domain (nuclet.nuclos.de) muss entsprechend angepasst werden.
<VirtualHost *:80> ServerName nuclet.nuclos.de ServerAlias nuclet.nuclos.de Redirect 301 / https://nuclet.nuclos.de/ </VirtualHost> <VirtualHost *:443> ServerName nuclet.nuclos.de ServerAlias nuclet.nuclos.de ProxyRequests Off SSLEngine on SSLCertificateKeyFile /etc/apache2/ssl/nuclet.nuclos.de/nuclet.nuclos.de.key SSLCertificateFile /etc/apache2/ssl/nuclet.nuclos.de/nuclet.nuclos.de.crt SSLCertificateChainFile /etc/apache2/ssl/nuclet.nuclos.de/Intermediate_CA_Bundle.crt ErrorDocument 503 "/var/www/maintance.html" <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / ajp://localhost:8009/ ProxyPassReverse / ajp://localhost:8009/ <Location /> Order allow,deny Allow from all </Location> </VirtualHost>
Es muss zwingend das AJP Protokoll verwendet werden, da sonst der Pfad zum Zugriff auf die Nuclos Instanz nicht korrekt umgesetzt wird.
Abschließend muss das proxy_ajp Modul noch installiert und der Apache neugegestartet werden.
a2enmod proxy_ajp service apache2 restart
Apache konfigurieren für den Web-Client (Java-Webstart)
<VirtualHost *:80> ServerName www.example.org ServerAlias www.example.org Redirect 301 / https://www.example.org </VirtualHost> <VirtualHost *:443> ServerName www.example.org ServerAlias www.example.org ProxyRequests Off SSLEngine on SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem ErrorDocument 503 "/var/www/maintance.html" <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass /nuclos-instanzname ajp://localhost:8010/nuclos-instanzname ProxyPassReverse /nuclos-instanzname ajp://localhost:8010/nuclos-instanzname ProxyPass / ajp://localhost:8010/webclient/ ProxyPassReverse / ajp://localhost:8010/webclient/ <Location /> Order allow,deny Allow from all </Location> </VirtualHost>