+# @param smaller_number_of_threads by default the worker config is geared towards
+# serving static/cheap content. If the host is very
+# script heavy (say the bug tracking system), set this
+# to reduce the number of worker threads.
+# @param rlimitnproc A resource limit for number of processes. The default is usually fine.
+# @param rlimitmem A resource limit for memory usage. The default is usually fine.
+# @param public Whether this host's apache should be accessible from the public internet.
+# Sets appropriate firewall rules and optionally rate limits.
+# @param mpm Which Multi-Processing Modules to use. Defaults to worker;
+# the alternative is prefork.
+# @param rate_limit Rate limit incoming connections at the netfilter level. If false,
+# (and public is true), all incoming connections to the http
+# and https ports get sent to the http chain, and accepted at
+# ferm prio 90, so other things can be done to web traffic
+# before that.
+class apache2(
+ Boolean $smaller_number_of_threads = false,
+ Integer $rlimitnproc = 256,
+ Integer $rlimitmem = 192 * 1024 * 1024,
+ Boolean $public = true,
+ Enum['prefork','worker'] $mpm = 'worker',
+ Boolean $rate_limit = false,
+) {