aye coder | 2 Jul 01:24 2016

apache sending mail with subject “ not in hosts list”

I recently updated my server's IP address.  After restarting services,
apache began sending mail (from the apache <at> box.example.com) with the
subject " not in hosts list". There is no body to the email -
just that subject.

This message is sent once every minute from UID 48 (apache).

System Information:
[acoder <at> box ~]# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built:   May 11 2016 19:28:33

[acoder <at> box ~]# cat /etc/redhat-release
CentOS release 6.8 (Final)

[acoder <at> box ~]# hostname

[acoder <at> box ~]# ifconfig
inet addr:

Example from /var/log/maillog
Jun 26 08:25:02 box postfix/pickup[13188]: 165881C0232: uid=48 from=<apache>
Jun 26 08:25:02 box postfix/cleanup[18593]: 165881C0232:
message-id=<20160626122502.165881C0232 <at> box.example.com>
Jun 26 08:25:02 box postfix/qmgr[9276]: 165881C0232:
from=<apache <at> box.example.com>, size=1404, nrcpt=1 (queue active)
Jun 26 08:25:02 box postfix/smtp[18777]: 165881C0232:
(Continue reading)

Rob McAninch | 1 Jul 22:34 2016

Date Format of Shell Program Changes in Apache

Server version: Apache/2.4.10 (Debian)

This seems like it should be simple but manual pages and searching have not shown me an answer yet. Reduced it to as simple as I can, I don't understand why the date format is different in each.

use strict;
print "content-type: text/html\n\n";
print `who`;

When I call it up in a web browser I get

rob pts/1 Jul 1 12:28 (192.x.x.x)

The same script on a command line via ssh I get:

prompt$ perl tryme.cgi
content-type: text/html

rob      pts/1        2016-07-01 12:28 (192.x.x.x)

Marat Khalili | 1 Jul 18:26 2016

ProxyPreserveHost doesn't work with SSL

Dear all,

