Changeset View
Changeset View
Standalone View
Standalone View
site-modules/profile/manifests/nginx.pp
# Deployment of nginx as a reverse proxy for Software Heritage RPC servers | # Deployment of nginx as a reverse proxy for Software Heritage RPC servers | ||||
class profile::nginx { | class profile::nginx { | ||||
$accept_mutex = lookup('nginx::accept_mutex') | $accept_mutex = lookup('nginx::accept_mutex') | ||||
$package_name = lookup('nginx::package_name') | $package_name = lookup('nginx::package_name') | ||||
$names_hash_bucket_size = lookup('nginx::names_hash_bucket_size') | $names_hash_bucket_size = lookup('nginx::names_hash_bucket_size') | ||||
$names_hash_max_size = lookup('nginx::names_hash_max_size') | $names_hash_max_size = lookup('nginx::names_hash_max_size') | ||||
$worker_processes = lookup('nginx::worker_processes') | $worker_processes = lookup('nginx::worker_processes') | ||||
$metrics_port = lookup('nginx::metrics_port') | |||||
$metrics_location = lookup('nginx::metrics_location') | |||||
if $worker_processes != 'auto' { | if $worker_processes != 'auto' { | ||||
$actual_worker_processes = $worker_processes + 0 | $actual_worker_processes = $worker_processes + 0 | ||||
} else { | } else { | ||||
$actual_worker_processes = 'auto' | $actual_worker_processes = 'auto' | ||||
} | } | ||||
class {'::nginx': | class {'::nginx': | ||||
package_name => $package_name, | package_name => $package_name, | ||||
manage_repo => false, | manage_repo => false, | ||||
accept_mutex => $accept_mutex, | accept_mutex => $accept_mutex, | ||||
names_hash_bucket_size => $names_hash_bucket_size, | names_hash_bucket_size => $names_hash_bucket_size, | ||||
names_hash_max_size => $names_hash_max_size, | names_hash_max_size => $names_hash_max_size, | ||||
worker_processes => $actual_worker_processes, | worker_processes => $actual_worker_processes, | ||||
} | } | ||||
::nginx::resource::map {'error_status': | ::nginx::resource::map {'error_status': | ||||
ensure => present, | ensure => present, | ||||
string => "\$status", | string => "\$status", | ||||
default => '1', | default => '1', | ||||
mappings => { | mappings => { | ||||
'~^[23]' => '0', | '~^[23]' => '0', | ||||
'404' => '0', | '404' => '0', | ||||
} | } | ||||
} | } | ||||
# metrics vhosts | |||||
::nginx::resource::server {'nginx-metrics': | |||||
ensure => present, | |||||
listen_ip => '127.0.0.1', | |||||
listen_port => $metrics_port, | |||||
listen_options => 'deferred', | |||||
server_name => [ '127.0.0.1', 'localhost' ], | |||||
format_log => 'combined', | |||||
locations => { $metrics_location => { 'stub_status' => true }}, | |||||
} | |||||
include profile::prometheus::nginx | |||||
} | } |