Home > Alfresco, Systemverwaltung > Alfresco ohne Port 8080

Alfresco ohne Port 8080

Alfresco ist eine J2E-Applikation die im Kontext eines Application-Servers wie JBoss oder Tomcat läuft. So ein Application-Server kann man sich als eigenen Webserver vorstellen. Das bedeutet, dass wir damit üblicherweise 2 Webserver auf unserem Server laufen haben :

  • den “normalen” Webserver, der unsere Webseiten bedient und den wir üblicherweise mit so etwas wie http://www.meinedomain.de aufrufen
  • ja und jetzt den Tomcat (JBoss) und Alfresco

http://www.meinedomain.de ist eigentlich vollständig http://www.meinedomain.de:80 Der Browser “hängt” implizit ein “:80″ and un der Webserver “lauscht” auf diesem Port. Da es an einem solchen Port nur einen “Lauscher” geben kann, “hören” Application-Server wie Tomcat/JBoss per default auf dem Alternativ-Port 8080.

Mit http://www.meinedomain.de rede ich also mit dem normalen Webserver
und mit http://www.meinedomain.de:8080 mit Tomcat/JBoss

Nun eigentlich ist das ja nicht wirklich ein Problem. Aber es wird zum Problem, wenn man aus streng abgeschotteten Firmen-Netzwerken zugreifen möchte. Dort ist recht oft dieser Port 8080 durch die Firewall des Firmennetzwerks blockiert. Man bekommt dann lapidar die Meldung, dass die Webseite nicht erreichbar ist. Naja und es ist auch manchmal einfach lästig dieses 8080 anzuhängen …

Aber es gibt dafür eine Lösung, die ich nachstehend (auch als Notizzettel für mich selbst) aufzeige :

Ausgangsituation

  • angemieteter Root-Server mit Plesk als Administrationsoberfläche
  • Betriebssystem openSuse 11.1
  • Webserver Apache2
  • Alfresco Community Edition 3.2r auf Basis Tomcat (Bundle in einem Ordner installiert)

So und nun hier einfach die Schritte, die man tun muss um das Janze zum Laufen zu bringen. Ist nicht weiter schwer, wenn man es weiß ;-)

1) Check der Vorraussetzungen

Prüfung ob das Apache-Tomcat-Connector-Modul installiert und geladen ist. Nennt sich mod_jk und ist von Haus aus meist installiert. Wenn nicht : mit Paketmanager (hier Yast) nachinstallieren
Irgendwo in der meist umfangreichen Apache-Konfiguration muss es dann eine solche Zeile geben :

LoadModule jk_module                      /usr/lib64/apache2/mod_jk.so

Bei unserem Server z.B. unter /etc/apache2/sysconfig.d in einer Datei namens loadmodule.conf.

2)  Anlegen einer Datei names workers.properties

Diese sollte am Besten in den Ordner /etc/apache2 gelegt werden. Inhalt dieser Datei:

worker.list=ajp13
worker.ajp13w.type=ajp13
worker.ajp13w.host=localhost
worker.ajp13w.port=8009
worker.ajp13.lbfactor=50
worker.ajp13.cachesize=10
worker.ajp13.cache_timeout=600
worker.ajp13.socket_keepalive=1
worker.ajp13.socket_timeout=300

Wirklich notwendig sind die erste 4 Zeilen. Die anderen Einstellungen dienen der Optimierung und habe ich aus dem Internet ;-)

Wir merken uns hier den Namen ajp13 hinter worker.list, den wir später benötigen. Könnte auch “guglhupf” heissen. Dieser Name ist frei wählbar.

3) In der zentralen Apache2-Konfiguration (httpd.conf bzw einer der anderen automatisch inkludierten conf-Files (z.B. unter Ordner conf.d) muss sich folgende Befehlsfolge finden bzw eingefügt werden :

<IfModule mod_jk.c>
JkWorkersFile /etc/apache2/workers.properties
JkLogFile /var/log/apache2/mod_jk.log
JkLogLevel info
</IfModule>

Bei uns finden sich diese Befehle in einem durch Plesk generierten File unter conf.d.

Wichtig : Dieser Befehl “JkWorkersFile” darf sich nur genau einmal in der gesamten Apache-Konfiguration finden. Sonst gibts bei Start des Webserver eine Fehlermeldung !

Die anderen Statements können auch wonders bzw mehrfach verwendet werden.

Damit haben wir die Datei workers.properties dem Apache bekannt gemacht. Ein Neustart des Webservers dürfte keine Probleme machen

4) Umkonfiguration von Tomcat, damit er etwas mit dem in worker.properties definierten Port 8009 anfangen kann (s.o.).

