Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add some features to nginx config to help with wordpress #66

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 62 additions & 1 deletion lib/php/nginx.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,39 @@ nginx_conf_payload() {
{
"data_dir": "$(nos_data_dir)",
"code_dir": "$(nos_code_dir)",
"force_https": $(nginx_force_https),
"has_try_files": $(nginx_has_try_files),
"try_files": "$(nginx_try_files)",
"document_root": "$(nginx_document_root)",
"directory_index": "$(nginx_directory_index)",
"default_gateway": "$(nginx_default_gateway)"
"default_gateway": "$(nginx_default_gateway)",
"client_body_buffer_size": "$(nginx_client_body_buffer_size)",
"client_body_in_file_only": "$(nginx_client_body_in_file_only)",
"client_max_body_size": "$(nginx_client_max_body_size)",
"send_timeout": "$(nginx_send_timeout)",
"fastcgi_read_timeout": "$(nginx_fastcgi_read_timeout)",
"fastcgi_send_timeout": "$(nginx_fastcgi_send_timeout)"
}
END
}

nginx_force_https() {
# boxfile nginx_force_https
force_https=$(nos_validate "$(nos_payload config_nginx_force_https)" "boolean" "false")
echo "$force_https"
}

nginx_has_try_files() {
[[ -n "$(nginx_try_files)" ]] && echo "true" && return
echo "false"
}

nginx_try_files() {
# boxfile nginx_try_files
try_files=$(nos_validate "$(nos_payload config_nginx_try_files)" "string" "")
echo "$try_files"
}

nginx_document_root() {
# boxfile nginx_document_root
document_root=$(nos_validate "$(nos_payload config_nginx_document_root)" "folder" "$(nos_validate "$(nos_payload config_document_root)" "folder" "/")")
Expand All @@ -56,6 +82,41 @@ nginx_default_gateway() {
echo "$default_gateway"
}

nginx_client_body_buffer_size() {
# boxfile nginx_client_body_buffer_size
client_body_buffer_size=$(nos_validate "$(nos_payload config_nginx_client_body_buffer_size)" "byte" "16k")
echo "$client_body_buffer_size"
}

nginx_client_body_in_file_only() {
# boxfile nginx_client_body_in_file_only
client_body_in_file_only=$(nos_validate "$(nos_payload config_nginx_client_body_in_file_only)" "string" "off")
echo "$client_body_in_file_only"
}
nginx_client_max_body_size() {
# boxfile nginx_client_max_body_size
client_max_body_size=$(nos_validate "$(nos_payload config_nginx_client_max_body_size)" "byte" "1m")
echo "$client_max_body_size"
}

nginx_send_timeout() {
# boxfile nginx_send_timeout
send_timeout=$(nos_validate "$(nos_payload config_nginx_send_timeout)" "integer" "60")
echo "$send_timeout"
}

nginx_fastcgi_read_timeout() {
# boxfile nginx_fastcgi_read_timeout
fastcgi_read_timeout=$(nos_validate "$(nos_payload config_nginx_fastcgi_read_timeout)" "integer" "60")
echo "$fastcgi_read_timeout"
}

nginx_fastcgi_send_timeout() {
# boxfile nginx_fastcgi_send_timeout
fastcgi_send_timeout=$(nos_validate "$(nos_payload config_nginx_fastcgi_send_timeout)" "integer" "60")
echo "$fastcgi_send_timeout"
}

nginx_packages() {
pkgs=("nginx")
echo "${pkgs[@]}"
Expand Down
30 changes: 29 additions & 1 deletion templates/nginx/nginx.conf.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -27,21 +27,42 @@ http {
gzip on;
gzip_min_length 1000;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/xml text/css application/x-javascript application/javascript;
gzip_types text/plain text/xml text/css text/javascript application/x-javascript application/javascript application/xml text/x-component text/x-js text/richtext image/svg+xml text/xsd text/xsl image/bmp application/java application/msword application/vnd.ms-fontobject application/x-msdownload image/x-icon image/webp application/json application/vnd.ms-access application/vnd.ms-project application/x-font-otf application/vnd.ms-opentype application/vnd.oasis.opendocument.database application/vnd.oasis.opendocument.chart application/vnd.oasis.opendocument.formula application/vnd.oasis.opendocument.graphics application/vnd.oasis.opendocument.spreadsheet application/vnd.oasis.opendocument.text audio/ogg application/pdf application/vnd.ms-powerpoint application/x-shockwave-flash image/tiff application/x-font-ttf audio/wav application/vnd.ms-write application/font-woff application/font-woff2 application/vnd.ms-excel;

server {
listen 8080;
port_in_redirect off;
server_name localhost;

client_body_buffer_size {{client_body_buffer_size}};
client_body_in_file_only {{client_body_in_file_only}};
client_max_body_size {{client_max_body_size}};

send_timeout {{send_timeout}}s;

location / {
{{#force_https}}
if ($http_x_forwarded_proto != "https") {
return 301 https://$host$request_uri;
}
{{/force_https}}
root {{code_dir}}{{document_root}};
{{#has_try_files}}
try_files {{try_files}};
{{/has_try_files}}
{{^has_try_files}}
index {{directory_index}} {{default_gateway}};
{{/has_try_files}}
}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

location ~ [^/]\.php(/|$) {
{{#force_https}}
if ($http_x_forwarded_proto != "https") {
return 301 https://$host$request_uri;
}
{{/force_https}}
root {{code_dir}}{{document_root}};
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
Expand All @@ -50,6 +71,8 @@ http {

fastcgi_pass unix:{{data_dir}}/var/tmp/php.sock;
fastcgi_index {{default_gateway}};
fastcgi_read_timeout {{fastcgi_read_timeout}}s;
fastcgi_send_timeout {{fastcgi_send_timeout}}s;
# include fastcgi_params;

fastcgi_param QUERY_STRING $query_string;
Expand Down Expand Up @@ -91,6 +114,11 @@ http {
deny all;
}

{{#has_try_files}}
try_files {{try_files}};
{{/has_try_files}}
{{^has_try_files}}
try_files $uri {{directory_index}} {{default_gateway}};
{{/has_try_files}}
}
}