httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chen Chien-Yu <>
Subject [users@httpd] HTTP doesn't work after upgrading from 2.0.55 to 2.2.15
Date Wed, 26 May 2010 13:24:40 GMT

I encountered a problem after upgrading Apache to 2.2.15.
The client will be stuck and load infinitely via the HTTP protocol, but it
worked correctly in 2.0.55 before I upgraded.

I tried to sniffer the packet, and found
1. If the page size is larger, most of the page and http header will be
received in the client but the last chunk won't be sent out from the Apache.
2. If the page size is small, the client only can see the http header.

It seems that some packets are queued in the Apache, ..?!
I describe the process as below,
1. Client send http request to the server, http://myhost/web.cgi, the cgi is
implemented in GNU CGI which has been dead since 2002.
2. web.cgi fetches the login.html file and sends back to the client.
3. The client gets stuck...

There are some things weird:
1. When I remove the directive "Listen 443" or "Keepalive On", then the HTTP
can work correctly via "Listen 80" without stall.
2. If both the "Listen 443" and "Listen 80" are enabled, only the HTTPS can
work. HTTP will have the problem I just mentioned.

Do you guys have any idea about my problem?
Why the behavior of dealing with output file is different between HTTP and
HTTPS protocol?

My Apache configuration

ServerRoot "/usr/local/apache"
ServerName localhost
PidFile /var/run/
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule prefork.c>
StartServers         5
MinSpareServers      5
MaxSpareServers     20
ServerLimit             20000
MaxClients           41
MaxRequestsPerChild  10000
<IfModule perchild.c>
NumServers           5
StartThreads         5
MinSpareThreads      5
MaxSpareThreads     10
MaxThreadsPerChild  20
Listen 80
User www
Group www
UseCanonicalName Off
DocumentRoot "/usr/local/apache/htdocs"
<Directory "/usr/local/apache/htdocs>"
    Options FollowSymLinks ExecCGI
        AllowOverride none
    Order allow,deny
        Allow from all
UserDir diabled
ErrorLog /var/log/error_log
LogLevel warn
<Directory "/usr/local/apache/cgi-bin>"
  AllowOverride None
  Options None
  Order allow,deny
  Allow from all
TypesConfig conf/mime.types
DefaultType text/plain
<IfModule mod_mime_magic.c>
    MIMEMagicFile conf/magic
DirectoryIndex web.cgi

AddHandler cgi-script .cgi
HostnameLookups Off

ServerTokens Full
ServerSignature On
ReadmeName README.html
HeaderName HEADER.html
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t

BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
BrowserMatch "Microsoft Data Access Internet Publishing Provider"
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
BrowserMatch "^gnome-vfs" redirect-carefully

Listen 443
<IfDefine SSL>
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl
SSLPassPhraseDialog builtin
SSLSessionCache  dbm:/var/log/ssl_scache
SSLSessionCacheTimeout  300
SSLMutex file:/var/log/ssl_mutex
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
SSLCryptoDevice cryptodev
<VirtualHost _default_:443>
DocumentRoot "/usr/local/apache/htdocs"
ErrorLog /var/log/error_log
TransferLog /var/log/access_log
SSLEngine on
SSLCertificateFile /etc/cert/default
SSLCertificateKeyFile /etc/cert/default.prv
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
  SSLOptions +StdEnvVars
<Directory "/usr/local/apache">
  SSLOptions +StdEnvVars
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0

Thanks in advance.

Best regards

View raw message