add nginx
This commit is contained in:
parent
74e3fd9db1
commit
b2c4e2808f
@ -13,7 +13,10 @@ end
|
||||
Capistrano::Configuration.instance.load do
|
||||
_cset(:puppet_dir) { '/tmp/puppet' }
|
||||
_cset(:additional_puppet_bin_path) { nil }
|
||||
|
||||
_cset(:base_dir) { '/usr/local' }
|
||||
_cset(:src_dir) { '/usr/src' }
|
||||
|
||||
_cset(:rename_server) { true }
|
||||
_cset(:use_sudo) { true }
|
||||
_cset(:additional_modules) { [] }
|
||||
@ -24,6 +27,16 @@ Capistrano::Configuration.instance.load do
|
||||
use_sudo ? "sudo -p 'sudo password: '" : ""
|
||||
end
|
||||
|
||||
desc "Clear specified source directories"
|
||||
task :clear_source do
|
||||
run "cd #{src_dir} && #{sudo} rm -Rf #{sources}"
|
||||
end
|
||||
|
||||
desc "Clear specified apps"
|
||||
task :clear_apps do
|
||||
run "cd #{base_dir} && #{sudo} rm -Rf #{apps}"
|
||||
end
|
||||
|
||||
desc "Apply the configuration"
|
||||
task :apply do
|
||||
top.copy
|
||||
|
70
shared/additional-modules/nginx/manifests/init.pp
Normal file
70
shared/additional-modules/nginx/manifests/init.pp
Normal file
@ -0,0 +1,70 @@
|
||||
class nginx($version) {
|
||||
gem { 'passenger':
|
||||
version => $version,
|
||||
path => "${ruby::with_ruby_path}",
|
||||
require => Build_and_install['ruby'],
|
||||
ensure => present
|
||||
}
|
||||
|
||||
$install_path = install_path($name, $version)
|
||||
$symlink_path = symlink_path($name)
|
||||
|
||||
exec { 'install-passenger':
|
||||
command => "passenger-install-nginx-module --auto --auto-download --prefix=${install_path}",
|
||||
path => $ruby::with_ruby_path,
|
||||
require => Gem['passenger'],
|
||||
unless => "test -d ${install_path}",
|
||||
timeout => 0,
|
||||
logoutput => on_failure
|
||||
}
|
||||
|
||||
$pid_file = pid_path($name)
|
||||
$sbin_path = sbin_path($name)
|
||||
|
||||
$config_file = "${base::config_path}/nginx.conf"
|
||||
$config_path = "${base::config_path}/nginx"
|
||||
|
||||
god_init { $name:
|
||||
start => "${sbin_path}/nginx -c ${config_file}",
|
||||
stop => "${sbin_path}/nginx -s stop -c ${config_file}",
|
||||
pid_file => $pid_file,
|
||||
ensure => present,
|
||||
notify => Service['god'],
|
||||
require => Exec['install-passenger']
|
||||
}
|
||||
|
||||
file { [ '/var/log/nginx', $config_path ]:
|
||||
ensure => directory,
|
||||
before => God_init[$name]
|
||||
}
|
||||
|
||||
file { [ "${config_path}/sites-available", "${config_path}/sites-enabled" ]:
|
||||
ensure => directory,
|
||||
require => File[$config_path],
|
||||
}
|
||||
|
||||
file { $config_file:
|
||||
content => template('nginx/nginx.conf'),
|
||||
before => God_init[$name]
|
||||
}
|
||||
|
||||
file { "${config_path}/fastcgi.conf":
|
||||
content => template('nginx/fastcgi.conf'),
|
||||
require => File[$config_file]
|
||||
}
|
||||
|
||||
file { "${config_path}/fastcgi_params":
|
||||
content => template('nginx/fastcgi_params'),
|
||||
require => File[$config_file]
|
||||
}
|
||||
|
||||
file { '/var/www': ensure => directory }
|
||||
|
||||
file { $symlink_path: ensure => $install_path }
|
||||
|
||||
file { "${base::install_path}/bin/new-site":
|
||||
content => template('nginx/new-site'),
|
||||
mode => 755
|
||||
}
|
||||
}
|
||||
|
8
shared/additional-modules/nginx/templates/fastcgi.conf
Normal file
8
shared/additional-modules/nginx/templates/fastcgi.conf
Normal file
@ -0,0 +1,8 @@
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
include /etc/nginx/fastcgi_params;
|
||||
fastcgi_buffers 256 4k;
|
||||
fastcgi_intercept_errors on;
|
||||
## allow 4 hrs - pass timeout responsibility to upstrea
|
||||
fastcgi_read_timeout 14400;
|
||||
fastcgi_index index.php;
|
||||
|
22
shared/additional-modules/nginx/templates/fastcgi_params
Normal file
22
shared/additional-modules/nginx/templates/fastcgi_params
Normal file
@ -0,0 +1,22 @@
|
||||
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 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 GATEWAY_INTERFACE CGI/1.1;
|
||||
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
|
||||
|
||||
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;
|
||||
|
||||
# PHP only, required if PHP was built with --enable-force-cgi-redirect
|
||||
fastcgi_param REDIRECT_STATUS 200;
|
12
shared/additional-modules/nginx/templates/new-site
Normal file
12
shared/additional-modules/nginx/templates/new-site
Normal file
@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ $UID -ne 0 ]; then
|
||||
sudo $0 $@
|
||||
exit
|
||||
fi
|
||||
|
||||
cd /var/www
|
||||
mkdir $1
|
||||
chown :www-data $1
|
||||
chmod 2775 $1
|
||||
|
38
shared/additional-modules/nginx/templates/nginx.conf
Normal file
38
shared/additional-modules/nginx/templates/nginx.conf
Normal file
@ -0,0 +1,38 @@
|
||||
user www-data;
|
||||
worker_processes 4;
|
||||
|
||||
error_log /var/log/nginx/error.log;
|
||||
pid <%= pid_file %>;
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
}
|
||||
|
||||
http {
|
||||
include /usr/local/nginx/conf/mime.types;
|
||||
default_type application/octet-stream;
|
||||
|
||||
upstream php {
|
||||
server unix:/tmp/php-cgi.socket;
|
||||
server 127.0.0.1:9000;
|
||||
}
|
||||
|
||||
access_log /var/log/nginx/access.log;
|
||||
|
||||
sendfile on;
|
||||
#tcp_nopush on;
|
||||
|
||||
#keepalive_timeout 0;
|
||||
keepalive_timeout 65;
|
||||
tcp_nodelay on;
|
||||
|
||||
gzip on;
|
||||
gzip_comp_level 2;
|
||||
gzip_proxied any;
|
||||
gzip_types text/plain text/html text/css application/x-javascript text/xml
|
||||
application/xml application/xml+rss text/javascript;
|
||||
|
||||
include /etc/nginx/fastcgi.conf;
|
||||
include /etc/nginx/sites-enabled/*;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user