Bug #579
closedOpera and lighttpd + fcgi over SSL is broken
Description
This bug is already discussed here :
http://forum.lighttpd.net/topic/435
Short description :
Opera reloads page (or element of page) twice with delay (~4-6s), or even hangs in middle of loading page. It only happens only :
a) No proxy in the way client <--> webserver;
b) Page is served over SSL
c) Page (or element of page) is dynamic, handled over fcgi (happens at least with php). Do not matter, how big or complicated page.
It happens in, at least 1.4.8-1.4.11 versions of lighty, seems working in 1.3.16 (will report details later).
From discussion on IRC :
<ABLomas> any ideas WHY this is a problem ONLY_ with opera, ONLY_ when isn't used proxy, ONLY_ over SSL, and ONLY_ with requests, handled over FCGI ?
<weigon> FCGI is using chunked-encoding to send out content
<weigon> that allows to use keep-alive even if you don't no the size of the whole content
<weigon> it looks like this is borken with SSL + opera
<weigon> disabled http11 is disabling chunked encoding too
<ABLomas> and this may explain why it is working with proxy - proxy waits for full request to finish.... even over ssl (only CONNECT allowed, so no content analysis is done)
<ABLomas> and returns all content "in one go"
<weigon> exactly
Seems that disabling HTTP 1.1 solves this problem.
weigon offered workaround :
$HTTPuseragent =~ "Opera" { server.protocol-http11 = "disable" }
But it do not work at last for me. From debug - lighty enters this section, but http protocol version change seems has no effect in conditionals. Aditional drawback - older opera versions (and upgraded from old version with the same config) identifies as Internet Explorer; so this will not work for them.
-- ABLomas
Updated by Anonymous about 19 years ago
Aditional info :
Lighttpd 1.3.16 has this bug too, just a bit different... (sometimes_ lots of req, not only 2). Req/response headers (similar to 1.4.x version):
2006-03-13 18:56:33: (request.c.293) fd: 6 request-len: 492 GET /a.php HTTP/1.1 User-Agent: Opera/8.53 (Windows NT 5.1; U; en) Host: testbox Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1 Accept-Language: en Accept-Charset: windows-1257, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1 Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0 Pragma: no-cache Cache-Control: no-cache Connection: Keep-Alive, TE TE: deflate, gzip, chunked, identity, trailers 2006-03-13 18:56:33: (response.c.118) fd: 6 response-header-len: 163 HTTP/1.1 200 OK Date: Mon, 13 Mar 2006 16:56:33 GMT Transfer-Encoding: chunked Content-type: text/html X-Powered-By: PHP/4.3.10-16 Server: lighttpd/1.3.16 2006-03-13 18:57:05: (request.c.293) fd: 6 request-len: 492 GET /a.php HTTP/1.1 User-Agent: Opera/8.53 (Windows NT 5.1; U; en) Host: testbox Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1 Accept-Language: en Accept-Charset: windows-1257, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1 Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0 Pragma: no-cache Cache-Control: no-cache Connection: Keep-Alive, TE TE: deflate, gzip, chunked, identity, trailers 2006-03-13 18:57:05: (response.c.118) fd: 6 response-header-len: 163 HTTP/1.1 200 OK Date: Mon, 13 Mar 2006 16:57:05 GMT Transfer-Encoding: chunked Content-type: text/html X-Powered-By: PHP/4.3.10-16 Server: lighttpd/1.3.16 2006-03-13 18:57:37: (request.c.293) fd: 6 request-len: 539 GET /favicon.ico HTTP/1.1 User-Agent: Opera/8.53 (Windows NT 5.1; U; en) Host: testbox Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1 Accept-Language: en Accept-Charset: windows-1257, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1 Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0 Referer: https://testbox/a.php Pragma: no-cache Cache-Control: no-cache Connection: Keep-Alive, TE TE: deflate, gzip, chunked, identity, trailers 2006-03-13 18:57:37: (response.c.1272) file not found: /favicon.ico -> /var/www/favicon.ico 2006-03-13 18:57:37: (response.c.252) Response-Header: HTTP/1.1 404 Not Found Content-Length: 345 Date: Mon, 13 Mar 2006 16:57:37 GMT Accept-Ranges: bytes Content-Type: text/html Server: lighttpd/1.3.16
Content of file a.php is very simple - just "static".
-- ABLomas
Updated by marc about 19 years ago
I confirm this behavior, lighttpd-1.4.11 + mod_fastcgi + php 4.4.0
Updated by Anonymous almost 19 years ago
I also can confirm this with lighttpd + mod_fastcgi + ruby on rails + ssl + opera. All of the above eventually occur but eventually work after the keep-alive times out:
- pages only displaying partially
- opera requesting the page again
- ajax scripts not processing
- opera showing the hourglass mouse cursor and never finishing loading the page
Here's how I fixed it:
# fix the bug with internet explorer and keep-alive + SSL server.max-keep-alive-idle = 60 # fix the bug with opera acting all strange $HTTP["useragent"] =~ "Opera" { server.max-keep-alive-requests = 0 }
-- wkonkel
Updated by jan over 18 years ago
- Status changed from New to Fixed
- Resolution set to fixed
this was a bug in Opera itself which we added a work-around for in 1.4.12
Updated by Anonymous over 17 years ago
Also available in: Atom