Apache dies on SIGHUP...sometimes

Apache dies on SIGHUP...sometimes

Post by Tyler Lars » Sat, 24 Aug 2002 01:48:06



On the last few apache servers I've worked with over the past couple
of years, I've found that apache will occasionally fail to restart
when it receives a SIGHUP. The HUP signal comes from logrotate, I
believe.  The last line in the error log when the server dies looks
like this:

[Thu Aug 22 04:02:01 2002] [notice] SIGHUP received.  Attempting to
restart

When I do a "service httpd restart" from the command line, everything
starts up just fine: no errors, no warnings, no hints as to why apache
committed suicide a few hours earlier.

I'm running the RPM installation of apache version:
apache-1.3.22-5.7.1 on a fully up-to-date (according to rhn) RedHat
7.1.

Note that apache doesn't die EVERY time it catches a SIGHUP.  It only
dies once every month or so.  The timing of when this started
happening along with some other factors leads me to believe that the
issue has something to do with my VirtualHosts configuration, but I
can't figure out what I'm doing wrong.

Thanks for your help.

Here is my httpd.conf file (with domain names replaced by "xxxx" or
"yyyy", of course)  The virtual hosts section is slightly abbreviated:
I only show a few entries when in reality there are about 20. They all
follow the exact same pattern as the ones shown, though.

When quoting this message, please be kind and only quote the parts of
this file that you're referring to.
-----------------------
ServerType standalone
ServerRoot "/etc/httpd"
LockFile /var/run/httpd.lock
PidFile /var/run/httpd.pid
ScoreBoardFile logs/apache_runtime_status
Timeout 300
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15
MinSpareServers 5
MaxSpareServers 20
StartServers 8
MaxClients 150
MaxRequestsPerChild 1000
LoadModule vhost_alias_module modules/mod_vhost_alias.so
<IfDefine HAVE_BANDWIDTH>
        LoadModule bandwidth_module   modules/mod_bandwidth.so
</IfDefine>
<IfDefine HAVE_THROTTLE>
        LoadModule throttle_module    modules/mod_throttle.so
</IfDefine>
LoadModule env_module         modules/mod_env.so
LoadModule config_log_module  modules/mod_log_config.so
LoadModule agent_log_module   modules/mod_log_agent.so
LoadModule referer_log_module modules/mod_log_referer.so
LoadModule mime_module        modules/mod_mime.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule status_module      modules/mod_status.so
LoadModule info_module        modules/mod_info.so
LoadModule includes_module    modules/mod_include.so
LoadModule autoindex_module   modules/mod_autoindex.so
LoadModule dir_module         modules/mod_dir.so
LoadModule cgi_module         modules/mod_cgi.so
LoadModule asis_module        modules/mod_asis.so
LoadModule imap_module        modules/mod_imap.so
LoadModule action_module      modules/mod_actions.so
LoadModule userdir_module     modules/mod_userdir.so
LoadModule alias_module       modules/mod_alias.so
LoadModule jk_module       modules/mod_jk.so
LoadModule rewrite_module     modules/mod_rewrite.so
LoadModule access_module      modules/mod_access.so
LoadModule auth_module        modules/mod_auth.so
LoadModule anon_auth_module   modules/mod_auth_anon.so
LoadModule db_auth_module     modules/mod_auth_db.so
LoadModule expires_module     modules/mod_expires.so
LoadModule headers_module     modules/mod_headers.so
LoadModule setenvif_module    modules/mod_setenvif.so
<IfDefine HAVE_PERL>
        LoadModule perl_module        modules/libperl.so
</IfDefine>
<IfDefine HAVE_PHP>
        LoadModule php_module         modules/mod_php.so
</IfDefine>
<IfDefine HAVE_PHP3>
        LoadModule php3_module        modules/libphp3.so
</IfDefine>
<IfDefine HAVE_PHP4>
        LoadModule php4_module        modules/libphp4.so
</IfDefine>
<IfDefine HAVE_DAV>
        LoadModule dav_module         modules/libdav.so
</IfDefine>
<IfDefine HAVE_ROAMING>
        LoadModule roaming_module     modules/mod_roaming.so
</IfDefine>
<IfDefine HAVE_SSL>
        LoadModule ssl_module         modules/libssl.so
</IfDefine>
<IfDefine HAVE_PUT>
        LoadModule put_module         modules/mod_put.so
</IfDefine>
<IfDefine HAVE_PYTHON>
        LoadModule python_module      modules/mod_python.so
</IfDefine>

ClearModuleList
AddModule mod_vhost_alias.c
<IfDefine HAVE_BANDWIDTH>
        AddModule mod_bandwidth.c
</IfDefine>
<IfDefine HAVE_THROTTLE>
AddModule mod_throttle.c
</IfDefine>
AddModule mod_env.c
AddModule mod_log_config.c
AddModule mod_log_agent.c
AddModule mod_log_referer.c
AddModule mod_mime.c
AddModule mod_negotiation.c
AddModule mod_status.c
AddModule mod_info.c
AddModule mod_include.c
AddModule mod_autoindex.c
AddModule mod_dir.c
AddModule mod_cgi.c
AddModule mod_asis.c
AddModule mod_imap.c
AddModule mod_actions.c
AddModule mod_userdir.c
AddModule mod_alias.c
AddModule mod_jk.c
AddModule mod_rewrite.c
AddModule mod_access.c
AddModule mod_auth.c
AddModule mod_auth_anon.c
AddModule mod_auth_db.c
AddModule mod_expires.c
AddModule mod_headers.c
AddModule mod_so.c
AddModule mod_setenvif.c
<IfDefine HAVE_PERL>
        AddModule mod_perl.c
</IfDefine>
<IfDefine HAVE_PHP>
        AddModule mod_php.c
</IfDefine>
<IfDefine HAVE_PHP3>
        AddModule mod_php3.c
</IfDefine>
<IfDefine HAVE_PHP4>
        AddModule mod_php4.c
</IfDefine>
<IfDefine HAVE_DAV>
        AddModule mod_dav.c
</IfDefine>
<IfDefine HAVE_ROAMING>
        AddModule mod_roaming.c
</IfDefine>
<IfDefine HAVE_SSL>
        AddModule mod_ssl.c
</IfDefine>
<IfDefine HAVE_PUT>
        AddModule mod_put.c
</IfDefine>
<IfDefine HAVE_PYTHON>
        AddModule mod_python.c
</IfDefine>

Port 80
Listen x.x.x.x:80
<IfDefine HAVE_SSL>
    Listen x.x.x.x:443
</IfDefine>

User apache
Group apache

ServerAdmin supp...@xxxx.net
DocumentRoot "/xxxx/"
<Directory />
    Options FollowSymLinks ExecCGI
    AllowOverride All
</Directory>
<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
<IfModule mod_userdir.c>
    UserDir public_html
</IfModule>
<IfModule mod_dir.c>
    DirectoryIndex index.php index.php4 index.php3 index.phtml
index.cgi index.html index.htm index.shtml
</IfModule>
AccessFileName .htaccess
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</Files>
UseCanonicalName Off
<IfModule mod_mime.c>
    TypesConfig /etc/mime.types
</IfModule>

DefaultType text/plain
<IfModule mod_mime_magic.c>
    MIMEMagicFile conf/magic
</IfModule>
HostnameLookups Off
ErrorLog logs/error_log
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\"
\"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog logs/access_log combined
ServerSignature On
<IfModule mod_alias.c>
    Alias /icons/ "/var/www/icons/"
    <Directory "/var/www/icons">
        Options Indexes MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
    <Directory "/var/www/cgi-bin">
        AllowOverride None
        Options None
        Order allow,deny
        Allow from all
    </Directory>
</IfModule>

<IfModule mod_autoindex.c>
    IndexOptions FancyIndexing NameWidth=*
    AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
    AddIconByType (TXT,/icons/text.gif) text/*
    AddIconByType (IMG,/icons/image2.gif) image/*
    AddIconByType (SND,/icons/sound2.gif) audio/*
    AddIconByType (VID,/icons/movie.gif) video/*
    AddIcon /icons/binary.gif .bin .exe
    AddIcon /icons/binhex.gif .hqx
    AddIcon /icons/tar.gif .tar
    AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
    AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
    AddIcon /icons/a.gif .ps .ai .eps
    AddIcon /icons/layout.gif .html .shtml .htm .pdf
    AddIcon /icons/text.gif .txt
    AddIcon /icons/c.gif .c
    AddIcon /icons/p.gif .pl .py
    AddIcon /icons/f.gif .for
    AddIcon /icons/dvi.gif .dvi
    AddIcon /icons/uuencoded.gif .uu
    AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
    AddIcon /icons/tex.gif .tex
    AddIcon /icons/bomb.gif core
    AddIcon /icons/back.gif ..
    AddIcon /icons/hand.right.gif README
    AddIcon /icons/folder.gif ^^DIRECTORY^^
    AddIcon /icons/blank.gif ^^BLANKICON^^
    DefaultIcon /icons/unknown.gif
    ReadmeName README
    HeaderName HEADER
    IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
</IfModule>

<IfModule mod_mime.c>
    AddEncoding x-compress Z
    AddEncoding x-gzip gz tgz
    AddLanguage da .dk
    AddLanguage nl .nl
    AddLanguage en .en
    AddLanguage et .ee
    AddLanguage fr .fr
    AddLanguage de .de
    AddLanguage el .el
    AddLanguage he .he
    AddCharset ISO-8859-8 .iso8859-8
    AddLanguage it .it
    AddLanguage ja .ja
    AddCharset ISO-2022-JP .jis
    AddLanguage kr .kr
    AddCharset ISO-2022-KR .iso-kr
    AddLanguage nn .nn
    AddLanguage no .no
    AddLanguage pl .po
    AddCharset ISO-8859-2 .iso-pl
    AddLanguage pt .pt
    AddLanguage pt-br .pt-br
    AddLanguage ltz .lu
    AddLanguage ca .ca
    AddLanguage es .es
    AddLanguage sv .se
    AddLanguage cz .cz
    AddLanguage ru .ru
    AddLanguage zh-tw .tw
    AddLanguage tw .tw
    AddCharset Big5         .Big5    .big5
    AddCharset WINDOWS-1251 .cp-1251
    AddCharset CP866        .cp866
    AddCharset ISO-8859-5   .iso-ru
    AddCharset KOI8-R       .koi8-r
    AddCharset UCS-2        .ucs2
    AddCharset UCS-4        .ucs4
    AddCharset UTF-8        .utf8
    <IfModule mod_negotiation.c>
    LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ru
ltz ca es sv tw
    </IfModule>
    <IfModule mod_php3.c>
        AddType application/x-httpd-php3 .php3
        AddType application/x-httpd-php3-source .phps
    </IfModule>
    <IfModule mod_php4.c>
        AddType application/x-httpd-php .php .php4 .php3 .phtml
        AddType application/x-httpd-php-source .phps
    </IfModule>
    <IfModule mod_php.c>
        AddType application/x-httpd-php .phtml
    </IfModule>
    AddType application/x-tar .tgz
    AddHandler cgi-script .cgi
    AddType text/html .shtml
    AddHandler server-parsed .shtml
    AddHandler imap-file map
</IfModule>

<IfModule mod_setenvif.c>
    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
</IfModule>

<IfDefine HAVE_SSL>
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl
</IfDefine>

<IfModule mod_ssl.c>
        SSLPassPhraseDialog  builtin
        SSLSessionCache         shm:logs/ssl_scache(512000)
        SSLSessionCacheTimeout  300
        SSLMutex  file:logs/ssl_mutex
        SSLRandomSeed startup builtin
        SSLRandomSeed connect builtin
        SSLLog      logs/ssl_engine_log
        SSLLogLevel error
</IfModule>
<IfDefine HAVE_FRONTPAGE>
LoadModule frontpage_module modules/mod_frontpage.so
AddModule mod_frontpage.c
</IfDefine>

<Files ~ \.inc$>
  order allow,deny
  deny from all
</Files>

<Directory /home/*/public_html>
    AllowOverride All
    Options All
    <Limit GET POST OPTIONS PROPFIND>
        Order allow,deny
        Allow from all
    </Limit>
    <LimitExcept GET POST OPTIONS PROPFIND>
        Order deny,allow
        Deny from all
    </LimitExcept>
</Directory>

<Directory /home/*/public_ssl>
    AllowOverride All
    Options All
    <Limit GET POST OPTIONS PROPFIND>
        Order allow,deny
        Allow from all
    </Limit>
    <LimitExcept GET POST OPTIONS PROPFIND>
        Order deny,allow
        Deny from all
    </LimitExcept>
</Directory>

<Directory /non-users>
  AllowOverride All
  Options All
  Order allow,deny
  Allow from all
</Directory>

NameVirtualHost x.x.x.x:80
NameVirtualHost x.x.x.x:443

<VirtualHost x.x.x.x:443>
        ServerName secure.ahsystems.net
        ServerAlias secure
        include "conf/ssl_local.conf"
        SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
        SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
        CustomLog logs/ssl_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\"
%b"
        DocumentRoot /non-users/secure/
</VirtualHost>  

<VirtualHost x.x.x.x:80>
        ServerName www.xxxx.net
        ServerAlias xxxx.net www
        DocumentRoot /non-users/xxxx/
</VirtualHost>

<VirtualHost x.x.x.x:80>
        ServerName secure.xxxx.net
        ServerAlias secure
        Redirect / https://secure.axxxx.net/
</VirtualHost>

<VirtualHost x.x.x.x:80>
        ServerName admin.xxxx.net
        ServerAlias admin
        DocumentRoot /non-users/admin/
        Alias /mysql /non-users/phpMyAdmin
</VirtualHost>

<VirtualHost x.x.x.x:80>
        ServerName yyyy.com
        ServerAlias www.yyyy.com
        DocumentRoot /home/y/yyyy/public_html/
</VirtualHost>

<VirtualHost x.x.x.x:443>
        ServerName yyyy.com
        ServerAlias www.yyyy.com
        include "conf/ssl_local.conf"
        SSLCertificateFile /home/y/private/yyyy.crt
        SSLCertificateKeyFile /home/y/private/yyyy.com.key
        CustomLog logs/ssl_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\"
%b"
        DocumentRoot /home/y/yyyy/public_ssl/
</VirtualHost>  
------------------