I'm reverse proxying requests on Apache/2.4.18 (stock version on Ubuntu 
16.04) via SSL to an application running on IIS 7.0. Somehow, despite 
ProxyPreserveHost, IIS app manages to sniff IP-address 
specified in ProxyPass (see below) and breaks. If I replace 
with myapp.com and put " myapp.com" in /etc/hosts everything 
works (but I don't like the solution).

Because of SSL the problem is somewhat hard to debug, can't just packet 
trace. I tried to replace IIS application with CGI script on different 
Apache, without SSL, and found that ProxyPreserveHost is not ignored 
(environment variable SERVER_NAME set correctly to myapp.com). I guess 
for SSL the ProxyPreserveHost is implemented partially, i.e. for Host 
header but not for SNI. Any ideas on how to investigate?

Here's the complete virtualhost configuration:
<VirtualHost *:443>
     ServerName myapp.com

     SSLEngine on
     SSLCertificateFile  /etc/ssl/certs/myapp.pem
     SSLCertificateKeyFile /etc/ssl/private/myapp.key

     SSLProxyEngine on
     SSLProxyProtocol all
     SSLProxyCipherSuite ALL
     SSLProxyVerify none
     SSLProxyCheckPeerCN off
     SSLProxyCheckPeerName off
     SSLProxyCheckPeerExpire off

     <Location />
         ProxyPreserveHost on
         ProxyPass connectiontimeout=300 timeout=300
         ProxyPassReverse /
         ProxyPassReverseCookieDomain myapp.com


With Best Regards,
Marat Khalili
Rose, John B | 30 Jun 20:13 2016

Apache default page shows up periodically

We have a group that has the default Red Hat Apache page show up occasionally instead of their regular home page. Usually their correct home page loads. The page will load properly for a couple weeks, then the default Red Hat page shows up for some users, but not all.


Their site is set up as a virtual host





Leonardo Almeida | 29 Jun 23:38 2016

Apache stopped working permanently after error "Server ran out of threads to serve requests."


I have been working with Apache for more than 8 years, but now I'm facing a severe problem and I couldn't find a solution on internet so far.

I'm running Apache 2.2.15 32bit on a Windows 2008 R2 64bit with Service Pack 1. I always used a 32bit Apache because my CGI codes (exe files) are 32bit.

The computer has a 3.10 GHz processor and 16GB RAM. The server load is always very low. The access log showed a normal request amount when the problem happened.

Since the installation many months ago, everything was running correctly, but now my Apache stopped working and I don't know how to fix this problem.

It has been many weeks I don't change any configuration, but suddenly the Apache stopped serving the HTTP responses. All requests get timed out. In a practical sense, my site is offline.

By using Windows Event Viewer, I have found an error log when Apache stopped working. It's the error event:

    Log Name:      Application
    Source:        Application Error
    Date:          6/28/2016 8:08:33 PM
    Event ID:      1000
    Task Category: (100)
    Level:         Error
    Keywords:      Classic
    User:          N/A
    Computer:      PictureToPeople
    Faulting application name: httpd.exe, version:, time stamp: 0x4b8fed95
    Faulting module name: ntdll.dll, version: 6.1.7601.17514, time stamp: 0x4ce7ba58
    Exception code: 0xc0000005
    Fault offset: 0x00037188
    Faulting process id: 0xbbc
    Faulting application start time: 0x01d1cdfef0f8148c
    Faulting application path: C:\Apache2.2\bin\httpd.exe
    Faulting module path: C:\Windows\SysWOW64\ntdll.dll
    Report Id: 3c1e0a43-3d85-11e6-aad3-001e8cf18221
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
        <Provider Name="Application Error" />
        <EventID Qualifiers="0">1000</EventID>
        <TimeCreated SystemTime="2016-06-28T23:08:33.000000000Z" />
        <Security />

It's what Apache error log recorded near to the time of error above (6/28/2016 8:08:33). It's possible to see the
error message "Server ran out of threads to serve requests. Consider raising the ThreadsPerChild setting".
After this message, Apache never worked again.
(Previous Apache error log messages were recorded very earlier and are not related.)

    [Tue Jun 28 20:08:30 2016] [notice] Parent: Received shutdown signal -- Shutting down the server.
    [Tue Jun 28 20:08:31 2016] [notice] Child 3004: Exit event signaled. Child process is ending.
    [Tue Jun 28 20:08:32 2016] [info] Child 3004: Accept thread exiting.
    [Tue Jun 28 20:08:32 2016] [notice] Child 3004: Released the start mutex
    [Tue Jun 28 20:08:32 2016] [notice] Child 3004: Terminating 99 threads that failed to exit.
    [Tue Jun 28 20:08:32 2016] [notice] Child 3004: All worker threads have exited.
    [Tue Jun 28 20:08:32 2016] [info] [client] (OS 10038)An operation was attempted on something that is not a socket.  : core_output_filter: writing data to the network
    [Tue Jun 28 20:08:34 2016] [notice] Parent: Child process exited successfully.
    [Tue Jun 28 20:08:34 2016] [info] removed PID file C:/Apache2.2/logs/httpd.pid (pid=284)
    [Tue Jun 28 20:08:54 2016] [notice] Apache/2.2.15 (Win32) configured -- resuming normal operations
    [Tue Jun 28 20:08:54 2016] [notice] Server built: Mar  4 2010 11:27:46
    [Tue Jun 28 20:08:54 2016] [notice] Parent: Created child process 2468
    [Tue Jun 28 20:08:54 2016] [info] Parent: Duplicating socket 308 and sending it to child process 2468
    [Tue Jun 28 20:08:54 2016] [notice] Child 2468: Child process is running
    [Tue Jun 28 20:08:54 2016] [notice] Child 2468: Acquired the start mutex.
    [Tue Jun 28 20:08:54 2016] [notice] Child 2468: Starting 100 worker threads.
    [Tue Jun 28 20:08:54 2016] [notice] Child 2468: Starting thread to listen on port 80.
    [Tue Jun 28 20:08:56 2016] [warn] Server ran out of threads to serve requests. Consider raising the ThreadsPerChild setting

After the error above, restarting Windows and Apache service didn't solve the problem (same error message).
After reinstalling Apache and booting the machine, the problem was still there (same error message).
So, I increased the "MaxRequestsPerChild" parameter to 300, but all worker threads were consumed in 12 seconds.
So, I increased the "MaxRequestsPerChild" parameter to 500 and rebooted the machine, but all worker threads were consumed in 9 seconds as the log shows below.

    [Tue Jun 28 21:55:01 2016] [notice] Parent: Received shutdown signal -- Shutting down the server.
    [Tue Jun 28 21:55:01 2016] [notice] Child 864: Exit event signaled. Child process is ending.
    [Tue Jun 28 21:55:02 2016] [info] Child 864: Accept thread exiting.
    [Tue Jun 28 21:55:02 2016] [notice] Child 864: Released the start mutex
    [Tue Jun 28 21:55:20 2016] [error] [client] request failed: error reading the headers
    [Tue Jun 28 21:55:31 2016] [error] [client] request failed: error reading the headers
    [Tue Jun 28 21:55:31 2016] [error] [client] request failed: error reading the headers
    [Tue Jun 28 21:55:31 2016] [notice] Parent: Forcing termination of child process 368
    [Tue Jun 28 21:55:31 2016] [info] removed PID file C:/Apache2.2/logs/httpd.pid (pid=2252)
    [Tue Jun 28 22:10:13 2016] [notice] Apache/2.2.15 (Win32) configured -- resuming normal operations
    [Tue Jun 28 22:10:13 2016] [notice] Server built: Mar  4 2010 11:27:46
    [Tue Jun 28 22:10:13 2016] [notice] Parent: Created child process 1452
    [Tue Jun 28 22:10:13 2016] [notice] Child 1452: Child process is running
    [Tue Jun 28 22:10:13 2016] [info] Parent: Duplicating socket 308 and sending it to child process 1452
    [Tue Jun 28 22:10:13 2016] [notice] Child 1452: Acquired the start mutex.
    [Tue Jun 28 22:10:13 2016] [notice] Child 1452: Starting 500 worker threads.
    [Tue Jun 28 22:10:13 2016] [notice] Child 1452: Starting thread to listen on port 80.
    [Tue Jun 28 22:10:22 2016] [warn] Server ran out of threads to serve requests. Consider raising the ThreadsPerChild setting

Below you can see my complete original httpd.conf. It had been working correctly for months.
(I removed just all the comment lines to make it smaller and more readable, and also masked some minimal sensible data with "xxxxx"):

    ServerRoot "C:/Apache2.2"
    Listen 80
    LoadModule actions_module modules/mod_actions.so
    LoadModule alias_module modules/mod_alias.so
    LoadModule asis_module modules/mod_asis.so
    LoadModule auth_basic_module modules/mod_auth_basic.so
    LoadModule authn_default_module modules/mod_authn_default.so
    LoadModule authn_file_module modules/mod_authn_file.so
    LoadModule authz_default_module modules/mod_authz_default.so
    LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
    LoadModule authz_host_module modules/mod_authz_host.so
    LoadModule authz_user_module modules/mod_authz_user.so
    LoadModule autoindex_module modules/mod_autoindex.so
    LoadModule cgi_module modules/mod_cgi.so
    LoadModule deflate_module modules/mod_deflate.so
    LoadModule dir_module modules/mod_dir.so
    LoadModule env_module modules/mod_env.so
    LoadModule expires_module modules/mod_expires.so
    LoadModule headers_module modules/mod_headers.so
    LoadModule include_module modules/mod_include.so
    LoadModule isapi_module modules/mod_isapi.so
    LoadModule log_config_module modules/mod_log_config.so
    LoadModule mime_module modules/mod_mime.so
    LoadModule negotiation_module modules/mod_negotiation.so
    LoadModule rewrite_module modules/mod_rewrite.so
    LoadModule setenvif_module modules/mod_setenvif.so
    <IfModule !mpm_netware_module>
    <IfModule !mpm_winnt_module>
    User daemon
    Group daemon
    ServerAdmin xxxxxxxxxxxxxxxxxxxxxxxx
      ServerName xxxxxxxxxxxxxxxxxxxxxxxx:80
    DocumentRoot "xxxxxxxxxxxxxxxxxxxxxxxx"
    <Directory />
        Options FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
    <Directory "xxxxxxxxxxxxxxxxxxxxxxxx">
        Options FollowSymLinks
        Options +Includes
        Options -Indexes
        AllowOverride None
        Order allow,deny
        Allow from all
        LimitRequestBody 10485760
        SetOutputFilter DEFLATE
        SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip
    <IfModule dir_module>
        DirectoryIndex index.html
    <FilesMatch "^\.ht">
        Order allow,deny
        Deny from all
        Satisfy All
    <IfModule mod_headers.c>
        Header always append X-Frame-Options SAMEORIGIN
    <IfModule mod_expires.c>
        ExpiresActive on
        ExpiresDefault                                      "access plus 1 week"
        ExpiresByType text/css                              "access plus 1 week"
        ExpiresByType application/atom+xml                  "access plus 1 hour"
        ExpiresByType application/rdf+xml                   "access plus 1 hour"
        ExpiresByType application/rss+xml                   "access plus 1 hour"
        ExpiresByType application/json                      "access plus 0 seconds"
        ExpiresByType application/ld+json                   "access plus 0 seconds"
        ExpiresByType application/schema+json               "access plus 0 seconds"
        ExpiresByType application/vnd.geo+json              "access plus 0 seconds"
        ExpiresByType application/xml                       "access plus 0 seconds"
        ExpiresByType text/xml                              "access plus 0 seconds"
        ExpiresByType image/vnd.microsoft.icon              "access plus 1 week"
        ExpiresByType image/x-icon                          "access plus 1 week"
        ExpiresByType text/html                             "access plus 1 day"
        ExpiresByType application/javascript                "access plus 1 week"
        ExpiresByType application/x-javascript              "access plus 1 week"
        ExpiresByType text/javascript                       "access plus 1 week"
        ExpiresByType application/manifest+json             "access plus 1 year"
        ExpiresByType application/x-web-app-manifest+json   "access plus 0 seconds"
        ExpiresByType text/cache-manifest                   "access plus 0 seconds"
        ExpiresByType audio/ogg                             "access plus 1 month"
        ExpiresByType image/bmp                             "access plus 1 month"
        ExpiresByType image/gif                             "access plus 1 month"
        ExpiresByType image/jpeg                            "access plus 1 month"
        ExpiresByType image/png                             "access plus 1 month"
        ExpiresByType image/svg+xml                         "access plus 1 month"
        ExpiresByType video/mp4                             "access plus 1 month"
        ExpiresByType video/ogg                             "access plus 1 month"
        ExpiresByType video/webm                            "access plus 1 month"
      <Directory xxxxxxxxxxxxxxxxxxxxxxxx>
          ExpiresByType image/gif                             "access plus 0 seconds"
          ExpiresByType image/jpeg                            "access plus 0 seconds"
          ExpiresByType image/png                             "access plus 0 seconds"
        ExpiresByType application/vnd.ms-fontobject         "access plus 1 month"
        ExpiresByType font/eot                              "access plus 1 month"
        ExpiresByType font/opentype                         "access plus 1 month"
        ExpiresByType application/x-font-ttf                "access plus 1 month"
        ExpiresByType application/font-woff                 "access plus 1 month"
        ExpiresByType application/x-font-woff               "access plus 1 month"
        ExpiresByType font/woff                             "access plus 1 month"
        ExpiresByType application/font-woff2                "access plus 1 month"
        ExpiresByType text/x-cross-domain-policy            "access plus 1 week"
    ErrorLog "|bin/rotatelogs logs/error.%Y-%m-%d.log 50M"
    LogLevel info
    <IfModule log_config_module>
        LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
        LogFormat "%h %l %u %t \"%r\" %>s %b" common
        <IfModule logio_module>
          LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
        CustomLog "|bin/rotatelogs logs/access.%Y-%m-%d---%H.log 300M" common
    <IfModule alias_module>
        ScriptAlias /p2p/ "xxxxxxxxxxxxxxxxxxxxxxxx"
    <IfModule cgid_module>
    <Directory "xxxxxxxxxxxxxxxxxxxxxxxx">
        AllowOverride None
        Options None
        Order allow,deny
        Allow from all
    DefaultType text/plain
    <IfModule mime_module>
        TypesConfig conf/mime.types
        AddType application/x-compress .Z
        AddType application/x-gzip .gz .tgz
        AddType text/html .html
        AddHandler server-parsed .html
    <IfModule mpm_winnt_module>
        ThreadsPerChild      100
        MaxMemFree           100
        MaxRequestsPerChild  5000
    <IfModule ssl_module>
    SSLRandomSeed startup builtin
    SSLRandomSeed connect builtin
    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www
    RewriteRule (.*) http://www.%{HTTP_HOST}$1 [L,R]

As shown above, my Apache stops responding almost instantly after launch.

My site doesn't connect to databases. It just serves dynamic pages by using CGI.

Is there a way to clean up the system to make Apache work again as it used to work before this mysterious crash?

Could anyone give me any advice to solve this issue or at least to get a workaround?

Thanks in advance.
thomas Armstrong | 28 Jun 19:03 2016

RewriteRule not working, 404 error obtained


Using Apache/2.2.31, I created the following rule on my '.htaccess' file:
RewriteEngine on
RewriteRule ^([^/]+)/$ /do.php?label=$1 [L]

However, when accessing 'http://foo.com/whatever/', I get a 404 error message. I've checked my error log and:
[Mon Jun 27 11:12:15 2016] [error] [client] File does not exist: /path-to-web/whatever, referer: http://foo.com/

'http://foo.com' works ok, and 'http://foo.com/do.php?label=whatever' works ok as well.

I've checked phpinfo, and 'mod_rewrite' is loaded in Apache. Additionally, I tried to enable it via 'http.conf', but Apache tells me that "module rewrite_module is built-in and can't be loaded".

What am I doing wrong? This same '.htaccess' works ok in two other Apache servers.

I tried with "Options +FollowSymLinks -MultiViews" as well. Thank you very much

Mario S. Mommer | 27 Jun 11:12 2016

mod_dav SEARCH method


I set up a dav server using Apache (versions below) and mod_dav.
Everything works fine, but any invocation of the SEARCH method results
in a "Method not allowed" (403) error.

I can't however, seem to find any documentation regarding this issue.
Any ideas? Does the apache mod_dav module support SEARCH?

I'm running

Apache/2.4.10 (Debian)
Debian 8 (Jessie)

I'll spare you the config files because, really, everything else works
perfectly (PROPIND, GET, PUT, ..., with and without authentication).

Regards, and thanks,

	Mario S. Mommer


Modellierung und Systemoptimierung Mommer GmbH
Bergheimer Str. 31, 69115 Heidelberg
Geschäftsführer: Dr.rer.nat. Mario S. Mommer

Web: http://www.msmommer.de   |  email: info <at> msmommer.de
Tel: 06221 647 97 87          |  Fax: 06221 187 416 99

Registergericht: Mannheim. Handelsregisternummer: HRB 719509
Ust-ID: DE-294661452
David Moon | 25 Jun 23:40 2016

Failed requests in ab output

I've written a server and am running some ab tests from 20 EC2 instances.  Above a certain level of concurrency (about 30 for each of 20 instances, so 600 "clients" in total), I start getting failed requests.  Presumably this is a limitation of my server's performance.  The strange thing is that the failed requests are always, without fail, equally distributed over Receive, Length, and Exceptions (and 0 failed requests for Connect).  For example, the output of my most recent test contained the following lines:

Failed requests:        576
   (Connect: 0, Receive: 192, Length: 192, Exceptions: 192)

Should I expect to see such output on server-performance-related failed requests?  If so, why?  All of my searches on this issue only bring up failures due to Length, on account of dynamic webpages returning content of unexpected length.


Erik Dobák | 24 Jun 14:43 2016

apache 2.2 troubleshooting


i have an apache 2.2 used as a reverse proxy with caching in mem.
Everything is working fine but after a few days the reverse proxy
starts to send all the requests to the backend server.

Is there a way to see what objects are cached in mem? Or should i
switch to disk cache to see that?


Christian Georg | 24 Jun 12:42 2016

Question on correlation bewteen timeout types (Acquire, connection, proxytimeout and timeout)

Hi all,


I am currently trying to understand the different timout parameters a bit better and how they interact.  We are using apache httpd 2.4 mod_proxy on a centos system as a reverse proxy with mod_proxy_balancer.


Here is the relevant section from our setup:


Define CONNECTION_OPTIONS "min=10 max=500 smax=30 acquire=5000 connectiontimeout=5 disablereuse=off keepalive=off timeout=29 ttl=10 retry=60"

        <Proxy balancer://balancer location/>

                BalancerMember https://Server1/   ${CONNECTION_OPTIONS}

                BalancerMember https:// Server2/  ${CONNECTION_OPTIONS} status=+H

                ProxySet lbmethod=bytraffic



What I am trying to understand is how the different timeout parameters interact and at what time a request might have been sent to the backend.


Can you confirm/correct the following understanding and answer the questions?



Acquire timeout is a timeout send to the client if the connection pool is very busy and apache did not even start to process the request. If this timeout happens the request did not reach the proxy and I can be sure no request is sent to the backend. In this case, the client will receive an http 503. Should I see these kind of requests within the access log of the proxy virtual host?



Connectiontimeout is a timeout that happens during handshake between the apache proxy and the backend. As we are using SSL between the proxy and the backend this can happen during SSL Handshake. If this timeout occurs the request was trying to be processed by the proxy and will appear in the access log with an http code of 504. If this timeout occurs, then I can be sure that the request has not been sent to the backend. Can any other http code occur from time timeout and is there even a small chance that we might have send the request to the backend?


ProxyTimeout and timeout:

Timeout and proxy timeout will both occur only if a successful connection to the backend was established and if the request has been sent to the backend. Hence I should the see request in both logfiles. If the server does not respond within the time defined in this timeout I would expect an http 502 to be created. Is this correct? The Part I would like to understand is: does the timeout include the acquire time and connection time or is it independent?

Let’s take an example: If it takes 4 seconds to acquire a connection and another 4 seconds to connect to the backend will the will the client see a timout after 29 seconds (timeout includes acquire and connection)  will the client see a timeout after 33 seconds (timout does nto include acquire time but toes include connection time) or will the client see a timeout after 37 seconds (timeout will only start to after the request was send).


Is there any reason to set the proxytimeout to another value than the timeout?


One related question: We are currently logging the http codes using ”%>s” from my understanding this is the http code we are sending in the response to the client. Is this correct and is there a way to also log the http code we have received from the backend we are proxying to? I would expect the http code from the backend to be empty if a timeout occurs in our systems


Thanks in advance






vev | 23 Jun 22:55 2016

Files and Require

I just upgraded from 2.0.55 to 2.4.20.  I'm getting a syntax error on
startup on this:

<Files ~ "^\.ht">
    Require all denied

in the main configuration.  Everything I've found in the docs say this is
how it's done.  Is this supposed to be in a container or something?


  Michigan VHF Corp.   http://www.nobucks.net/   http://www.CDupe.com/
          http://www.foggymist.com   The Foggy Mist Emporium