1
0
mirror of https://github.com/dokku/buildpack-nginx.git synced 2025-06-26 18:40:45 +00:00

22 Commits

Author SHA1 Message Date
806f8f5b0a Merge pull request #79 from hico-horiuchi/master
feat: support nginx custom parameters
2024-09-21 23:16:21 -04:00
4e4c3824c5 feat: support nginx custom parameters 2024-09-21 15:53:09 +09:00
66fb51bbbc Merge pull request #76 from andipabst/nginx-version-and-https
Nginx version 1.26.2 and download nginx via https
2024-09-14 01:35:34 -04:00
b07e670e70 Merge pull request #78 from dokku/dependabot/github_actions/actions/checkout-4
chore(deps): bump actions/checkout from 2 to 4
2024-09-14 01:33:19 -04:00
070d37fe76 chore(deps): bump actions/checkout from 2 to 4
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-14 05:32:55 +00:00
f90db13abf Merge pull request #77 from dokku/josegonzalez-patch-1
feat: add dependabot support
2024-09-14 01:32:16 -04:00
9e8c05da50 feat: add dependabot support 2024-09-14 01:31:32 -04:00
fe785a5a04 download nginx version 1.26.2 via https 2024-09-03 18:25:13 +02:00
ec66a23266 Merge pull request #74 from pablobm/explain-mimetypes-file
Document: users can provide their own `mime.types`
2024-01-19 20:11:38 -05:00
dfcb3706f3 Doc: users can provide their own mime.types 2023-12-19 08:18:45 +00:00
14c274186a Merge pull request #73 from dokku/deploy-on-ci
feat: always deploy latest on merge to master
2023-08-20 21:48:59 -04:00
863aab6f36 feat: always deploy latest on merge to master 2023-08-20 21:42:53 -04:00
2f08d686ff Merge pull request #72 from dokku/josegonzalez-patch-1
feat: upgrade nginx to 1.25.2
2023-08-20 21:34:17 -04:00
936c024eac feat: upgrade nginx to 1.25.2 2023-08-20 21:14:00 -04:00
e833f6afad Merge pull request #71 from dokku/josegonzalez-patch-1
feat: upgrade zlib to 1.3
2023-08-20 21:12:52 -04:00
3221fc1b85 feat: upgrade zlib to 1.3 2023-08-20 20:53:40 -04:00
10d257b7ad Merge pull request #70 from dokku/josegonzalez-patch-1
feat: upgrade pcre2 to 10.42
2023-08-20 20:22:00 -04:00
b701653bda feat: upgrade pcre2 to 10.42 2023-08-20 20:17:09 -04:00
a6dd42bddb Merge pull request #69 from dokku/josegonzalez-patch-1
feat: upgrade sigil to 0.10.1
2023-08-20 20:16:12 -04:00
130b184ec3 feat: upgrade sigil to 0.10.1 2023-08-20 20:09:55 -04:00
e26103764e Merge pull request #67 from Firfi/patch-1
Add wasm mime type
2023-05-13 12:43:49 -04:00
eeb2caf824 Add wasm mime type
This is needed for support of WASM standard' https://www.w3.org/TR/wasm-web-api-1/#streaming-modules instantiateStreaming and compileStreaming, 

and causes errors like

```
WASM: wasm streaming compile failed: TypeError: Failed to execute 'compile' on 'WebAssembly': Incorrect response MIME type. Expected 'application/wasm'.
```

since plain text is returned instead.

It also doesn't seem to be easily fixable even with `nginx.conf.sigil` substitution
2023-04-16 20:33:18 +07:00
7 changed files with 85 additions and 10 deletions

8
.github/dependabot.yaml vendored Normal file
View File

@ -0,0 +1,8 @@
---
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: daily
open-pull-requests-limit: 10

26
.github/workflows/build.yml vendored Normal file
View File

@ -0,0 +1,26 @@
---
name: 'review-app'
# yamllint disable-line rule:truthy
on:
push:
branches:
- master
- main
jobs:
review_app:
runs-on: ubuntu-latest
steps:
- name: Cloning repo
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Push to dokku
uses: dokku/github-action@master
with:
git_remote_url: 'ssh://dokku@dokku.com/nginx-buildpack'
# specify `--force` as a flag for git pushes
git_push_flags: '--force'
ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }}

View File

@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Cloning repo - name: Cloning repo
uses: actions/checkout@v2 uses: actions/checkout@v4
with: with:
fetch-depth: 0 fetch-depth: 0

