define nginx::site::config( $server_name = $name, $ensure = present, $source = 'template', $template = 'site', $backend = 'weblocal', $aliases = "*.${name}", $cache = false, $cache_levels = '1:2', $cache_size = '10m', $cache_inactive = '600s', $cache_max_size = '1m', $x_frame_options = 'DENY', ){ case $source { 'file': { file { "/etc/nginx/sites-available/$name": source => $ensure ? { 'present' => "puppet:///modules/site_nginx/$name", default => undef, }, owner => "root", group => "root", mode => '0644', ensure => $ensure, notify => Service["nginx"], require => File["/etc/nginx/sites-available"], } } 'template': { file { "/etc/nginx/sites-available/$name": content => template("nginx/${template}.erb"), owner => "root", group => "root", mode => '0644', ensure => $ensure, notify => Service["nginx"], require => File["/etc/nginx/sites-available"], } } 'none': { file { "/etc/nginx/sites-available/$name": owner => "root", group => "root", mode => '0644', ensure => $ensure, notify => Service["nginx"], require => File["/etc/nginx/sites-available"], } } } $link = $ensure ? { present => "/etc/nginx/sites-available/$name", default => absent, } # Symlink to enable proxy configuration file { "/etc/nginx/sites-enabled/$name": ensure => $link, require => File["/etc/nginx/sites-enabled"], notify => Service["nginx"], } }