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

19 Commits
v13 ... v18

Author SHA1 Message Date
91c41476ae feat: add ssl module 2022-09-10 16:55:10 -04:00
90c8bd9365 Merge pull request #54 from dokku/53-custom-static-routing
feat: allow overriding default 404 response with custom file
2022-08-07 19:11:02 -04:00
89196adbf1 feat: allow overriding default 404 response with custom file
This allows folks the ability to restore the previous routing functionality used by static sites backed by VueJS (as an example).

Note that all requests routed this way will respond with a '200 OK' on the server, potentially causing SEO issues.

Closes #53
2022-08-07 19:10:31 -04:00
dbbbcc2c3e Merge pull request #52 from joeyates/master
Enable http_auth
2022-08-07 19:08:54 -04:00
daa9549fb7 docs: call out customizations separately 2022-08-07 19:08:09 -04:00
66b91f18e4 Enable http_auth 2021-12-28 20:45:30 +01:00
6c1abc0547 Merge pull request #51 from zachahn/patch-1
Respond with a 404 when the file doesn't exist
2021-12-02 22:47:33 -05:00
6672b6257a Respond with a 404 when the file doesn't exist
Prior to this, I was seeing the successful HTTP status 200 when
requesting files that did not exist.

With this change, the server sends back Nginx's default 404 page instead
of the home page.
2021-12-02 22:19:05 -05:00
758bf7c39c Merge pull request #47 from dokku/josegonzalez-patch-1
fix: update pcre and pull from new location
2021-11-06 20:49:44 -04:00
5a16fba7d1 fix: add missing quote 2021-11-06 20:46:18 -04:00
8cb1d16d7e fix: update pcre and pull from new location
ftp.pcre.org is no longer supported
2021-11-06 20:24:16 -04:00
aa0ebb8f47 Update README.md 2021-03-22 01:19:04 -04:00
d5048c5fe3 Merge pull request #44 from vieditcom/patch-1
Update README.md - Typo
2020-11-23 10:14:28 -05:00
ec734ad787 Update README.md - Typo
seperate > separate
2020-11-22 13:07:12 +03:00
150d82865b Merge pull request #42 from sent-hil/master
Update Readme to include example for setting NGINX_ROOT
2020-07-14 10:24:25 -04:00
cd84b47fd1 Update Readme to include example for setting NGINX_ROOT 2020-07-05 18:17:34 -07:00
e06b1e4df1 Merge pull request #41 from dokku/40-charset
feat: use charset utf8 by default
2020-06-11 15:33:44 -04:00
0d2e4c3ee6 feat: use charset utf-8 by default
Closes #40
2020-06-11 15:33:31 -04:00
1f534f7bc6 feat: enable the charset module by default 2020-06-11 15:31:47 -04:00
3 changed files with 33 additions and 9 deletions

View File

@ -1,10 +1,10 @@
# Dokku Buildpack: nginx
# heroku-buildpack-nginx
This is the official dokku buildpack for static websites, powered by nginx.
## Usage
All static files that you want to serve should be in the root directory of your repository. No need to use a seperate `www` folder. `buildpack-nginx` will automatically download the buildpack, download NGINX, compile it, and install it. The next time you push your project, the buildpack will reuse the precompiled binaries.
All static files that you want to serve should be in the root directory of your repository. No need to use a separate `www` folder. `buildpack-nginx` will automatically download the buildpack, download NGINX, compile it, and install it. The next time you push your project, the buildpack will reuse the precompiled binaries.
### Dokku
@ -22,8 +22,28 @@ heroku buildpacks:set https://github.com/dokku/buildpack-nginx.git
## Configuration
### Custom nginx root
You can override the nginx root via setting the `NGINX_ROOT` environment variable. This should be a relative path in your repository.
```shell
# 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
By default, this buildpack will 404 if a requested file is not found. For static sites that use the browser's history router to show the correct context, setting the `NGINX_DEFAULT_REQUEST` to a specific file will override this.
```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
```
### 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.
## Credits and License

View File

@ -4,7 +4,7 @@ set -eo pipefail; [[ $TRACE ]] && set -x
NGINX_VERSION="1.17.0"
NGINX_TARBALL="nginx-${NGINX_VERSION}.tar.gz"
PCRE_VERSION="8.43"
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"
@ -54,7 +54,7 @@ fi
if [[ ! -d "${PCRE_TARBALL%.tar.gz}" ]]; then
echo "-----> Download and unzip pcre ${PCRE_VERSION} via http"
curl -sSL "https://ftp.pcre.org/pub/pcre/${PCRE_TARBALL}" -o "${PCRE_TARBALL}"
curl -sSL "https://downloads.sourceforge.net/project/pcre/pcre/${PCRE_VERSION}/${PCRE_TARBALL}" -o "${PCRE_TARBALL}"
tar xzf "${PCRE_TARBALL}" && rm -f "${PCRE_TARBALL}"
fi
@ -87,15 +87,14 @@ if [[ ! -f "${CACHE_DIR}/bin/nginx" ]]; then
--with-ld-opt="-static" \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_ssl_module \
--with-file-aio \
--with-zlib=../zlib-${ZLIB_VERSION} \
--with-pcre \
--with-cc-opt="-O2 -static -static-libgcc" \
--without-http_charset_module \
--without-http_ssi_module \
--without-http_userid_module \
--without-http_access_module \
--without-http_auth_basic_module \
--without-http_autoindex_module \
--without-http_geo_module \
--without-http_map_module \
@ -145,7 +144,7 @@ if [ -f "$BUILD_DIR/app-nginx.conf.sigil" ] ; then
# Allow deprecated nginx.conf.erb
elif [ -f "$BUILD_DIR/nginx.conf.erb" ] ; then
echo "-----> DEPRECATED: using user provided nginx.conf.erb"
echo "-----> DEPRECATED: Using user provided nginx.conf.erb"
cp "$BUILD_DIR/nginx.conf.erb" "$BUILD_DIR/nginx/nginx.conf.erb"
# ...else, force default file
@ -169,7 +168,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" 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" PORT="\$PORT" | cat -s > /app/nginx/nginx.conf
else
erb /app/nginx/nginx.conf.erb > /app/nginx/nginx.conf
fi

View File

@ -10,6 +10,7 @@ events {
http {
types_hash_max_size 2048;
include mime.types;
charset UTF-8;
server {
listen {{ $.PORT }};
server_name _;
@ -22,7 +23,11 @@ http {
port_in_redirect off;
location / {
try_files $uri $uri/ /index.html;
{{ if ne $.NGINX_DEFAULT_REQUEST "" }}
try_files $uri $uri/ /{{ $.NGINX_DEFAULT_REQUEST }};
{{ else }}
try_files $uri $uri/ =404;
{{ end }}
}
}
}