Skip to content

Latest commit

 

History

History
556 lines (500 loc) · 16.8 KB

README.md

File metadata and controls

556 lines (500 loc) · 16.8 KB

Httpd Cookbook

DESCRIPTION

The Apache HTTP cookbook provides the necessary resources to install and manage Apache HTTP Server

Platforms Support

  • RHEL 6.x
  • RHEL 7.x
  • Ubuntu Server 14.04 or greater

Versions

Apache HTTP Server 2.4

Use Cases

  • Single installation with no configuration.
  • Single installation with SSL and Proxy configuration

Platform Pre-Requisites

  • Linux YUM Repository - An onsite linux YUM Repsoitory is required.

Requirements

Platform:

  • Redhat
  • Ubuntu

Cookbooks:

  • ibm_cloud_utils

Attributes

Attribute Description Default
node['httpd']['conf_file_mode'] OS Permisssions of confguration files 0640
node['httpd']['custom_log'] Name of the custom log, for the standard virtual host. access_log
node['httpd']['custom_log_format'] Directory of log to be configured in HTTP server combined
node['httpd']['data_dir_mode'] OS Permisssions of data folders 0750
node['httpd']['directory_index'] Enable or Disable directory listing index.html info.php
node['httpd']['document_root'] File System Location of the Document Root
node['httpd']['enable_MMAP'] HTTP Server enable_MMAP off
node['httpd']['enable_send_file'] HTTP Server enable_send_file off
node['httpd']['error_log'] Name of the error log, for the standard virtual host. error_log
node['httpd']['hostname_lookups'] HTTP Server hostname_lookups Off
node['httpd']['httpd_home'] Directory of the HTTP Server Process.
node['httpd']['install_dir'] Directory where HTTP Server will be installed
node['httpd']['keep_alive'] HTTP Server TCP Keep alive Off
node['httpd']['keep_alive_timeout'] HTTP Server keep_alive_timeout 15
node['httpd']['listen'] Listening port to be configured in HTTP server 80
node['httpd']['log_dir'] Directory where HTTP Server logs will be sent
node['httpd']['log_level'] Log levels of the http process warn
node['httpd']['max_keep_alive_requests'] HTTP Server max_keep_alive_requests 100
node['httpd']['os_users']['daemon']['comment'] HTTP Server daemon comment HTTP Server daemon user
node['httpd']['os_users']['daemon']['gid'] HTTP Server daemon gid apache
node['httpd']['os_users']['daemon']['home'] HTTP Server daemon home
node['httpd']['os_users']['daemon']['ldap_user'] HTTP Server daemon ldap_user false
node['httpd']['os_users']['daemon']['name'] HTTP Server daemon name apache
node['httpd']['os_users']['daemon']['shell'] HTTP Server daemon shell /sbin/nologin
node['httpd']['os_users']['web_content_owner']['comment'] Comment, describing the User purpose httpd daemon user
node['httpd']['os_users']['web_content_owner']['gid'] Group ID of web content owner to be configured in HTTP server apache
node['httpd']['os_users']['web_content_owner']['home'] Home directory of web content owner to be configured in HTTP server /home/webmaster
node['httpd']['os_users']['web_content_owner']['ldap_user'] Use LDAP to authenticate Web Content Owner account on Linux HTTP server as well as web site logins false
node['httpd']['os_users']['web_content_owner']['name'] User ID of web content owner to be configured in HTTP server webmaster
node['httpd']['os_users']['web_content_owner']['shell'] Default shell configured on Linux server /bin/bash
node['httpd']['php_mod_enabled'] Enable PHP in Apache on Linux by Loading the Module true
node['httpd']['prefork_max_clients'] HTTP Server prefork_max_clients 256
node['httpd']['prefork_max_requests_per_child'] HTTP Server prefork_max_requests_per_child 4000
node['httpd']['prefork_max_spare_servers'] HTTP Server prefork_max_spare_servers 20
node['httpd']['prefork_min_spare_servers'] HTTP Server prefork_min_spare_servers 5
node['httpd']['prefork_server_limit'] HTTP Server prefork_server_limit 256
node['httpd']['prefork_start_servers'] HTTP Server prefork_start_servers 8
node['httpd']['proxy']['ProxyPreserveHost'] Instruct the reverse proxy to preserve original host header from the client browser On
node['httpd']['proxy']['rules']['ProxyPass']['path'] HTTP Server ProxyPass path /sw/
node['httpd']['proxy']['rules']['ProxyPass']['url'] HTTP Server ProxyPass url http://localhost
node['httpd']['proxy']['rules']['ProxyPassReverse']['path'] HTTP Server ProxyPassReverse path /sw/
node['httpd']['proxy']['rules']['ProxyPassReverse']['url'] HTTP Server ProxyPassReverse url http://localhost
node['httpd']['server_admin'] Email Address of the Webmaster webmaster@localhost
node['httpd']['server_name'] The Name of the HTTP Server, normally the FQDN of server.
node['httpd']['server_root'] httpd server_root
node['httpd']['service_name'] Name the HTTP Server process will run as
node['httpd']['ssl']['https_port'] Secure Port for the HTTP Server 443
node['httpd']['ssl']['install_mod_ssl'] Enable SSL within HTTP Server Configuration true
node['httpd']['ssl']['sslcompression'] Enable SSL compression within HTTP Server Configuration Off
node['httpd']['ssl']['sslproxycacertificatefile'] SSL proxy Certificate file name PleaseProvide
node['httpd']['ssl']['sslproxycacertificatepath'] SSL proxy Certificate file path PleaseProvide
node['httpd']['ssl']['sslproxycarevocationcheck'] SSL proxy CA revocation check PleaseProvide
node['httpd']['ssl']['sslproxycarevocationfile'] SSL proxy CA revocation file PleaseProvide
node['httpd']['timeout'] httpd timeout off
node['httpd']['use_canonical_name'] Should the HTTP Server use the canonical hostname Off
node['httpd']['version'] Version of HTTP Server to be installed. 2.4
node['httpd']['vhosts_enabled'] Allow to configure virtual hosts to run multiple websites on the same HTTP server true
node['httpd']['virtualhosts']['default_http_server']['custom_log'] Location of the HTTP Server Custom Log
node['httpd']['virtualhosts']['default_http_server']['custom_log_format'] Log Format of the Custom Log combined
node['httpd']['virtualhosts']['default_http_server']['document_root'] Location of the Default Docuement Root
node['httpd']['virtualhosts']['default_http_server']['error_log'] Location of the HTTP Server Error Log
node['httpd']['virtualhosts']['default_http_server']['global_ssl_config'] Use default global configuration for HTTP communication in HTTP server true
node['httpd']['virtualhosts']['default_http_server']['log_dir']
node['httpd']['virtualhosts']['default_http_server']['proxy_enabled'] Enable proxy usage for virtual host for HTTP Communication in HTTP server false
node['httpd']['virtualhosts']['default_http_server']['server_admin'] Email address of the Server Admin
node['httpd']['virtualhosts']['default_http_server']['server_name'] Vhost server name for directing requests
node['httpd']['virtualhosts']['default_http_server']['ssl_enabled'] Enable SSL for virtual host for HTTPS communication in HTTP server false
node['httpd']['virtualhosts']['default_http_server']['vhost_listen'] Listening port configured in virtual host for HTTP communication in HTTP server 80
node['httpd']['virtualhosts']['default_http_server']['vhost_type'] Allow to configure virtual hosts to run multiple websites on the same HTTP server name_based
node['httpd']['virtualhosts']['default_https_server']['custom_log'] HTTPS Virtual host custom log dir
node['httpd']['virtualhosts']['default_https_server']['custom_log_format'] HTTPS Virtual host custom log format combined
node['httpd']['virtualhosts']['default_https_server']['document_root'] HTTPS virtual host document root
node['httpd']['virtualhosts']['default_https_server']['error_log'] HTTPS Virtual host error log dir
node['httpd']['virtualhosts']['default_https_server']['global_ssl_config'] Use default global configuration for HTTPS communication in HTTP server true
node['httpd']['virtualhosts']['default_https_server']['log_dir'] HTTPS virtual host log dir
node['httpd']['virtualhosts']['default_https_server']['proxy_enabled'] Enable proxy configuration true
node['httpd']['virtualhosts']['default_https_server']['server_admin'] HTTPS Virtual host server admin
node['httpd']['virtualhosts']['default_https_server']['server_name'] HTTPS Virtual host server name for directing requests
node['httpd']['virtualhosts']['default_https_server']['ssl_enabled'] HTTPS - Enable SSL for virtual host for HTTP communication in HTTP server true
node['httpd']['virtualhosts']['default_https_server']['vhost_listen'] Listening port configured in virtual host for HTTPS communication in HTTP server 443
node['httpd']['virtualhosts']['default_https_server']['vhost_type'] Specify type of virtual host for HTTPS communication in HTTPS server name_based
node['httpd']['worker_max_clients'] HTTP Server worker_max_clients 25
node['httpd']['worker_max_requests_per_child'] HTTP Server worker_max_requests_per_child 0
node['httpd']['worker_max_spare_servers'] HTTP Server worker_max_spare_servers 25
node['httpd']['worker_min_spare_servers'] HTTP Server worker_min_spare_servers 300
node['httpd']['worker_server_limit'] HTTP Server worker_server_limit 75
node['httpd']['worker_start_servers'] HTTP Server worker_start_servers 4

Recipes

httpd::cleanup.rb

Cleanup recipe (cleanup.rb) Perform post-install cleanup

httpd::config_httpd_conf.rb

Configure httpd server recipe (config_httpd_conf.rb) Setup the main server configuration file

httpd::config_ssl.rb

SSL configuration recipe (config_proxy.rb) Install mod_ssl, create SSL configuration file, create certificates

httpd::config_vhosts.rb

vhost configuration recipe (config_vhost.rb) Create vhost configuration file

httpd::default.rb

Default recipe (default.rb) The default recipe for the cookbook. It is recommended to not use the default recipe, but explicitly specify a run_list for the deployment node.

httpd::gather_evidence.rb

Gather evidence recipe (gather_evidence.rb) Gather evidence that installation was successful

httpd::install.rb

Installation recipe (install.rb) Perform an installation of selected httpd package on the target node.

httpd::prereq.rb

Prerequisites recipe (prereq.rb) Perform prerequisite tasks.

httpd::service.rb

Service control recipe (service.rb) Enable and start the httpd service

License and Author

Author:: IBM Corp (<>)

Copyright:: 2018, IBM Corp

License:: Copyright IBM Corp. 2016, 2018