Skip to content

bitpusherllc/nginx_simplecgi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NginxSimpleCGI

This cookbook provides CGI support for NGINX via SimpleCGI.

Requirements

Platform:

  • Debian
  • Ubuntu 10.04+
  • RHEL based platforms (CentOS, Redhat, etc)

Cookbooks

  • nginx
  • perl
  • runit
  • bluepill
  • yum-epel (suggested in metadata, but required for RHEL platforms)

Usage

Attributes

  • node[:nginx_simplecgi][:cgi] -> Enable CGI dispatch
  • node[:nginx_simplecgi][:php] -> Enable PHP dispatch
  • node[:nginx_simplecgi][:php_cgi_bin] -> PHP executable path for CGI
  • node[:nginx_simplecgi][:init_type] -> Init style for dispatchers
  • node[:nginx_simplecgi][:dispatcher_directory] -> Directory to contain socket and pid files
  • node[:nginx_simplecgi][:dispatcher_processes] -> Number of dispatcher processes for handling requests

Template Helper

A template method helper, dispatch is provided to add the require location block into your nginx configuration files:

<%= nginx_dispatch(:cgi) %>

The default call will output:

  location ~ ^/cgi-bin/.*\.cgi$ {
    gzip off; 
    fastcgi_pass  unix:/var/run/nginx/cgiwrap-dispatch.sock;
    fastcgi_index index.cgi;
    fastcgi_param SCRIPT_FILENAME /usr/lib$fastcgi_script_name;
    fastcgi_param QUERY_STRING     $query_string;
    fastcgi_param REQUEST_METHOD   $request_method;
    fastcgi_param CONTENT_TYPE     $content_type;
    fastcgi_param CONTENT_LENGTH   $content_length;
    fastcgi_param GATEWAY_INTERFACE  CGI/1.1;
    fastcgi_param SERVER_SOFTWARE    nginx;
    fastcgi_param SCRIPT_NAME        $fastcgi_script_name;
    fastcgi_param REQUEST_URI        $request_uri;
    fastcgi_param DOCUMENT_URI       $document_uri;
    fastcgi_param DOCUMENT_ROOT      $document_root;
    fastcgi_param SERVER_PROTOCOL    $server_protocol;
    fastcgi_param REMOTE_ADDR        $remote_addr;
    fastcgi_param REMOTE_PORT        $remote_port;
    fastcgi_param SERVER_ADDR        $server_addr;
    fastcgi_param SERVER_PORT        $server_port;
    fastcgi_param SERVER_NAME        $server_name;
  }

Available options:

  • :pattern -> change the pattern nginx matches
  • :cgi_bin_dir -> change the prefix directory of the local cgi-bin
  • :dispatcher -> use a custom dispatcher (socket or tcp based)
  • :custom -> string to be appended within the location block

The method will also accept a block that will be eval'd and the result appended within the location block.

License and Author

Author:: Chris Roberts (chrisroberts.code@gmail.com)

Copyright:: Chris Roberts

Repository:: https://github.com/heavywater/chef-nginx_simplecgi

License:: Apache 2.0

About

snapshot of loupgaroublond/nginx_simplecgi

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 7