Wir gehen in den Ordner, wo Tomcat und seine Konfigurationsdateien sich befinden : …/tomcat/conf

Hier gibt es eine Datei namens server.xml. Die Datei kann mit einem Texteditor bearbeitet werden und enthält irgendwo folgende Zeilen:

<!– Define an AJP 1.3 Connector on port 8009 –>
<!–
<Connector port=”8009″ protocol=”AJP/1.3″ redirectPort=”8443″ />
–>

Wir müssen hier lediglich die Kommentarzeichen vor und hinter der Connectorzeile entfernen. Sieht dann letztlich so aus:

<!– Define an AJP 1.3 Connector on port 8009 –>
<Connector port=”8009″ protocol=”AJP/1.3″ redirectPort=”8443″ />

Thats all here. Tomcat/Alfresco kann danach problemlos neu gestartet werden. Sollte man auch ;-) ….

5) Anlegen eines Konfigurationsfiles für den Konnektor

Ich habe dieses File ebenfalls unter …/tomcat/conf angelegt und es heißt bei mir mod_jk.conf. Could be somewhere else ;-)

So sieht es bei mir aus:

JkLogFile /srv/www/vhosts/mydomain/meinedomain/alfresco/httpdocs/tomcat/logs/mod_jk.log
JkLogLevel info
JkLogStampFormat “[%a %b %d %H:%M:%S %Y]”
JkRequestLogFormat “%w %V %T”
JkMount /alfresco ajp13
JkMount /alfresco/* ajp13
JkMount /share ajp13
JkMount /share/* ajp13

Wichtig hier wieder das ajp13 bei den JkMount-Befehlen. Dies muss mit dem Namen in workers.properties (Punkt 2) übereinstimmen !

Die JkMount-Befehle bedeuten dann nur, dass man über http://www.meinedomain.de/alfresco bzw http://www.meinedomain.de/share mittels des Konnektors und dem “Worker” namens “ajp13″ in Tomcat bzw Alfresco landet. Macht man die restlichen Schritte noch, kann man danach alternativ zugreifen mit

http://www.meinedomain.de:8080/alfresco oder eben mit http://www.meinedomain.de/alfresco ohne Port 8080

Mit den übrigen Zeilen definiere ich nur meine Log-File-Einstellungen für den den Konnektor.

6) Und jetzt der eigentliche Schritt: Wir stellen die Verbindung her

Dies geschieht erneut in der Apache-Konfiguration. Da es so viele Konfigurationsmöglichkeiten wie Sandkörner gibt ;-) , hier die richtige Stelle im Kontext bzw wie ich es für unsere spezielle Konfiguration gemacht habe.

Letztlich ist nur das Konfigurationsfile des Konnektors von (4) an der richtigen Stelle zu inkludieren. Dies passiert in der vhost-Konfiguration. Also irgendwo zwischen

<VirtualHost xx.xx.xx.xx:80>
.
.
.
</VirtualHost>

Dort ist der Include-Befehl einzufügen. Bei mir sieht er ungefähr so aus:

include /srv/www/vhosts/meinedomain/subdomains/alfresco/httpdocs/tomcat/conf/mod_jk.conf

Ja das war es soweit in aller Ausührlichkeit.

Nach einem Neustart des Webservers (/etc/init.d/apache2 restart), der keine Fehler meldet ;-) , sollte jetzt alles klappen …

Ab jetzt sollte Alfresco sowohl über

http://www.meinedomain.de:8080/alfresco

wie auch

http://www.meinedomain.de/alfresco ohne Port 8080

erreichbar sein.

Für Share gilt das natürlich analog ;-) :

http://www.meinedomain.de:8080/share oder eben mit http://www.meinedomain.de/share ohne Port 8080

admin Alfresco, Systemverwaltung , , ,

  1. Sebastian Danninger
    19. Juni 2010, 00:26 | #1

    Schade das du nicht gefragt hast, hab das ganze vor Ewigkeiten mal dokumentiert, stelle aber keine Abweichungen fest:

    http://forums.alfresco.com/en/viewtopic.php?f=9&t=20310

  2. 19. Juni 2010, 01:01 | #2

    Hallo Sebastian,

    sehr gut. Freut mich jedenfalls, dass es stimmt :-) . Thanx !

    Nun hab ich’s auch im Kopf :-) . Beim nächsten Problem frage ich Dich. Da kannst Du Dich drauf verlassen :-) .

    Viele Grüße

    Toni

  1. Bisher keine Trackbacks