WebPagetest Forums
Keep-Alive showing as not enabled but as far as i know it is - Printable Version

+- WebPagetest Forums (http://www.webpagetest.org/forums)
+-- Forum: Web Performance (/forumdisplay.php?fid=3)
+--- Forum: Discuss Test Results (/forumdisplay.php?fid=4)
+--- Thread: Keep-Alive showing as not enabled but as far as i know it is (/showthread.php?tid=317)

Pages: 1 2


Keep-Alive showing as not enabled but as far as i know it is - shaun.longhurst - 07-27-2010 06:47 PM

http://www.webpagetest.org/result/100727_1XAK/

The above test shows as keep alive not enabled. But as far as I am aware it is. Here is my header out put from firebug

Keep-Alive timeout=4, max=100
Connection Keep-Alive

I have looked through regarding the IE specific settings for turning off keep alive but this is only set within the ssl vhosts and not in any of the main apache config files.

Is there something else I am missing to get keep alives to show as enabled?

Cheers


RE: Keep-Alive showing as not enabled but as far as i know it is - pmeenan - 07-27-2010 09:30 PM

(07-27-2010 06:47 PM)shaun.longhurst Wrote:  http://www.webpagetest.org/result/100727_1XAK/

The above test shows as keep alive not enabled. But as far as I am aware it is. Here is my header out put from firebug

Keep-Alive timeout=4, max=100
Connection Keep-Alive

I have looked through regarding the IE specific settings for turning off keep alive but this is only set within the ssl vhosts and not in any of the main apache config files.

Is there something else I am missing to get keep alives to show as enabled?

Cheers

Nothing in a rogue .htaccess file?

Here are the headers from the test: http://www.webpagetest.org/result/100727_1XAK/1/details/#request1

Connection: close

If you're getting proper keep-alives in Firefox then there has to be a BrowserMatch setting somewhere in the configs that is breaking stuff. What does the BrowserMatch in the ssl vhost look like? It might be worth narrowing it if it covers ALL IE browsers and only have it apply for IE5 and below to see if that rule is getting hit for some reason (or just remove it temporarily to test).


RE: Keep-Alive showing as not enabled but as far as i know it is - shaun.longhurst - 07-28-2010 11:47 PM

Hi

Thanks for getting back to me I read through some of the other forum posts regarding this ie issue and amended the ssl vhost to be the following

BrowserMatch ".*MSIE [1-5].*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch ".*MSIE [6-9].*" \
ssl-unclean-shutdown

I have fgrep'd through the apache config files for nokeepalive and found that it had been configured here

./conf.d/compress.conf: SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0

I have amended this now and will retest.

thanks
Hi

just retested and now get an A for Keep Alives.

cheers

Shaun


RE: Keep-Alive showing as not enabled but as far as i know it is - gfm - 12-06-2011 05:07 PM

I have an Red Hat Apache server that seems to be stuck with Keep-Alive off...even though I've gone through this forum and made several changes that solved most similar issues. Here is the site on the server I am using to test:
http://www.celiac.com

I've made the following changes--note that I didn't see anything in this site's .htaccess or celiac.conf files:

I found lines in ssl.conf like this:
#SetEnvIf User-Agent ".*MSIE.*" \
# nokeepalive ssl-unclean-shutdown \
# downgrade-1.0 force-response-1.0
#

and changed them to this:

SetEnvIf User-Agent ".*MSIE [1-5].*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
SetEnvIf User-Agent ".*MSIE [6-99].*" \
ssl-unclean-shutdown


In httpd.conf I commented out a line like this:
#BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0

and added these:
BrowserMatch ".*MSIE [1-5].*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
BrowserMatch ".*MSIE [6-99].*" ssl-unclean-shutdown


I did NOT try this route, as I thought the above should work:
http://www.alexmeyer.com/linux/apachekeepalive.html

Any help you could offer would be greatly appreciated, and I thank you in advance to your help.


RE: Keep-Alive showing as not enabled but as far as i know it is - pmeenan - 12-07-2011 02:26 AM

If you comment it all out does that fix things? A little trial and error should get you to the specific config that is causing the issues.

Do you use https anywhere on your site? If not, just leave all of them commented out.


RE: Keep-Alive showing as not enabled but as far as i know it is - gfm - 12-07-2011 02:39 AM

Yes, I do use https so need that to continue working...and I've not commented them out yet. I'll give that a try and report back. Would commenting these out for a few minutes be something that you would do during the day on a busy site with an https shopping cart? Sorry, but I just don't really know what the negative impact could be on an end user...
PS - would you happen to know the exact 'grep' commands needed to track down other hidden sources of BrowserMatch or SetEnvIf User-Agent in my system...or do you think I've already mentioned the most probable places to look?


RE: Keep-Alive showing as not enabled but as far as i know it is - pmeenan - 12-07-2011 03:06 AM

Yeah, I wouldn't do it live during the day (actually, I probably wouldn't make ANY changes that required reloading the configs but I'm paranoid).

Did you try grepping for force-response and downgrade?

Is there a load balancer or reverse proxy in front of the Apache that could be getting in the way?

And just a sanity check, do you have "KeepAlive On" and "KeepAliveTimeout X" (where X is some number of seconds) somewhere in your config?


RE: Keep-Alive showing as not enabled but as far as i know it is - gfm - 12-07-2011 03:12 AM

For my own sanity, as I am really a server amateur (even though I've been managing this on my own for about 7 years), can I assume a restart of apache is all that is needed to make these config changes go live?

I don't know the exact grep commands for force-response and downgrade...would you be able to post them here for me (sorry!)?

Load balancer or reverse proxy...I am not sure about this. What would be the best way to determine this?

As for the config setting they are:
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15


RE: Keep-Alive showing as not enabled but as far as i know it is - pmeenan - 12-07-2011 03:25 AM

Try this:

Code:
grep -Rn 'force-response\|downgrade' *

Just be careful not to do it in a huge directory tree because it will recursively scan all sub-directories too (/etc/apache2/ would be a good place to do it if that is where your apache configs are).

An apache restart will take care of it but if you mess up the config apache won't start so your server will be down until you fix whatever is wrong in the configs.

As far as load balancer goes, usually if you're not sure then there isn't one in place. Did you initially configure the server or did someone else do it? If it is a single server (or VPS), apache is listening on port 80 for your website and the server IP is the same as the IP address for your site then it's pretty safe to say there isn't one.

Looking at the response headers, it looks like IE is being degraded to 1.0: http://www.webpagetest.org/result/111206_6F_2DRQ5/1/details/#request2 but Chrome is not: http://www.webpagetest.org/result/111206_Y8_2DRRC/1/details/#request2 so I think you're on the right track with the browser match rules, you just need to find the one that is actually being used.


RE: Keep-Alive showing as not enabled but as far as i know it is - gfm - 12-07-2011 04:23 AM

As for my server, I did not configure it, it was a package offered by OLM. It is my understanding that it is a standalone server that I control, but is set up with it's own separate IP, and all sites on it can be set up to be either name based or IP based through the Ensim Pro control panel. The site in question is an IP-based site that listens on port 80, but again, the server itself has its own IP.

Below are the results from the grep (I also included those that are commented out):
conf/httpd.conf:889:#BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
conf/httpd.conf:890:BrowserMatch "RealPlayer 4\.0" force-response-1.0
conf/httpd.conf:891:BrowserMatch "Java/1\.0" force-response-1.0
conf/httpd.conf:892:BrowserMatch "JDK/1\.0" force-response-1.0
conf/httpd.conf:893:BrowserMatch ".*MSIE [1-5].*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
conf/httpd.conf.bak:889:BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
conf/httpd.conf.bak:890:BrowserMatch "RealPlayer 4\.0" force-response-1.0
conf/httpd.conf.bak:891:BrowserMatch "Java/1\.0" force-response-1.0
conf/httpd.conf.bak:892:BrowserMatch "JDK/1\.0" force-response-1.0
conf.d/ssl.conf:216:# their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and
conf.d/ssl.conf:217:# "force-response-1.0" for this.
conf.d/ssl.conf:220:# downgrade-1.0 force-response-1.0
conf.d/ssl.conf:224: downgrade-1.0 force-response-1.0
grep: logs/fpcgisock: No such device or address
Binary file modules/libphp5.so matches
grep: warning: modules/modules: recursive directory loop
grep: run/saslauthd/mux: No such device or address
grep: run/acpid.socket: No such device or address
grep: warning: run/run: recursive directory loop
grep: run/proftpd/proftpd.sock: No such device or address
grep: run/dbus/system_bus_socket: No such device or address
grep: run/cups/cups.sock: No such device or address