Apache Reverse Proxy bei SSL total langsam

Apache, Lighttpd, nginx, Cherokee
pzystorm
Posts: 8
Joined: 2007-05-27 13:52

Apache Reverse Proxy bei SSL total langsam

Post by pzystorm » 2007-05-27 14:50

Hallo,

folgendes Problem - kurz und bündig:

Total langsam:
https://www3.uni-hildesheim.de/php1z02/index.php
Das Laden der Bilder dauert eeeeewig.

Wieder recht schnell:
http://www3.uni-hildesheim.de/php1z02/index.php

Und ich frage mich, wieso - und wollte hier um Ratschläge bitten.


www3 ist unser Reverse Proxy, der für die obere URL (SSL) folgende Rule hat:

Code: Select all

RewriteRule     ^/php1z02/(.*) 
                https://web1z02.uni-hildesheim.de/php1z02/$1 
                [P]
und für die untere URL (kein SSL) folgende Rule hat:

Code: Select all

RewriteRule     ^/php1z02/(.*) 
                http://web1z02.uni-hildesheim.de/php1z02/$1 
                [P]
Also auf Deutsch:
Rufe ich den Reverse Proxy per SSL auf, wird es intern auch via SSL weitergeleitet. Nutze ich kein SSL zum Proxy, gehts intern auch ohne SSL weiter.

Warum dauert es sooo tierisch lange, bis phpmyadmin die Bilder lädt?

Ok, klar, der Rervese Proxy muss für jedes Bild wieder eine neue SSL-Verbindung aufbauen... und dadurch kommt so eine krasse Zeitverzögerung ins Spiel?

Der Knaller: Verändere ich bei der oberen RewriteRule (die für die SSL-Verbindungen) das "https" in ein "http", gehts wieder super schnell.
Verursacher ist also wirklich nicht die Verbindung von außen (dem User) zum Proxy, sondern vom Proxy zu seinen Content Servern (hier: web1z02.uni-hildesheim.de)


An CPU-Power soll es an dieser Stelle nicht mangeln:
www3 ist eine Sun-Fire V440 mit 16GB Ram und 4 Cores
web1z02 ist eine Sun-Fire T2000 auch mit 16Gb Ram, aber 8 Cores.




Zweite Sache:
Hat jemand Erfahrung mit Crypto Accelerator Boards?

z.B.
http://www.sun.com/products/networking/ ... /index.xml
kostet zwar gut 1000 Euro, aber hat dafür auch Support für den Apache und soll angeblich SSL-Verbindungen beschleunigen.

So eine Karte müsste doch in den Reverse Proxy rein - nicht in die Content Server, oder?

Würde dadurch das oben geschilderter Problem verschwinden?



Viele Grüße,

pzystorm



PS: Macht euch keine Mühe, den phpmyadmin Zugang auszunutzen. Das Zeugs liegt alles in einer eigenen, total leeren Zone - außer eben dem Test-Apache und -MySQL :)

pzystorm
Posts: 8
Joined: 2007-05-27 13:52

Re: Apache Reverse Proxy bei SSL total langsam

Post by pzystorm » 2007-05-30 13:34

Zum ersten Problem habe ich ein paar Zahlen, gestetet mit dem Internet Explorer 7 und dem aktuellen Firefox 2.0.0.3:


IE7
---
extern HTTP , intern HTTP : 4 Sekunden
extern HTTPS, intern HTTP : 4 Sekunden
extern HTTPS, intern HTTPS : 22 Sekunden

FF2
---
extern HTTP , intern HTTP : 4 Sekunden
extern HTTPS, intern HTTP : 4 Sekunden
extern HTTPS, intern HTTPS : 56 Sekunden


"Extern" meint hier: Von mir zum Apache Reverse Proxy
"Intern" vom Proxy zu seinem Server, von dem er die HTML Seiten bekommt.


Mit 22 Sekunden würde ich mich ja zufrieden geben... aber doch nicht eine Minute...

Kann das irgendwer bestätigen, dass der FF bei der URL https://www3.uni-hildesheim.de/php1z02/index.php ne Minute braucht, bis das letzte Bild geladen ist?

Natürlich nur, wenn der Cache sauber ist und noch keine phpMyAdmin Bilder enthält.

dtdesign
Posts: 391
Joined: 2006-09-05 21:12
Location: Berlin

Re: Apache Reverse Proxy bei SSL total langsam

Post by dtdesign » 2007-05-30 16:21

pzYsTorM wrote:Kann das irgendwer bestätigen, dass der FF bei der URL https://www3.uni-hildesheim.de/php1z02/index.php ne Minute braucht, bis das letzte Bild geladen ist?

Natürlich nur, wenn der Cache sauber ist und noch keine phpMyAdmin Bilder enthält.
Confirmed.

Getestet mit IE 5.5/6.0/7.0, Firefox 1.0/1.5/2.0, Opera 6.0/7.0/8.5/9.1

(Ja ich weiss, ich übertreibe es gerne mit Browsern, aber so ist man sicher :P)

Gruß
dtdesign

pzystorm
Posts: 8
Joined: 2007-05-27 13:52

Re: Apache Reverse Proxy bei SSL total langsam

Post by pzystorm » 2007-06-01 19:37

hehe :)
Danke für die Mühe auf jeden Fall!


Ich habe noch ein wenig weiter gespielt und eine Reduzierung der Ladezeit von 60 Sekunden auf 25 Sekunden erzielt, in dem ich intern (zwischen Proxy und Content Server) eine schwache Veschlüsselung verwende:

Auf dem Content Server in die ssl.conf:

Code: Select all

SSLCipherSuite "EXP-RC4-MD5"
SSLProtocol SSLv2

Außerdem habe ich getestet, ob es einen Unterschied zwischen ProxyPass und RewriteRule gibt. Mit dem Ergebnis: Nein. Beides gleich schnell:

ProxyPass:
https://www3.uni-hildesheim.de/php1z02r/

RewriteRule:
https://www3.uni-hildesheim.de/php1z02/


Dann habe ich noch einen dritten Test gemacht. Wie in dem oberen Post beschrieben: Sobald wir intern die SSL Verschlüsselung weglassen, sind alle Probleme weg. Wir sind bei einer Ladezeit von 4 Sekunden:
https://www3.uni-hildesheim.de/php1z02o/


Dann habe ich noch einen vierten Test gemacht und mit der ProxyPass Zeile rumgespielt:
ProxyPass /php1z02r/ https://web1z02.rz.uni-hildesheim.de/php1z02r/

Mal habe ich
min=10 max=10 smax=10 keepalive=on flushpackets=on status=+H
angehängt.

Mal habe ich nur
min=20
angehängt.

Bringt alles nix.


25 Sekunden sind auch noch recht lang. Aber naja. Kommt Zeit, kommt Rat. Vielleicht hat ja jemand noch ne Idee.

pzystorm
Posts: 8
Joined: 2007-05-27 13:52

Re: Apache Reverse Proxy bei SSL total langsam

Post by pzystorm » 2007-06-14 20:55

Naja, sollte es von Interesse sein:

Ich bin nun bei 3 Sekunden fürs Laden... bei der Benutzung von SSL von mir zum Proxy UND vom Proxy zum Webserver.

Lösung war in dem Fall die Benutzung der 8 arithmetischen Units (MAU) in den 8 CPU-Cores in der Sun Fire T2000. Um die zu benutzen, gibts mehrere Lösungen. Die einfachste ist ein "Kernel SSL Proxy" (ksslcfg). Der Apache wird ohne SSL kompiliert und lauscht auf Port 1234. Und der Kernel baut dann ein SSL-Gate davor: Er fängt den System-Call für das Listening auf Port 1234 ab und macht einen ordentlichen Port 443 auf. Port 1234 ist von außen nicht erreichbar. Nur noch 443 via SSL.

Tjo. Und so wurden aus den 60 Sekunden Ladezeit via mod_proxy nun 3! :)
Überzeugt euch selbst:
https://www3.uni-hildesheim.de/php1z02/

Der Proxy www3 benutzt noch OpenSSL, da dies keine T2000 ist. Bin gespannt, wie man das noch beschleunigen kann, wenn www3 auch eine T2000 wird und den Kernel SSL Proxy nutzt.

dtdesign
Posts: 391
Joined: 2006-09-05 21:12
Location: Berlin

Re: Apache Reverse Proxy bei SSL total langsam

Post by dtdesign » 2007-06-14 21:21

Kleiner Hinweis: Die Seite ist via SSL immernoch so lahm, als ob ich statt DSL6000 mit einem 56k Modem unterwegs wäre... mehrfach mit unterschiedlichen Rechnern sowohl von zu Hause als auch aus Langeweile via VPN aus der Schule ausprobiert (wobei ich die Verzögerung von VPN einberechnet habe, im Vergleich zwischen SSL und ohne).

Gruß
dtdesign

pzystorm
Posts: 8
Joined: 2007-05-27 13:52

Re: Apache Reverse Proxy bei SSL total langsam

Post by pzystorm » 2007-06-14 22:14

Huch?
Das kann ich ausnahmsweise nicht nachvollziehen. Ich hab in meinem Firefox das Fasterfox Plugin. Das zeigt ja die Ladezeit in Sekunden an.
Wenn ich Cache und Cookies lösche, und danach die Seite lade, steht er bei 3 bis 5 Sekunden.

Auch der IE lädt in etwa so schnell.

Ein Kumpel, der DSL 3000 hat, sagte auch, dass die Seite bei ihm in 5-6 Sekunden lädt.


Grüße,
pzystorm

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Apache Reverse Proxy bei SSL total langsam

Post by Joe User » 2007-06-14 22:28

DSL768 = 8-10 Sekunden