mirror of
https://github.com/dokku/buildpack-nginx.git
synced 2024-11-24 10:03:06 +00:00
75 lines
3.1 KiB
Markdown
75 lines
3.1 KiB
Markdown
# 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 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
|
|
|
|
To trigger detection of this buildpack you need to add a dotfile:
|
|
|
|
Add an *empty* file called `.static` to your root directory of your web project (regardless if you use a custom value for NGINX_ROOT)
|
|
|
|
### Heroku
|
|
|
|
Heroku users can use this buildpack by running the following command:
|
|
|
|
```
|
|
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_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.
|
|
|
|
[Florian Heinemann](http://twitter.com/TheSumOfAll/)
|