Puppet Class: apache::mod::worker

Defined in:
manifests/mod/worker.pp

Overview

Class: apache::mod::worker

Parameters

[*startservers*]
 (optional) The number of child server processes created on startup
 Defaults is '2'

[*maxclients*]
 (optional) The max number of simultaneous requests that will be served.
 This is the old name and is still supported. The new name is
 MaxRequestWorkers as of 2.3.13.
 Default is '150'

[*minsparethreads*]
 (optional) Minimum number of idle threads to handle request spikes.
 Default is '25'

[*maxsparethreads*]
 (optional) Maximum number of idle threads.
 Default is '75'

[*threadsperchild*]
 (optional) The number of threads created by each child process.
 Default is '25'

[*maxrequestsperchild*]
 (optional) Limit on the number of connectiojns an individual child server
 process will handle. This is the old name and is still supported. The new
 name is MaxConnectionsPerChild as of 2.3.9+.
 Default is '0'

[*serverlimit*]
 (optional) With worker, use this directive only if your MaxRequestWorkers
 and ThreadsPerChild settings require more than 16 server processes
 (default). Do not set the value of this directive any higher than the
 number of server processes required by what you may want for
 MaxRequestWorkers and ThreadsPerChild.
 Default is '25'

[*threadlimit*]
 (optional) This directive sets the maximum configured value for
 ThreadsPerChild for the lifetime of the Apache httpd process.
 Default is '64'

[*listenbacklog*]
  (optional) Maximum length of the queue of pending connections.
  Defaults is '511'

[*apache_version*]
 (optional)
 Default is $::apache::apache_version

Parameters:

  • startservers (Any) (defaults to: '2')
  • maxclients (Any) (defaults to: '150')
  • minsparethreads (Any) (defaults to: '25')
  • maxsparethreads (Any) (defaults to: '75')
  • threadsperchild (Any) (defaults to: '25')
  • maxrequestsperchild (Any) (defaults to: '0')
  • serverlimit (Any) (defaults to: '25')
  • threadlimit (Any) (defaults to: '64')
  • listenbacklog (Any) (defaults to: '511')
  • apache_version (Any) (defaults to: $::apache::apache_version)


55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# File 'manifests/mod/worker.pp', line 55

class apache::mod::worker (
  $startservers        = '2',
  $maxclients          = '150',
  $minsparethreads     = '25',
  $maxsparethreads     = '75',
  $threadsperchild     = '25',
  $maxrequestsperchild = '0',
  $serverlimit         = '25',
  $threadlimit         = '64',
  $listenbacklog       = '511',
  $apache_version      = $::apache::apache_version,
) {
  if defined(Class['apache::mod::event']) {
    fail('May not include both apache::mod::worker and apache::mod::event on the same node')
  }
  if defined(Class['apache::mod::itk']) {
    fail('May not include both apache::mod::worker and apache::mod::itk on the same node')
  }
  if defined(Class['apache::mod::peruser']) {
    fail('May not include both apache::mod::worker and apache::mod::peruser on the same node')
  }
  if defined(Class['apache::mod::prefork']) {
    fail('May not include both apache::mod::worker and apache::mod::prefork on the same node')
  }
  File {
    owner => 'root',
    group => $::apache::params::root_group,
    mode  => $::apache::file_mode,
  }

  # Template uses:
  # - $startservers
  # - $maxclients
  # - $minsparethreads
  # - $maxsparethreads
  # - $threadsperchild
  # - $maxrequestsperchild
  # - $serverlimit
  # - $threadLimit
  # - $listenbacklog
  file { "${::apache::mod_dir}/worker.conf":
    ensure  => file,
    content => template('apache/mod/worker.conf.erb'),
    require => Exec["mkdir ${::apache::mod_dir}"],
    before  => File[$::apache::mod_dir],
    notify  => Class['apache::service'],
  }

  case $::osfamily {
    'redhat': {
      if versioncmp($apache_version, '2.4') >= 0 {
        ::apache::mpm{ 'worker':
          apache_version => $apache_version,
        }
      }
      else {
        file_line { '/etc/sysconfig/httpd worker enable':
          ensure  => present,
          path    => '/etc/sysconfig/httpd',
          line    => 'HTTPD=/usr/sbin/httpd.worker',
          match   => '#?HTTPD=/usr/sbin/httpd.worker',
          require => Package['httpd'],
          notify  => Class['apache::service'],
        }
      }
    }
    'debian', 'freebsd', 'Suse': {
      ::apache::mpm{ 'worker':
        apache_version => $apache_version,
      }
    }
    'gentoo': {
      ::portage::makeconf { 'apache2_mpms':
        content => 'worker',
      }
    }
    default: {
      fail("Unsupported osfamily ${::osfamily}")
    }
  }
}