params.pp 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. # Class: nginx::param
  2. #
  3. # This module manages NGINX paramaters
  4. #
  5. # Parameters:
  6. #
  7. # There are no default parameters for this class.
  8. #
  9. # Actions:
  10. #
  11. # Requires:
  12. #
  13. # Sample Usage:
  14. #
  15. # This class file is not called directly
  16. class nginx::params {
  17. $nx_temp_dir = '/tmp'
  18. $nx_run_dir = '/var/nginx'
  19. $nx_conf_template = 'nginx/conf.d/nginx.conf.erb'
  20. $nx_proxy_conf_template = 'nginx/conf.d/proxy.conf.erb'
  21. $nx_confd_purge = false
  22. $nx_vhost_purge = false
  23. $nx_worker_processes = 1
  24. $nx_worker_connections = 1024
  25. $nx_worker_rlimit_nofile = 1024
  26. $nx_types_hash_max_size = 1024
  27. $nx_types_hash_bucket_size = 512
  28. $nx_names_hash_bucket_size = 64
  29. $nx_names_hash_max_size = 512
  30. $nx_multi_accept = off
  31. # One of [kqueue|rtsig|epoll|/dev/poll|select|poll|eventport]
  32. # or false to use OS default
  33. $nx_events_use = false
  34. $nx_sendfile = on
  35. $nx_keepalive_timeout = 65
  36. $nx_tcp_nodelay = on
  37. $nx_gzip = on
  38. $nx_server_tokens = on
  39. $nx_spdy = off
  40. $nx_ssl_stapling = off
  41. $nx_proxy_redirect = off
  42. $nx_proxy_set_header = [
  43. 'Host $host',
  44. 'X-Real-IP $remote_addr',
  45. 'X-Forwarded-For $proxy_add_x_forwarded_for',
  46. ]
  47. $nx_proxy_cache_path = false
  48. $nx_proxy_cache_levels = 1
  49. $nx_proxy_cache_keys_zone = 'd2:100m'
  50. $nx_proxy_cache_max_size = '500m'
  51. $nx_proxy_cache_inactive = '20m'
  52. $nx_fastcgi_cache_path = false
  53. $nx_fastcgi_cache_levels = 1
  54. $nx_fastcgi_cache_keys_zone = 'd3:100m'
  55. $nx_fastcgi_cache_max_size = '500m'
  56. $nx_fastcgi_cache_inactive = '20m'
  57. $nx_fastcgi_cache_key = false
  58. $nx_fastcgi_cache_use_stale = false
  59. $nx_client_body_temp_path = "${nx_run_dir}/client_body_temp"
  60. $nx_client_body_buffer_size = '128k'
  61. $nx_client_max_body_size = '10m'
  62. $nx_proxy_temp_path = "${nx_run_dir}/proxy_temp"
  63. $nx_proxy_connect_timeout = '90'
  64. $nx_proxy_send_timeout = '90'
  65. $nx_proxy_read_timeout = '90'
  66. $nx_proxy_buffers = '32 4k'
  67. $nx_proxy_http_version = '1.0'
  68. $nx_proxy_buffer_size = '8k'
  69. $nx_proxy_headers_hash_bucket_size = '64'
  70. $nx_logdir = $::kernel ? {
  71. /(?i-mx:linux)/ => '/var/log/nginx',
  72. /(?i-mx:sunos)/ => '/var/log/nginx',
  73. }
  74. $nx_pid = $::kernel ? {
  75. /(?i-mx:linux)/ => $::osfamily ? {
  76. # archlinux has hardcoded pid in service file to /run/nginx.pid, setting
  77. # it will prevent nginx from starting
  78. /(?i-mx:archlinux)/ => false,
  79. default => '/var/run/nginx.pid',
  80. },
  81. /(?i-mx:sunos)/ => '/var/run/nginx.pid',
  82. }
  83. $nx_conf_dir = $::kernelversion ? {
  84. /(?i-mx:joyent)/ => '/opt/local/etc/nginx',
  85. default => '/etc/nginx',
  86. }
  87. if $::osfamily {
  88. $solaris_nx_daemon_user = $::kernelversion ? {
  89. /(?i-mx:joyent)/ => 'www',
  90. default => 'webservd',
  91. }
  92. $nx_daemon_user = $::osfamily ? {
  93. /(?i-mx:archlinux)/ => 'http',
  94. /(?i-mx:redhat|suse|gentoo|linux)/ => 'nginx',
  95. /(?i-mx:debian)/ => 'www-data',
  96. /(?i-mx:solaris)/ => $solaris_nx_daemon_user,
  97. }
  98. } else {
  99. warning('$::osfamily not defined. Support for $::operatingsystem is deprecated')
  100. warning("Please upgrade from facter ${::facterversion} to >= 1.7.2")
  101. $nx_daemon_user = $::operatingsystem ? {
  102. /(?i-mx:archlinux)/ => 'http',
  103. /(?i-mx:debian|ubuntu)/ => 'www-data',
  104. /(?i-mx:fedora|rhel|redhat|centos|scientific|suse|opensuse|amazon|gentoo|oraclelinux)/ => 'nginx',
  105. /(?i-mx:solaris)/ => 'webservd',
  106. }
  107. }
  108. # Nginx is default launched as root if not change this parameter
  109. $nx_super_user = true
  110. # Service restart after Nginx 0.7.53 could also be just
  111. # "/path/to/nginx/bin -s HUP" Some init scripts do a configtest, some don't.
  112. # If configtest_enable it's true then service restart will take
  113. # $nx_service_restart value, forcing configtest.
  114. $nx_configtest_enable = false
  115. $nx_service_restart = '/etc/init.d/nginx configtest && /etc/init.d/nginx restart'
  116. $nx_service_ensure = running
  117. $nx_mail = false
  118. $nx_http_cfg_append = false
  119. $nx_nginx_error_log = "${nx_logdir}/error.log"
  120. $nx_http_access_log = "${nx_logdir}/access.log"
  121. # package name depends on distribution, e.g. for Debian nginx-full | nginx-light
  122. $package_name = 'nginx'
  123. $package_ensure = 'present'
  124. $package_source = 'nginx'
  125. $manage_repo = true
  126. }