« Back
read.

Cookbook for NGINX.

https://github.com/bloomberg/nginx-cookbook/

Nginx Cookbook

License

Application cookbook which installs and configures the nginx monitoring daemon. Currently it defaults to ubuntu.

Usage

Supports

  • Ubuntu

Currently this does not support sentinal but it will in due time.

Attributes

All nginx default shipped settings are built directly into the resource and most if not all have default settings attached(same that come packaged with nginx). You can view all default settings/attributes here Nginx Service Nginx Site Nginx Module.

Resources/Providers

nginx_service

This provider will setup install and setup nginx. It will not configure any sites just the service and default nginx.conf.

nginx_service "example"  

If you would like additional settings outside of the basic attributes listed here Nginx Service you would add them with the same syntax below:

nginx_service "www" do  
  additional_options do
    option1 'value1'
    option2 'value2'
  end
end  

You also have the ability your own nginx.conf entirely by specifying the source option:

nginx_service "www" do  
  source "somefile.erb"
end  

nginx_site

This provider will create and enable(symbolic link to sites-enabled) by default for all nginx sites specified in the block. Ideally you will always pass a servername otherwise the default is example.com:

nginx_site "wwww" do  
  servername "www.company.com"
  notifies :restart, "nginx_service[#{instance}]", :immediately # This will work only when the site instance name and service instance name are alike. 
end  

If you would like additional settings outside of the basic attributes listed here Nginx Site you would add them with the same syntax below:

nginx_site "www" do  
  servername "www.company.com"
  additional_options do
    option1 'value1'
    option2 'value2'
  end
end  

You can also enable SSL and/or force redirect for anything listening on 80:

nginx_site "www" do  
  servername "www.company.com"
  enable_ssl true
  ssl_force_redirect true
end  

If you would like to add additional SSL options only that won't be apart of the main http service you can use ssl_additional_options block.

Last but not least you can also bring your own config file and do whatever you like with that.

nginx_site "www" do  
  source "www.company.com.erb"
end  

nginx_module

This provider will give you the ability to setup the config for a module. If the module needs to be pulled down from the internet or installed somehow you will need to add that code. The default erb template is simple and just accepts a hash. You will likely want to pass it a source other than my empty one. However you can view the options in the library file. Nginx Module.

nginx_module "new-module" do  
  module_config do
    option1 'value1'
    option2 'value2'
  end
end  

License & Authors

Copyright 2015 Bloomberg Finance L.P.

Licensed under the Apache License, Version 2.0 (the "License");  
you may not use this file except in compliance with the License.  
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software  
distributed under the License is distributed on an "AS IS" BASIS,  
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  
See the License for the specific language governing permissions and  
limitations under the License.  
comments powered by Disqus