mirror of
https://github.com/dokku/buildpack-nginx.git
synced 2026-04-30 11:37:35 +00:00
Compare commits
39
Commits
v20
..
806f8f5b0a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
806f8f5b0a | ||
|
|
4e4c3824c5 | ||
|
|
66fb51bbbc | ||
|
|
b07e670e70 | ||
|
|
070d37fe76 | ||
|
|
f90db13abf | ||
|
|
9e8c05da50 | ||
|
|
fe785a5a04 | ||
|
|
ec66a23266 | ||
|
|
dfcb3706f3 | ||
|
|
14c274186a | ||
|
|
863aab6f36 | ||
|
|
2f08d686ff | ||
|
|
936c024eac | ||
|
|
e833f6afad | ||
|
|
3221fc1b85 | ||
|
|
10d257b7ad | ||
|
|
b701653bda | ||
|
|
a6dd42bddb | ||
|
|
130b184ec3 | ||
|
|
e26103764e | ||
|
|
eeb2caf824 | ||
|
|
61bfffb6c6 | ||
|
|
bcbf61b1f5 | ||
|
|
8345d0a22a | ||
|
|
8560e5b5a9 | ||
|
|
aa191df661 | ||
|
|
7fe92f4821 | ||
|
|
25fb7889a5 | ||
|
|
6381244e26 | ||
|
|
7874622b04 | ||
|
|
0329f9e0ff | ||
|
|
043965bc7d | ||
|
|
3a1e442373 | ||
|
|
6a99e870e4 | ||
|
|
ad5e831e74 | ||
|
|
ed31137f94 | ||
|
|
a68149bce7 | ||
|
|
6a592755ff |
@@ -0,0 +1,8 @@
|
||||
---
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: daily
|
||||
open-pull-requests-limit: 10
|
||||
@@ -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 }}
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Cloning repo
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ You can override the nginx root via setting the `NGINX_ROOT` environment variabl
|
||||
# where the app is named `static-app`
|
||||
# and the root dir is _site
|
||||
dokku config:set static-app NGINX_ROOT=_site
|
||||
````
|
||||
```
|
||||
|
||||
### Default to index for history routing
|
||||
|
||||
@@ -39,13 +39,34 @@ By default, this buildpack will 404 if a requested file is not found. For static
|
||||
```shell
|
||||
# where the app is named `static-app`
|
||||
# and the desired default response is index.html
|
||||
dokku config:set static-app NGINX_ROOT=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
|
||||
|
||||
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
|
||||
|
||||
`buildpack-nginx` is licensed under the CC0 1.0 Universal license and has been informed by many similar projects on the web.
|
||||
|
||||
+17
-13
@@ -3,13 +3,13 @@
|
||||
set -eo pipefail
|
||||
[[ $TRACE ]] && set -x
|
||||
|
||||
NGINX_VERSION="1.17.0"
|
||||
NGINX_VERSION="1.26.2"
|
||||
NGINX_TARBALL="nginx-${NGINX_VERSION}.tar.gz"
|
||||
PCRE_VERSION="8.45"
|
||||
PCRE_TARBALL="pcre-${PCRE_VERSION}.tar.gz"
|
||||
SIGIL_VERSION="0.4.0"
|
||||
SIGIL_TARBALL="sigil_${SIGIL_VERSION}_Linux_x86_64.tgz"
|
||||
ZLIB_VERSION="1.2.11"
|
||||
PCRE_VERSION="10.42"
|
||||
PCRE_TARBALL="pcre2-${PCRE_VERSION}.tar.gz"
|
||||
SIGIL_VERSION="0.10.1"
|
||||
SIGIL_TARBALL="gliderlabs-sigil_${SIGIL_VERSION}_linux_amd64.tgz"
|
||||
ZLIB_VERSION="1.3"
|
||||
ZLIB_TARBALL="zlib-${ZLIB_VERSION}.tar.gz"
|
||||
|
||||
suppress() {
|
||||
@@ -51,13 +51,13 @@ cd "$CACHE_DIR"
|
||||
|
||||
if [[ ! -d "${NGINX_TARBALL%.tar.gz}" ]]; then
|
||||
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}"
|
||||
fi
|
||||
|
||||
if [[ ! -d "${PCRE_TARBALL%.tar.gz}" ]]; then
|
||||
echo "-----> Download and unzip pcre ${PCRE_VERSION} via http"
|
||||
curl -sSL "https://downloads.sourceforge.net/project/pcre/pcre/${PCRE_VERSION}/${PCRE_TARBALL}" -o "${PCRE_TARBALL}"
|
||||
curl -sSL "https://github.com/PCRE2Project/pcre2/releases/download/pcre2-${PCRE_VERSION}/${PCRE_TARBALL}" -o "${PCRE_TARBALL}"
|
||||
tar xzf "${PCRE_TARBALL}" && rm -f "${PCRE_TARBALL}"
|
||||
fi
|
||||
|
||||
@@ -67,14 +67,18 @@ if [[ ! -d "${ZLIB_TARBALL%.tar.gz}" ]]; then
|
||||
tar xzf "${ZLIB_TARBALL}" && rm -rf "${ZLIB_TARBALL}"
|
||||
fi
|
||||
|
||||
if [[ ! -f "sigil" ]]; then
|
||||
if [[ ! -f "gliderlabs-sigil-amd64" ]]; then
|
||||
echo "-----> Download and unzip sigil ${SIGIL_VERSION} via http"
|
||||
curl -sSL "https://github.com/gliderlabs/sigil/releases/download/v${SIGIL_VERSION}/${SIGIL_TARBALL}" -o "${SIGIL_TARBALL}"
|
||||
curl -sSL "https://github.com/gliderlabs/sigil/releases/download/v${SIGIL_VERSION}/gliderlabs-sigil_${SIGIL_VERSION}_linux_amd64.tgz" -o "${SIGIL_TARBALL}"
|
||||
tar xzf "${SIGIL_TARBALL}" && rm -rf "${SIGIL_TARBALL}"
|
||||
fi
|
||||
|
||||
mkdir -p "$BUILD_DIR/sigil"
|
||||
cp -r sigil "$BUILD_DIR/sigil/"
|
||||
if [[ ! -f "gliderlabs-sigil-amd64" ]]; then
|
||||
echo " ! Missing gliderlabs-sigil-amd64 binary"
|
||||
exit 1
|
||||
fi
|
||||
cp -r gliderlabs-sigil-amd64 "$BUILD_DIR/sigil/sigil"
|
||||
|
||||
cd "nginx-${NGINX_VERSION}"
|
||||
if [[ ! -f "${CACHE_DIR}/bin/nginx" ]]; then
|
||||
@@ -83,7 +87,7 @@ if [[ ! -f "${CACHE_DIR}/bin/nginx" ]]; then
|
||||
suppress ./configure \
|
||||
--with-cpu-opt=generic \
|
||||
--prefix="$BUILD_DIR/nginx" \
|
||||
--with-pcre=../pcre-${PCRE_VERSION} \
|
||||
--with-pcre=../pcre2-${PCRE_VERSION} \
|
||||
--sbin-path=. \
|
||||
--pid-path=./nginx.pid \
|
||||
--conf-path=./nginx.conf \
|
||||
@@ -170,7 +174,7 @@ cat <<EOF >"$BUILD_DIR/start_nginx"
|
||||
#!/usr/bin/env bash
|
||||
rm -f /app/nginx/nginx.conf
|
||||
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
|
||||
erb /app/nginx/nginx.conf.erb > /app/nginx/nginx.conf
|
||||
fi
|
||||
|
||||
@@ -1,19 +1,38 @@
|
||||
worker_processes 1;
|
||||
{{ if ne $.NGINX_WORKERS "" }}
|
||||
worker_processes {{ $.NGINX_WORKERS }};
|
||||
{{ else }}
|
||||
worker_processes 1;
|
||||
{{ end }}
|
||||
error_log stderr;
|
||||
pid nginx.pid;
|
||||
daemon off;
|
||||
|
||||
events {
|
||||
worker_connections 768;
|
||||
{{ if ne $.NGINX_WORKER_CONNECTIONS "" }}
|
||||
worker_connections {{ $.NGINX_WORKER_CONNECTIONS }};
|
||||
{{ else }}
|
||||
worker_connections 768;
|
||||
{{ end }}
|
||||
}
|
||||
|
||||
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;
|
||||
include mime.types;
|
||||
charset UTF-8;
|
||||
|
||||
server {
|
||||
listen {{ $.PORT }};
|
||||
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 "" }}
|
||||
root /app/www/{{ $.NGINX_ROOT }};
|
||||
{{ else }}
|
||||
|
||||
@@ -39,6 +39,7 @@ types {
|
||||
application/vnd.wap.wmlc wmlc;
|
||||
application/vnd.google-earth.kml+xml kml;
|
||||
application/vnd.google-earth.kmz kmz;
|
||||
application/wasm wasm;
|
||||
application/x-7z-compressed 7z;
|
||||
application/x-cocoa cco;
|
||||
application/x-java-archive-diff jardiff;
|
||||
|
||||
Reference in New Issue
Block a user