View File

@ -30,7 +30,7 @@ You can override the nginx root via setting the `NGINX_ROOT` environment variabl
# where the app is named `static-app` # where the app is named `static-app`
# and the root dir is _site # and the root dir is _site
dokku config:set static-app NGINX_ROOT=_site dokku config:set static-app NGINX_ROOT=_site
```` ```
### Default to index for history routing ### Default to index for history routing
@ -42,10 +42,31 @@ By default, this buildpack will 404 if a requested file is not found. For static
dokku config:set static-app NGINX_DEFAULT_REQUEST=index.html dokku config:set static-app NGINX_DEFAULT_REQUEST=index.html
``` ```
### Custom nginx directives
You can configure following nginx directives via environment variables.
- `NGINX_WORKERS` : `worker_processes` directive
- `NGINX_WORKER_CONNECTIONS` : `worker_connections` directive
- `NGINX_CLIENT_BODY_TIMEOUT` : `client_body_timeout` directive
- `NGINX_CLIENT_MAX_BODY_SIZE` : `client_max_body_size` directive (in MB)
```shell
# where the app is named `static-app`
dokku config:set static-app NGINX_WORKERS=4 \
NGINX_WORKER_CONNECTIONS=1024 \
NGINX_CLIENT_BODY_TIMEOUT=5 \
NGINX_CLIENT_MAX_BODY_SIZE=1
```
### Custom nginx config file ### Custom nginx config file
You may completely override the built-in nginx config by placing an `app-nginx.conf.sigil` file in the root, modeled after our own [`conf/app-nginx.conf.sigil`](https://github.com/dokku/buildpack-nginx/blob/master/conf/app-nginx.conf.sigil). This will be used inside of the container, and not by the host Dokku instance. See the [sigil project](https://github.com/gliderlabs/sigil) for more information concerning the sigil format. You may completely override the built-in nginx config by placing an `app-nginx.conf.sigil` file in the root, modeled after our own [`conf/app-nginx.conf.sigil`](https://github.com/dokku/buildpack-nginx/blob/master/conf/app-nginx.conf.sigil). This will be used inside of the container, and not by the host Dokku instance. See the [sigil project](https://github.com/gliderlabs/sigil) for more information concerning the sigil format.
### Custom MIME types
Files will be served with a `Content-Type` according to a list of supported MIME types at [`conf/mime.types`](https://github.com/dokku/heroku-buildpack-nginx/blob/master/conf/mime.types). If you need to serve files of a MIME type not included in the list, you can provide your own `mime.types` file in the root.
## Credits and License ## Credits and License
`buildpack-nginx` is licensed under the CC0 1.0 Universal license and has been informed by many similar projects on the web. `buildpack-nginx` is licensed under the CC0 1.0 Universal license and has been informed by many similar projects on the web.

View File

@ -3,13 +3,13 @@
set -eo pipefail set -eo pipefail
[[ $TRACE ]] && set -x [[ $TRACE ]] && set -x
NGINX_VERSION="1.23.1" NGINX_VERSION="1.26.2"
NGINX_TARBALL="nginx-${NGINX_VERSION}.tar.gz" NGINX_TARBALL="nginx-${NGINX_VERSION}.tar.gz"
PCRE_VERSION="10.40" PCRE_VERSION="10.42"
PCRE_TARBALL="pcre2-${PCRE_VERSION}.tar.gz" PCRE_TARBALL="pcre2-${PCRE_VERSION}.tar.gz"
SIGIL_VERSION="0.9.0" SIGIL_VERSION="0.10.1"
SIGIL_TARBALL="gliderlabs-sigil_${SIGIL_VERSION}_linux_amd64.tgz" SIGIL_TARBALL="gliderlabs-sigil_${SIGIL_VERSION}_linux_amd64.tgz"
ZLIB_VERSION="1.2.12" ZLIB_VERSION="1.3"
ZLIB_TARBALL="zlib-${ZLIB_VERSION}.tar.gz" ZLIB_TARBALL="zlib-${ZLIB_VERSION}.tar.gz"
suppress() { suppress() {
@ -51,7 +51,7 @@ cd "$CACHE_DIR"
if [[ ! -d "${NGINX_TARBALL%.tar.gz}" ]]; then if [[ ! -d "${NGINX_TARBALL%.tar.gz}" ]]; then
echo "-----> Download and unzip nginx ${NGINX_VERSION} via http" echo "-----> Download and unzip nginx ${NGINX_VERSION} via http"
curl -sSL "http://nginx.org/download/${NGINX_TARBALL}" -o "${NGINX_TARBALL}" curl -sSL "https://nginx.org/download/${NGINX_TARBALL}" -o "${NGINX_TARBALL}"
tar xzf "${NGINX_TARBALL}" && rm -f "${NGINX_TARBALL}" tar xzf "${NGINX_TARBALL}" && rm -f "${NGINX_TARBALL}"
fi fi
@ -174,7 +174,7 @@ cat <<EOF >"$BUILD_DIR/start_nginx"
#!/usr/bin/env bash #!/usr/bin/env bash
rm -f /app/nginx/nginx.conf rm -f /app/nginx/nginx.conf
if [[ -f /app/nginx/app-nginx.conf.sigil ]]; then if [[ -f /app/nginx/app-nginx.conf.sigil ]]; then
/app/sigil/sigil -f /app/nginx/app-nginx.conf.sigil NGINX_ROOT="\$NGINX_ROOT" NGINX_DEFAULT_REQUEST="\$NGINX_DEFAULT_REQUEST" PORT="\$PORT" | cat -s > /app/nginx/nginx.conf /app/sigil/sigil -f /app/nginx/app-nginx.conf.sigil NGINX_ROOT="\$NGINX_ROOT" NGINX_DEFAULT_REQUEST="\$NGINX_DEFAULT_REQUEST" NGINX_WORKERS="\$NGINX_WORKERS" NGINX_WORKER_CONNECTIONS="\$NGINX_WORKER_CONNECTIONS" NGINX_CLIENT_BODY_TIMEOUT="\$NGINX_CLIENT_BODY_TIMEOUT" NGINX_CLIENT_MAX_BODY_SIZE="\$NGINX_CLIENT_MAX_BODY_SIZE" PORT="\$PORT" | cat -s > /app/nginx/nginx.conf
else else
erb /app/nginx/nginx.conf.erb > /app/nginx/nginx.conf erb /app/nginx/nginx.conf.erb > /app/nginx/nginx.conf
fi fi

View File

@ -1,19 +1,38 @@
{{ if ne $.NGINX_WORKERS "" }}
worker_processes {{ $.NGINX_WORKERS }};
{{ else }}
worker_processes 1; worker_processes 1;
{{ end }}
error_log stderr; error_log stderr;
pid nginx.pid; pid nginx.pid;
daemon off; daemon off;
events { events {
{{ if ne $.NGINX_WORKER_CONNECTIONS "" }}
worker_connections {{ $.NGINX_WORKER_CONNECTIONS }};
{{ else }}
worker_connections 768; worker_connections 768;
{{ end }}
} }
http { http {
{{ if ne $.NGINX_CLIENT_BODY_TIMEOUT "" }}
client_body_timeout {{ $.NGINX_CLIENT_BODY_TIMEOUT }};
{{ else }}
client_body_timeout 5;
{{ end }}
types_hash_max_size 2048; types_hash_max_size 2048;
include mime.types; include mime.types;
charset UTF-8; charset UTF-8;
server { server {
listen {{ $.PORT }}; listen {{ $.PORT }};
server_name _; server_name _;
{{ if ne $.NGINX_CLIENT_MAX_BODY_SIZE "" }}
client_max_body_size {{ $.NGINX_CLIENT_MAX_BODY_SIZE }}M;
{{ else }}
client_max_body_size 1M;
{{ end }}
{{ if ne $.NGINX_ROOT "" }} {{ if ne $.NGINX_ROOT "" }}
root /app/www/{{ $.NGINX_ROOT }}; root /app/www/{{ $.NGINX_ROOT }};
{{ else }} {{ else }}

View File

@ -39,6 +39,7 @@ types {
application/vnd.wap.wmlc wmlc; application/vnd.wap.wmlc wmlc;
application/vnd.google-earth.kml+xml kml; application/vnd.google-earth.kml+xml kml;
application/vnd.google-earth.kmz kmz; application/vnd.google-earth.kmz kmz;
application/wasm wasm;
application/x-7z-compressed 7z; application/x-7z-compressed 7z;
application/x-cocoa cco; application/x-cocoa cco;
application/x-java-archive-diff jardiff; application/x-java-archive-diff jardiff;