Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
slapos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Xiaohe Cao
slapos
Commits
5126cc65
Commit
5126cc65
authored
Jun 18, 2012
by
Rafael Monnerat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added recipe for nginx
Inspired by the work of Thomas Lechauve for html5as
parent
09b5e203
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
292 additions
and
0 deletions
+292
-0
setup.py
setup.py
+1
-0
slapos/recipe/nginx/__init__.py
slapos/recipe/nginx/__init__.py
+122
-0
slapos/recipe/nginx/template/mime_types.in
slapos/recipe/nginx/template/mime_types.in
+79
-0
slapos/recipe/nginx/template/nginx_conf.in
slapos/recipe/nginx/template/nginx_conf.in
+72
-0
slapos/recipe/nginx/template/php.ini.in
slapos/recipe/nginx/template/php.ini.in
+18
-0
No files found.
setup.py
View file @
5126cc65
...
...
@@ -83,6 +83,7 @@ setup(name=name,
'mydumper = slapos.recipe.mydumper:Recipe'
,
'generic.mysql = slapos.recipe.generic_mysql:Recipe'
,
'mkdirectory = slapos.recipe.mkdirectory:Recipe'
,
'nginx = slapos.recipe.nginx:Recipe'
,
'nosqltestbed = slapos.recipe.nosqltestbed:NoSQLTestBed'
,
'notifier = slapos.recipe.notifier:Recipe'
,
'notifier.callback = slapos.recipe.notifier:Callback'
,
...
...
slapos/recipe/nginx/__init__.py
0 → 100644
View file @
5126cc65
##############################################################################
#
# Copyright (c) 2012 Vifib SARL and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 3
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
from
slapos.recipe.librecipe
import
GenericBaseRecipe
import
binascii
import
os
import
sys
class
Recipe
(
GenericBaseRecipe
):
"""
nginx instance configuration.
"""
def
install
(
self
):
path_list
=
[]
config
=
dict
(
nb_workers
=
self
.
options
[
"nb_workers"
],
path_pid
=
self
.
options
[
"pid-file"
],
path_log
=
self
.
options
[
"log-file"
],
path_access_log
=
self
.
options
[
"access-log"
],
path_error_log
=
self
.
options
[
"error-log"
],
root
=
self
.
options
[
"nginx-root"
],
ip
=
self
.
options
[
"ip"
],
port
=
self
.
options
[
"port"
],
tmp
=
self
.
options
[
"tmp-dir"
],
index_page_id
=
self
.
options
.
get
(
"index-page-id"
,
"index.php"
),
php_cgi_address
=
self
.
options
[
"php-cgi-address"
]
)
# Configs
self
.
createFile
(
self
.
options
[
'config_file'
],
self
.
substituteTemplate
(
self
.
getTemplateFilename
(
'nginx_conf.in'
),
config
))
# Configs
self
.
createFile
(
self
.
options
[
'mime_path'
],
self
.
substituteTemplate
(
self
.
getTemplateFilename
(
'mime_types.in'
),
config
))
wrapper
=
self
.
createPythonScript
(
self
.
options
[
'wrapper'
],
'slapos.recipe.librecipe.execute.execute'
,
[
self
.
options
[
'nginx-binary'
],
'-c'
,
self
.
options
[
"config_file"
],
]
)
path_list
.
append
(
wrapper
)
# Install php.ini
php_ini
=
self
.
createFile
(
os
.
path
.
join
(
self
.
options
[
'php-ini-dir'
],
'php.ini'
),
self
.
substituteTemplate
(
self
.
getTemplateFilename
(
'php.ini.in'
),
dict
(
tmp_directory
=
self
.
options
[
'tmp-dir'
]))
)
path_list
.
append
(
php_ini
)
wrapper
=
self
.
createPythonScript
(
self
.
options
[
'php-cgi-wrapper'
],
'slapos.recipe.librecipe.execute.execute'
,
[
self
.
options
[
'php-cgi-binary'
],
'-b'
,
self
.
options
[
'php-cgi-address'
],
]
)
path_list
.
append
(
wrapper
)
secret_key_filename
=
os
.
path
.
join
(
self
.
buildout
[
'buildout'
][
'directory'
],
'.php_secret_key'
)
if
not
os
.
path
.
exists
(
secret_key_filename
):
secret_key
=
uuencode
(
os
.
urandom
(
45
)).
strip
()
# Remove unsafe characters
secret_key
=
secret_key
.
translate
(
None
,
'"
\
'
'
)
with
open
(
secret_key_filename
,
'w'
)
as
secret_key_file
:
secret_key_file
.
write
(
secret_key
)
else
:
with
open
(
secret_key_filename
,
'r'
)
as
secret_key_file
:
secret_key
=
secret_key_file
.
read
()
# Generate application configuration file
if
self
.
options
.
get
(
'template'
):
application_conf
=
dict
(
mysql_database
=
self
.
options
[
'mysql-database'
],
mysql_user
=
self
.
options
[
'mysql-username'
],
mysql_password
=
self
.
options
[
'mysql-password'
],
mysql_host
=
'%s:%s'
%
(
self
.
options
[
'mysql-host'
],
self
.
options
[
'mysql-port'
]),
secret_key
=
secret_key
,
)
directory
,
file_
=
os
.
path
.
split
(
self
.
options
[
'configuration'
])
path
=
self
.
options
[
'nginx-root'
]
if
directory
:
path
=
os
.
path
.
join
(
path
,
directory
)
if
not
os
.
path
.
exists
(
path
):
os
.
makedirs
(
path
)
if
not
os
.
path
.
isdir
(
path
):
raise
OSError
(
"Cannot create %r."
%
path
)
destination
=
os
.
path
.
join
(
path
,
file_
)
config
=
self
.
createFile
(
destination
,
self
.
substituteTemplate
(
self
.
options
[
'template'
],
application_conf
))
path_list
.
append
(
config
)
return
path_list
slapos/recipe/nginx/template/mime_types.in
0 → 100644
View file @
5126cc65
types {
text/html html htm shtml;
text/css css;
text/xml xml rss;
image/gif gif;
image/jpeg jpeg jpg;
application/x-javascript js;
application/atom+xml atom;
text/mathml mml;
text/plain txt;
text/vnd.sun.j2me.app-descriptor jad;
text/vnd.wap.wml wml;
text/x-component htc;
image/png png;
image/tiff tif tiff;
image/vnd.wap.wbmp wbmp;
image/x-icon ico;
image/x-jng jng;
image/x-ms-bmp bmp;
image/svg+xml svg svgz;
application/java-archive jar war ear;
application/mac-binhex40 hqx;
application/msword doc;
application/pdf pdf;
application/postscript ps eps ai;
application/rtf rtf;
application/vnd.ms-excel xls;
application/vnd.ms-powerpoint ppt;
application/vnd.wap.wmlc wmlc;
application/vnd.google-earth.kml+xml kml;
application/vnd.google-earth.kmz kmz;
application/x-7z-compressed 7z;
application/x-cocoa cco;
application/x-java-archive-diff jardiff;
application/x-java-jnlp-file jnlp;
application/x-makeself run;
application/x-perl pl pm;
application/x-pilot prc pdb;
application/x-rar-compressed rar;
application/x-redhat-package-manager rpm;
application/x-sea sea;
application/x-shockwave-flash swf;
application/x-stuffit sit;
application/x-tcl tcl tk;
application/x-x509-ca-cert der pem crt;
application/x-xpinstall xpi;
application/xhtml+xml xhtml;
application/zip zip;
application/octet-stream bin exe dll;
application/octet-stream deb;
application/octet-stream dmg;
application/octet-stream eot;
application/octet-stream iso img;
application/octet-stream msi msp msm;
application/ogg ogx;
audio/midi mid midi kar;
audio/mpeg mpga mpega mp2 mp3 m4a;
audio/ogg oga ogg spx;
audio/x-realaudio ra;
audio/webm weba;
video/3gpp 3gpp 3gp;
video/mp4 mp4;
video/mpeg mpeg mpg mpe;
video/ogg ogv;
video/quicktime mov;
video/webm webm;
video/x-flv flv;
video/x-mng mng;
video/x-ms-asf asx asf;
video/x-ms-wmv wmv;
video/x-msvideo avi;
}
slapos/recipe/nginx/template/nginx_conf.in
0 → 100644
View file @
5126cc65
worker_processes %(nb_workers)s;
pid %(path_pid)s;
error_log %(path_error_log)s;
daemon off;
events {
worker_connections 1024;
accept_mutex off;
}
http {
include mime.types;
default_type application/octet-stream;
access_log %(path_access_log)s combined;
index %(index_page_id)s;
server {
listen [%(ip)s]:%(port)s;
server_name _;
keepalive_timeout 5;
client_body_temp_path %(tmp)s/client_body_temp;
proxy_temp_path %(tmp)s/proxy_temp;
fastcgi_temp_path %(tmp)s/fastcgi_temp;
uwsgi_temp_path %(tmp)s/uwsgi_temp;
scgi_temp_path %(tmp)s/scgi_temp;
# path for static files
root %(root)s;
location / {
# This is cool because no php is touched for static content
try_files $uri $uri/ /%(index_page_id)s;
}
location ~ \.php$ {
#NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
fastcgi_pass %(php_cgi_address)s;
fastcgi_param SCRIPT_FILENAME %(root)s/$fastcgi_script_name;
# Copied from nginx/conf/fastcgi_params
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;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}
}
slapos/recipe/nginx/template/php.ini.in
0 → 100644
View file @
5126cc65
[PHP]
engine = On
safe_mode = Off
expose_php = Off
error_reporting = E_ALL & ~(E_DEPRECATED|E_NOTICE|E_WARNING)
display_errors = On
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
session.save_path = "%(tmp_directory)s"
session.auto_start = 0
date.timezone = Europe/Paris
file_uploads = On
upload_max_filesize = 8M
post_max_size = 8M
magic_quotes_gpc=0ff
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment