[Mongrel] Ajax and IE causing Page Not Found and 500 Errors behind SSL

Curtis Spencer thorin at gmail.com
Wed Jun 7 19:56:29 EDT 2006


Hi,

Forgive this if it is a duplicate, because I was having trouble  
posting to the list.

I have a setup of mongrel behind an apache proxy and I am getting a  
few people using IE (5.5 & 6.0) complaining about getting sporadic  
page not found errors when using AJAX features of the site and file  
uploads behind SSL.  I am posting the research I have done on the  
subject.

I have the following in my Apache conf

<IfModule setenvif_module>
BrowserMatch ".*MSIE.*" \
          nokeepalive ssl-unclean-shutdown \
          downgrade-1.0 force-response-1.0
</IfModule>

in an effort to make SSL work better with IE, but I am still getting  
the problem.

I am not sure if this is working as I have tried the following:
curl -D header -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;  
SV1; .NET CLR 1.1.4322)" https://www.server
.com

and I get the following result in the headers:
HTTP/1.1 200 OK
Date: Wed, 07 Jun 2006 23:35:41 GMT
Server: Mongrel 0.3.12.4
Content-Length: 7363
Status: 200 OK
Cache-Control: no-cache
Content-Type: text/html
Set-Cookie: _session_id=4a000ec09f7b9fd417400ec3d9235492; path=/
Vary: Accept-Encoding
X-Pad: avoid browser bug

Should I see
HTTP/1.0 200 OK
instead?

Even when I request something that is cached I get the following:
HTTP/1.1 200 OK
Date: Wed, 07 Jun 2006 23:39:56 GMT
Server: Apache
Last-Modified: Wed, 07 Jun 2006 23:39:12 GMT
ETag: "2b1f-709d-dfe82800"
Accept-Ranges: bytes
Content-Length: 28829
Vary: Accept-Encoding
Content-Type: text/html

so it appears that HTTP/1.1 is still in effect, which may be  
problematic.

The site worked fine with lighttpd and fastcgi, and I used the  
following in my lighttpd.conf to get around it:

$HTTP["useragent"] =~ "^(.*MSIE.*)|(.*AppleWebKit.*)$" {
      server.max-keep-alive-requests = 0
}

Does someone know an Apache snippet to disable keepalives for IE when  
it is behind SSL, so hopefully I can make this go away?  I thought  
the above BrowserMatch snippet would work, but I am having mixed  
results with it.

These Apache environment variables may hold the key, but at this  
point I am just guessing:
force-proxy-request-1.0, proxy-nokeepalive, proxy-sendchunked, proxy- 
sendcl

Thanks,
Curtis



More information about the Mongrel-users mailing list