1
0
mirror of https://github.com/dokku/buildpack-nginx.git synced 2024-11-24 10:03:06 +00:00
buildpack-nginx/README.md
2024-09-21 15:53:09 +09:00

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/)