Return-Path: Delivered-To: apmail-httpd-users-archive@www.apache.org Received: (qmail 77581 invoked from network); 27 Jul 2004 09:04:26 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 27 Jul 2004 09:04:26 -0000 Received: (qmail 65047 invoked by uid 500); 27 Jul 2004 09:04:07 -0000 Delivered-To: apmail-httpd-users-archive@httpd.apache.org Received: (qmail 65002 invoked by uid 500); 27 Jul 2004 09:04:07 -0000 Mailing-List: contact users-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: users@httpd.apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list users@httpd.apache.org Received: (qmail 64986 invoked by uid 99); 27 Jul 2004 09:04:06 -0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received: from [193.194.133.17] (HELO xenia3.mc2.renault.fr) (193.194.133.17) by apache.org (qpsmtpd/0.27.1) with ESMTP; Tue, 27 Jul 2004 02:04:04 -0700 Received: from univers4.mc2.renault.fr (univers4-in0.mc2.renault.fr [10.210.68.9]) by xenia3.mc2.renault.fr (8.12.11/8.12.11) with ESMTP id i6R93uOP014298 for ; Tue, 27 Jul 2004 11:03:56 +0200 (MEST) Received: from hepatite2.mc2.renault.fr (hepatite2.mc2.renault.fr [10.210.68.21]) by univers4.mc2.renault.fr (8.12.11/8.12.11) with SMTP id i6R93uNq025967 for ; Tue, 27 Jul 2004 11:03:56 +0200 (MEST) Received: from aosus019.mc2.renault.fr(172.25.86.18) by hepatite2.mc2.renault.fr via csmap id 5c889eac_dfac_11d8_8719_0002b3e6fe13_30096; Tue, 27 Jul 2004 11:07:18 +0200 (CEST) Received: from su333aos.mc2.renault.fr by aosus019 with ESMTP for users@httpd.apache.org; Tue, 27 Jul 2004 11:03:26 +0200 Received: from FR20003625 ([138.21.166.48]) by wsmtpin56.mc2.renault.fr (iPlanet Messaging Server 5.2 HotFix 1.25 (built Mar 3 2004)) with SMTP id <0I1I009BT6HQN5@wsmtpin56.mc2.renault.fr> for users@httpd.apache.org; Tue, 27 Jul 2004 11:03:26 +0200 (MEST) Date: Tue, 27 Jul 2004 11:03:26 +0200 From: MARTYR Jean-Bernard To: users@httpd.apache.org Message-Id: <000f01c473b8$93c20800$30a6158a@corp.noxiane.net> Organization: Renault MIME-version: 1.0 X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 X-Mailer: Microsoft Outlook Express 6.00.2800.1409 Content-type: text/plain; charset=iso-8859-1 Content-transfer-encoding: 7BIT X-Priority: 3 X-MSMail-priority: Normal X-Filter-Version: 2.04.Cvg-Notes-Spam.20040621 (xenia3) X-Virus-Checked: Checked Subject: [users@httpd] Performance concern with old Netscape browser. X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N Hello, I'm currently experiencing a problem for which I'm really hoping apache2 is the solution. Context : --------- End users access a web site hosted on IIS 5.0 on a win2K platform using a Netscape 4.06 or 4.78 browser. The web site is accessed in SSL v3 (client & server certificate) The normal way of accessing the site is through a transparent proxy (Nestcape Proxy 3.6) End users are on an private Extranet. Proxy on the nearest DMZ and web server on another DMZ behind the proxy IIS 5.1 is configured to use keep-alive Too many users to migrate to IE (almost 70000). Issue : ------ It appears that Netscape browser 4.x does not implement correctly the Proxy Keepalive standard so if a users want to access (as he should) the site via the proxy (through a connect method) he gets as much TCP sessions as the number of objects on the html page to download it. You can imagine the poor performance of the result since it's not only the "normal" TCP handshake, but also each time the SSL hanshake. Various performance results : ----------------------------- I've tried a couple of thing to measure and isolate the problem : my application home page consists of 44 objects * IE 6 vs NS through proxy : I'm counting the number of network packet exchanged and the number of TCP sessions. IE = 360 to 380 packets and 5 TCP sessions to retrieve the page NS = 930 to 1000 packets and 45 TCP sessions => So my understanding is clearly the lack of support for proxy keep-alive in Netscape * IE 6 vs NS direct access to the web server : both NS and IE 6 = 260 to 290 packets and 5 TCP sessions to retrieve the page => keep alive is ok in both cases. I was suspecting also a possible naggling problem with the win 2K platform so I've setup a win 2K3 server in the same condition cause naggling is basically disabled there but the results were the same. Expected solution : ------------------- Since the Netscape browser seems to implement correctly the simple HTTP 1.1 keep alive protocol my idea is to use apache as a reverse proxy facing the browser and acting as an http client to the IIS webserver. So no proxy would be needed to connect the NS browser to the apache web server (keepalive should then work) and basically apache is a correct http/1.1 client. Since the client certificate is also used to identify the UID of the users in the application I'm also implementing the requestheader function of the apache2 mod_header to pass it to the server. Why I need help : ------------------ Apache2 is compiled on solaris 2.6 with these options : --enable-cache --enable-mime-magic --enable-expires --enable-headers --enabl e-proxy --enable-proxy-connect --enable-proxy-http --enable-ssl --enable-sta tic-rotatelogs --enable-http --enable-rewrite --enable-so --enable-cgi My concern is that when using this configuration of apache and accessing it directly (no proxy) from NS I'm still having exactly the same performance as with a forwarding proxy. I've snooped also on the reverse-proxy server the network dialog between apache and IIS and it's the exact reflect of the NS to apache dialog. My understanding is really that a reverse proxy should dissociate the browser to reverse from the reverse to web server dialog and it really does not seem to be the case. Am I doing wrong assumptions there ? Is there a misconfiguration here ? I've already spent a lot of time on this issue and would be very happy if anybody could bring some help. Thanks to all in advance. Regards. JB. _______________________________________________________ _______________________________________________________ My apache reverse conf : [...] AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl .crl SSLPassPhraseDialog builtin SSLSessionCache shmht:/usr/local/apache2/logs/ssl_scache(512000) SSLSessionCacheTimeout 300 CacheIgnoreCacheControl On CacheIgnoreNoLastMod Off CacheMaxExpire 15 SSLMutex file:/usr/local/apache2/logs/ssl_mutex SSLRandomSeed startup builtin SSLRandomSeed connect builtin SSLEngine on SSLProxyEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL [...] SSLVerifyClient require SSLVerifyDepth 2 SSLOptions +ExportCertData +CompatEnvVars +StdEnvVars #SetEnvIf User-Agent ".*MSIE.*" \ # nokeepalive ssl-unclean-shutdown \ # downgrade-1.0 force-response-1.0 SetEnv proxy-keepalive On SetEnv keepalive On CustomLog /usr/local/apache2/logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x %{SSL_CLIENTS_DN}x \"%r\" %b" CustomLog /usr/local/apache2/logs/ssl_log common # Enable the URL rewriting engine RewriteEngine on RewriteLogLevel 1 LogLevel warn RewriteLog logs/rewrite_log.stats.renault.fr ErrorLog logs/error_log.stats.renault.fr # make sure the status page is handled locally # and make sure no one uses our proxy except ourself RewriteRule ^/apache-rproxy-status.* - [F] RewriteRule ^(http|ftp)://.* - [F] RewriteRule \.htr($|.*) / [F] RewriteRule \.idc($|.*) / [F] RewriteRule etc/passwd / [F] RewriteRule etc/shadow / [F] RewriteRule /\./ / [F] RewriteRule /\.\./ / [F] RewriteRule (administrators.pwd)|(authors.pwd)|(users.pwd)|(service.pwd) / [F] RewriteRule (root.exe?)|(cmd.exe?)|(default.ida?) / [F] RewriteRule msadcs.dll / [F] RequestHeader set CERT-SUBJECT %{SSL_CLIENT_S_DN}e RewriteRule ^/Locpro(.*)$ to://my.iis.server/Locpro$1 RewriteRule ^to://([^/]+)/Locpro(.*) http://$1/Locpro$2 [P] RewriteRule .* - [F] ProxyRequests Off _______________________________________________________ _______________________________________________________ -- Disclaimer ------------------------------------ Ce message ainsi que les eventuelles pieces jointes constituent une correspondance privee et confidentielle a l'attention exclusive du destinataire designe ci-dessus. Si vous n'etes pas le destinataire du present message ou une personne susceptible de pouvoir le lui delivrer, il vous est signifie que toute divulgation, distribution ou copie de cette transmission est strictement interdite. Si vous avez recu ce message par erreur, nous vous remercions d'en informer l'expediteur par telephone ou de lui retourner le present message, puis d'effacer immediatement ce message de votre systeme. *** This e-mail and any attachments is a confidential correspondence intended only for use of the individual or entity named above. If you are not the intended recipient or the agent responsible for delivering the message to the intended recipient, you are hereby notified that any disclosure, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify the sender by phone or by replying this message, and then delete this message from your system. --------------------------------------------------------------------- The official User-To-User support forum of the Apache HTTP Server Project. See for more info. To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org " from the digest: users-digest-unsubscribe@httpd.apache.org For additional commands, e-mail: users-help@httpd.apache.org