Apache Tomcat, nginx und Apple Safari

Für mein neues Projekt WebDrive auf Java-Basis musste natürlich Servlet-Container her. Dieser wurde auf meinem Root-Server in einem eigenen virtuellen Server installiert. Normalerweise läuft der Tomcat auf Port 8080, so auch hier. Der nginx lauscht auf IPv4 (allerdings nur eine interne IP) und  IPv6 (global erreichbar). Auf der zweiten Maschine läuft ein klassischer Apache, der auf IPv4 lauscht (global erreichbar) und dort unter anderem dieses Blog hostet. WebDrive soll nun auch über IPv4 erreichbar sein, also spielt der Apache Proxy für den nginx.

Setup für Webdrive

Das Problem in diesem Setup fiel auf, als Safari auf OS X Probleme mit dem JavaScript in der Seite bekam. Es stellte sich heraus, das es sich hierbei um Probleme mit dem Content-Length Header handelte. Interessanterweise trat das Problem nachvollziehbar nur mit Safari auf. Den Hinweis auf Probleme bei nginx lieferte Jim Neath in seinem Blog.

Unter Debian 6 (Squeeze) wird nur nginx in Version 0.7.67-3+squeeze2 angeboten. Auf nginx.org wird beschrieben, wie man eine spezielle Quelle für Apt einträgt. Mit der dort vorhandenen Version 1.2.4 von nginx hat sich das Problem dann in Luft aufgelöst.

Zeitzonenprobleme mit Tomcat 6 auf Debian 6

Beim Einrichten einer Webapplikation auf einem Tomcat 6 auf einem Debian 6 Host fiel mir auf, dass die Zeitstempel in den Tomcat Log-Dateien „falsch“ waren. Falsch meint hier, dass sie nicht mit der Rechneruhrzeit übereinstimmten. Dies deutete auf ein Zeitzonenproblem hin.

Kurzes googeln ergab, man muss in der Datei /etc/default/tomcat6 der Variablen JAVA_OPTS die Angabe der lokalen Zeitzone hinzufügen. In meinem Fall war dies -Duser.timezone=Europe/Berlin. Nach anschließendem Neustart des Tomcat waren die Zeitstempel in den Log-Dateien „richtig“.

Eine Erklärung liefert Debian Bug #645221.