Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F8391804
README.markdown
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
3 KB
Subscribers
None
README.markdown
View Options
# NGINX Module
[
](https://travis-ci.org/jfryman/puppet-nginx)
James Fryman <james@frymanet.com>
This module manages NGINX configuration.
## Quick Start
### Install and bootstrap an NGINX instance
```puppet
class
{
'nginx'
:
}
```
### Setup a new virtual host
```puppet
nginx
::
resource
::
vhost
{
'www.puppetlabs.com'
:
ensure
=>
present
,
www_root
=>
'/var/www/www.puppetlabs.com'
,
}
```
### Add a Proxy Server
```puppet
nginx
::
resource
::
upstream
{
'puppet_rack_app'
:
ensure
=>
present
,
members
=>
[
'localhost:3000'
,
'localhost:3001'
,
'localhost:3002'
,
],
}
nginx
::
resource
::
vhost
{
'rack.puppetlabs.com'
:
ensure
=>
present
,
proxy
=>
'http://puppet_rack_app'
,
}
```
### Add a smtp proxy
```puppet
class
{
'nginx'
:
mail
=>
true
,
}
nginx
::
resource
::
mailhost
{
'domain1.example'
:
ensure
=>
present
,
auth_http
=>
'server2.example/cgi-bin/auth'
,
protocol
=>
'smtp'
,
listen_port
=>
587
,
ssl_port
=>
465
,
starttls
=>
'only'
,
xclient
=>
'off'
,
ssl
=>
'true'
,
ssl_cert
=>
'/tmp/server.crt'
,
ssl_key
=>
'/tmp/server.pem'
,
}
```
## Hiera Support
Defining nginx resources in Hiera.
```yaml
nginx::nginx_upstreams
:
'puppet_rack_app'
:
ensure
:
present
members
:
-
localhost:3000
-
localhost:3001
-
localhost:3002
nginx::nginx_vhosts
:
'www.puppetlabs.com'
:
www_root
:
'/var/www/www.puppetlabs.com'
'rack.puppetlabs.com'
:
ensure
:
present
proxy
:
'http://puppet_rack_app'
nginx::nginx_locations
:
'static'
:
location
:
'~
"^/static/[0-9a-fA-F]{8}\/(.*)$"'
vhost
:
www.puppetlabs.com
'userContent'
:
location
:
/userContent
vhost
:
www.puppetlabs.com
www_root
:
/var/www/html
```
## Nginx with precompiled Passenger
Currently this works only for Debian family.
class { 'nginx':
package_source => 'passenger',
http_cfg_append => {
'passenger_root' => '/usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini',
}
}
Package source
`passenger`
will add [
Phusion Passenger repository
](
https://oss-binaries.phusionpassenger.com/apt/passenger
) to APT sources.
For each virtual host you should specify which ruby should be used.
vhost_cfg_append => {
'passenger_enabled' => 'on',
'passenger_ruby' => '/usr/bin/ruby'
}
### Puppet master served by Nginx and Passenger
Virtual host config for serving puppet master:
nginx::resource::vhost { 'puppet':
ensure => present,
server_name => ['puppet'],
listen_port => 8140,
ssl => true,
ssl_cert => '/var/lib/puppet/ssl/certs/example.com.pem',
ssl_key => '/var/lib/puppet/ssl/private_keys/example.com.pem',
ssl_port => 8140,
ssl_cache => 'shared:SSL:128m',
ssl_ciphers => 'SSLv2:-LOW:-EXPORT:RC4+RSA',
vhost_cfg_append => {
'passenger_enabled' => 'on',
'passenger_ruby' => '/usr/bin/ruby',
'ssl_crl' => '/var/lib/puppet/ssl/ca/ca_crl.pem',
'ssl_client_certificate' => '/var/lib/puppet/ssl/certs/ca.pem',
'ssl_verify_client' => 'optional',
'ssl_verify_depth' => 1,
},
www_root => '/etc/puppet/rack/public',
use_default_location => false,
access_log => '/var/log/nginx/puppet_access.log',
error_log => '/var/log/nginx/puppet_error.log',
passenger_cgi_param => {
'SSL_CLIENT_S_DN' => '$ssl_client_s_dn',
'SSL_CLIENT_VERIFY' => '$ssl_client_verify',
},
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Jun 4 2025, 6:50 PM (13 w, 2 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3398812
Attached To
rSPNGX Puppet NGINX management module
Event Timeline
Log In to Comment