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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Levin Zimmermann
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,
...
@@ -83,6 +83,7 @@ setup(name=name,
'mydumper = slapos.recipe.mydumper:Recipe'
,
'mydumper = slapos.recipe.mydumper:Recipe'
,
'generic.mysql = slapos.recipe.generic_mysql:Recipe'
,
'generic.mysql = slapos.recipe.generic_mysql:Recipe'
,
'mkdirectory = slapos.recipe.mkdirectory:Recipe'
,
'mkdirectory = slapos.recipe.mkdirectory:Recipe'
,
'nginx = slapos.recipe.nginx:Recipe'
,
'nosqltestbed = slapos.recipe.nosqltestbed:NoSQLTestBed'
,
'nosqltestbed = slapos.recipe.nosqltestbed:NoSQLTestBed'
,
'notifier = slapos.recipe.notifier:Recipe'
,
'notifier = slapos.recipe.notifier:Recipe'
,
'notifier.callback = slapos.recipe.notifier:Callback'
,
'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