Compare commits
86 Commits
Author | SHA1 | Date |
---|---|---|
Jose Diaz-Gonzalez | ec66a23266 | |
Pablo Brasero | dfcb3706f3 | |
Jose Diaz-Gonzalez | 14c274186a | |
Jose Diaz-Gonzalez | 863aab6f36 | |
Jose Diaz-Gonzalez | 2f08d686ff | |
Jose Diaz-Gonzalez | 936c024eac | |
Jose Diaz-Gonzalez | e833f6afad | |
Jose Diaz-Gonzalez | 3221fc1b85 | |
Jose Diaz-Gonzalez | 10d257b7ad | |
Jose Diaz-Gonzalez | b701653bda | |
Jose Diaz-Gonzalez | a6dd42bddb | |
Jose Diaz-Gonzalez | 130b184ec3 | |
josegonzalez | e26103764e | |
Igor Loskutov | eeb2caf824 | |
josegonzalez | 61bfffb6c6 | |
Felipe dos Anjos | bcbf61b1f5 | |
Jose Diaz-Gonzalez | 8345d0a22a | |
Jose Diaz-Gonzalez | 8560e5b5a9 | |
Jose Diaz-Gonzalez | aa191df661 | |
Jose Diaz-Gonzalez | 7fe92f4821 | |
Jose Diaz-Gonzalez | 25fb7889a5 | |
Jose Diaz-Gonzalez | 6381244e26 | |
Jose Diaz-Gonzalez | 7874622b04 | |
Jose Diaz-Gonzalez | 0329f9e0ff | |
Jose Diaz-Gonzalez | 043965bc7d | |
Jose Diaz-Gonzalez | 3a1e442373 | |
Jose Diaz-Gonzalez | 6a99e870e4 | |
Jose Diaz-Gonzalez | ad5e831e74 | |
Jose Diaz-Gonzalez | ed31137f94 | |
Jose Diaz-Gonzalez | a68149bce7 | |
Jose Diaz-Gonzalez | 6a592755ff | |
Jose Diaz-Gonzalez | 2b95cd179b | |
Jose Diaz-Gonzalez | 9b7f098ced | |
Jose Diaz-Gonzalez | 7154c020a1 | |
Jose Diaz-Gonzalez | a11d1ce303 | |
Jose Diaz-Gonzalez | 53b41ec631 | |
Jose Diaz-Gonzalez | c8eef60b09 | |
Jose Diaz-Gonzalez | 09fe857895 | |
Jose Diaz-Gonzalez | 31dc4746e2 | |
Jose Diaz-Gonzalez | 59ea0b94e1 | |
Jose Diaz-Gonzalez | 301d00c751 | |
Jose Diaz-Gonzalez | 28328e4d90 | |
Jose Diaz-Gonzalez | dce20c0a8f | |
Jose Diaz-Gonzalez | 0e7bef86f9 | |
Jose Diaz-Gonzalez | faf2a70272 | |
Jose Diaz-Gonzalez | f981b138ed | |
Jose Diaz-Gonzalez | 7794c2c36f | |
Jose Diaz-Gonzalez | 22619107ab | |
Jose Diaz-Gonzalez | 1a28ec8509 | |
Jose Diaz-Gonzalez | e28d2049e5 | |
Jose Diaz-Gonzalez | 6a73313edb | |
Jose Diaz-Gonzalez | 648d73fda6 | |
Jose Diaz-Gonzalez | 1769636cc8 | |
Jose Diaz-Gonzalez | 6a9c79f8d0 | |
Jose Diaz-Gonzalez | 7a1b16877d | |
Jose Diaz-Gonzalez | c50c220ba4 | |
Jose Diaz-Gonzalez | c2273de014 | |
Jose Diaz-Gonzalez | 91c41476ae | |
Jose Diaz-Gonzalez | 90c8bd9365 | |
Jose Diaz-Gonzalez | 89196adbf1 | |
Jose Diaz-Gonzalez | dbbbcc2c3e | |
Jose Diaz-Gonzalez | daa9549fb7 | |
Joe Yates | 66b91f18e4 | |
Jose Diaz-Gonzalez | 6c1abc0547 | |
Zach Ahn | 6672b6257a | |
Jose Diaz-Gonzalez | 758bf7c39c | |
Jose Diaz-Gonzalez | 5a16fba7d1 | |
Jose Diaz-Gonzalez | 8cb1d16d7e | |
Jose Diaz-Gonzalez | aa0ebb8f47 | |
Jose Diaz-Gonzalez | d5048c5fe3 | |
Viedit com | ec734ad787 | |
Jose Diaz-Gonzalez | 150d82865b | |
Senthil Arivudainambi | cd84b47fd1 | |
Jose Diaz-Gonzalez | e06b1e4df1 | |
Jose Diaz-Gonzalez | 0d2e4c3ee6 | |
Jose Diaz-Gonzalez | 1f534f7bc6 | |
Jose Diaz-Gonzalez | 149f06c3b3 | |
pawurb | 99d72cc005 | |
Jose Diaz-Gonzalez | 46d850193d | |
Jose Diaz-Gonzalez | 9eae441352 | |
Jose Diaz-Gonzalez | b0ce745a1b | |
Vinod Kurup | fe3a5dc54f | |
Jose Diaz-Gonzalez | ad8d7c4261 | |
Jose Diaz-Gonzalez | e8e0807a2d | |
Phillip Oldham | 673fd38bb2 | |
Justin Smith | 1945cf3645 |
|
@ -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@v2
|
||||
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 }}
|
|
@ -0,0 +1,23 @@
|
|||
---
|
||||
name: 'review-app-cleanup'
|
||||
|
||||
# yamllint disable-line rule:truthy
|
||||
on:
|
||||
# onl run this workflow on pull request events
|
||||
pull_request:
|
||||
types:
|
||||
- closed
|
||||
|
||||
jobs:
|
||||
destroy_review_app:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Destroy the review app
|
||||
uses: dokku/github-action@master
|
||||
with:
|
||||
# destroy a review app
|
||||
command: review-apps:destroy
|
||||
git_remote_url: 'ssh://dokku@dokku.com/nginx-buildpack'
|
||||
# specify a name for the review app
|
||||
review_app_name: nginx-buildpack-${{ github.event.pull_request.number }}
|
||||
ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }}
|
|
@ -0,0 +1,28 @@
|
|||
---
|
||||
name: 'review-app'
|
||||
|
||||
# yamllint disable-line rule:truthy
|
||||
on:
|
||||
# onl run this workflow on pull request events
|
||||
pull_request
|
||||
|
||||
jobs:
|
||||
review_app:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Cloning repo
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Push to dokku
|
||||
uses: dokku/github-action@master
|
||||
with:
|
||||
# create a review app
|
||||
command: review-apps:create
|
||||
git_remote_url: 'ssh://dokku@dokku.com/nginx-buildpack'
|
||||
# specify `--force` as a flag for git pushes
|
||||
git_push_flags: '--force'
|
||||
# specify a name for the review app
|
||||
review_app_name: nginx-buildpack-${{ github.event.pull_request.number }}
|
||||
ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }}
|
28
README.md
28
README.md
|
@ -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,10 +22,34 @@ 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 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.
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
#!/bin/sh -l
|
||||
if [ "$IS_REVIEW_APP" = "true" ]; then
|
||||
git config --global user.name 'Dokku Bot'
|
||||
git config --global user.email no-reply@dokku.com
|
||||
|
||||
echo "-----> Purging repo cache"
|
||||
ssh "$SSH_REMOTE" -- repo:purge-cache "$APP_NAME"
|
||||
|
||||
echo "-----> Setting the test domain name"
|
||||
ssh "$SSH_REMOTE" -- domains:set "$APP_NAME" "$APP_NAME.dokku.net"
|
||||
|
||||
echo "-----> Ensure test includes vendored app-nginx.conf.sigil"
|
||||
cp conf/app-nginx.conf.sigil app-nginx.conf.sigil
|
||||
git add app-nginx.conf.sigil
|
||||
git commit -qm "feat: specify custom app-nginx.conf.sigil"
|
||||
|
||||
echo "-----> Ensure test includes vendored mime.types"
|
||||
cp conf/mime.types mime.types
|
||||
git add mime.types
|
||||
git commit -qm "feat: specify custom mime.types"
|
||||
|
||||
echo "-----> Setting the buildpack to the current ref $GITHUB_HEAD_REF"
|
||||
echo "https://github.com/${GITHUB_REPOSITORY}.git#$GITHUB_HEAD_REF" > .buildpacks
|
||||
git add .buildpacks
|
||||
git commit -qm "feat: specify $GITHUB_SHA as buildpack"
|
||||
|
||||
git rev-parse HEAD >ci-commit-override
|
||||
fi
|
61
bin/compile
61
bin/compile
|
@ -1,25 +1,28 @@
|
|||
#!/usr/bin/env bash
|
||||
# bin/compile <build-dir> <cache-dir>
|
||||
set -eo pipefail; [[ $TRACE ]] && set -x
|
||||
set -eo pipefail
|
||||
[[ $TRACE ]] && set -x
|
||||
|
||||
NGINX_VERSION="1.14.0"
|
||||
NGINX_VERSION="1.25.2"
|
||||
NGINX_TARBALL="nginx-${NGINX_VERSION}.tar.gz"
|
||||
PCRE_VERSION="8.40"
|
||||
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() {
|
||||
/bin/rm --force /tmp/surpress.out 2>/dev/null
|
||||
# shellcheck disable=SC2069
|
||||
/bin/rm --force /tmp/surpress.out 2> /dev/null; "$@" 2>&1 > /tmp/surpress.out || cat /tmp/surpress.out; /bin/rm /tmp/surpress.out;
|
||||
"$@" 2>&1 >/tmp/surpress.out || cat /tmp/surpress.out
|
||||
/bin/rm /tmp/surpress.out
|
||||
}
|
||||
|
||||
# parse and derive params
|
||||
BUILD_DIR=$1
|
||||
CACHE_DIR=$2
|
||||
CUR_DIR=$(cd "$(dirname "$0")"; cd ..; pwd)
|
||||
CUR_DIR=$(cd "$(dirname "$0")" && cd .. && pwd)
|
||||
|
||||
mkdir -p "$BUILD_DIR" "$CACHE_DIR"
|
||||
|
||||
|
@ -47,31 +50,35 @@ fi
|
|||
cd "$CACHE_DIR"
|
||||
|
||||
if [[ ! -d "${NGINX_TARBALL%.tar.gz}" ]]; then
|
||||
echo "-----> Download and unzip nginx"
|
||||
echo "-----> Download and unzip nginx ${NGINX_VERSION} via http"
|
||||
curl -sSL "http://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"
|
||||
curl -sSL "https://ftp.pcre.org/pub/pcre/${PCRE_TARBALL}" -o "${PCRE_TARBALL}"
|
||||
echo "-----> Download and unzip pcre ${PCRE_VERSION} via http"
|
||||
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
|
||||
|
||||
if [[ ! -d "${ZLIB_TARBALL%.tar.gz}" ]]; then
|
||||
echo "-----> Download and unzip zlib"
|
||||
echo "-----> Download and unzip zlib ${ZLIB_VERSION} via http"
|
||||
curl -sSL "https://github.com/madler/zlib/archive/v${ZLIB_VERSION}.tar.gz" -o "${ZLIB_TARBALL}"
|
||||
tar xzf "${ZLIB_TARBALL}" && rm -rf "${ZLIB_TARBALL}"
|
||||
fi
|
||||
|
||||
if [[ ! -f "sigil" ]]; then
|
||||
echo "-----> Download and unzip sigil"
|
||||
curl -sSL "https://github.com/gliderlabs/sigil/releases/download/v${SIGIL_VERSION}/${SIGIL_TARBALL}" -o "${SIGIL_TARBALL}"
|
||||
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}/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
|
||||
|
@ -80,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 \
|
||||
|
@ -91,17 +98,14 @@ if [[ ! -f "${CACHE_DIR}/bin/nginx" ]]; then
|
|||
--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 \
|
||||
--without-http_split_clients_module \
|
||||
--without-http_referer_module \
|
||||
--without-http_proxy_module \
|
||||
--without-http_fastcgi_module \
|
||||
--without-http_uwsgi_module \
|
||||
--without-http_scgi_module \
|
||||
|
@ -113,7 +117,8 @@ if [[ ! -f "${CACHE_DIR}/bin/nginx" ]]; then
|
|||
--without-http_upstream_keepalive_module \
|
||||
--without-mail_pop3_module \
|
||||
--without-mail_imap_module \
|
||||
--without-mail_smtp_module
|
||||
--without-mail_smtp_module \
|
||||
--with-http_realip_module
|
||||
|
||||
sed -i "/CFLAGS/s/ \-O //g" objs/Makefile
|
||||
|
||||
|
@ -132,20 +137,20 @@ fi
|
|||
|
||||
# Update the PATH
|
||||
mkdir -p "$BUILD_DIR/.profile.d"
|
||||
cat > "$BUILD_DIR/.profile.d/nginx.sh" <<"EOF"
|
||||
cat >"$BUILD_DIR/.profile.d/nginx.sh" <<"EOF"
|
||||
export PATH="$PATH:$HOME/nginx"
|
||||
EOF
|
||||
|
||||
cd "$CUR_DIR"
|
||||
|
||||
# Add support for app-nginx.conf.sigil
|
||||
if [ -f "$BUILD_DIR/app-nginx.conf.sigil" ] ; then
|
||||
if [ -f "$BUILD_DIR/app-nginx.conf.sigil" ]; then
|
||||
echo "-----> Using user provided app-nginx.conf.sigil"
|
||||
cp "$BUILD_DIR/app-nginx.conf.sigil" "$BUILD_DIR/nginx/app-nginx.conf.sigil"
|
||||
|
||||
# Allow deprecated nginx.conf.erb
|
||||
elif [ -f "$BUILD_DIR/nginx.conf.erb" ] ; then
|
||||
echo "-----> DEPRECATED: using user provided nginx.conf.erb"
|
||||
elif [ -f "$BUILD_DIR/nginx.conf.erb" ]; then
|
||||
echo "-----> DEPRECATED: Using user provided nginx.conf.erb"
|
||||
cp "$BUILD_DIR/nginx.conf.erb" "$BUILD_DIR/nginx/nginx.conf.erb"
|
||||
|
||||
# ...else, force default file
|
||||
|
@ -155,7 +160,7 @@ else
|
|||
fi
|
||||
|
||||
# build mime.types unless overridden by user
|
||||
if [ -f "$BUILD_DIR/mime.types" ] ; then
|
||||
if [ -f "$BUILD_DIR/mime.types" ]; then
|
||||
echo "-----> Using user provided mime.types"
|
||||
cp "$BUILD_DIR/mime.types" "$BUILD_DIR/nginx/mime.types"
|
||||
|
||||
|
@ -169,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" 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
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#!/usr/bin/env bash
|
||||
# bin/detect <build-dir> <cache-dir>
|
||||
set -eo pipefail; [[ $TRACE ]] && set -x
|
||||
set -eo pipefail
|
||||
[[ $TRACE ]] && set -x
|
||||
|
||||
# Exit early if app is clearly not an nginx app
|
||||
if [[ ! -f "$1/.static" ]]; then
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#!/usr/bin/env bash
|
||||
# bin/release <build-dir>
|
||||
set -eo pipefail; [[ $TRACE ]] && set -x
|
||||
set -eo pipefail
|
||||
[[ $TRACE ]] && set -x
|
||||
|
||||
cat <<EOF
|
||||
---
|
||||
|
|
|
@ -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 }}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ types {
|
|||
text/vnd.sun.j2me.app-descriptor jad;
|
||||
text/vnd.wap.wml wml;
|
||||
text/x-component htc;
|
||||
text/vtt vtt;
|
||||
|
||||
image/png png;
|
||||
image/tiff tif tiff;
|
||||
|
@ -38,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;
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Example Domain</title>
|
||||
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style type="text/css">
|
||||
body {
|
||||
background-color: #f0f0f2;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
}
|
||||
div {
|
||||
width: 600px;
|
||||
margin: 5em auto;
|
||||
padding: 2em;
|
||||
background-color: #fdfdff;
|
||||
border-radius: 0.5em;
|
||||
box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);
|
||||
}
|
||||
a:link, a:visited {
|
||||
color: #38488f;
|
||||
text-decoration: none;
|
||||
}
|
||||
@media (max-width: 700px) {
|
||||
div {
|
||||
margin: 0 auto;
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div>
|
||||
<h1>Example Domain</h1>
|
||||
<p>This domain is for use in illustrative examples in documents. You may use this
|
||||
domain in literature without prior coordination or asking for permission.</p>
|
||||
<p><a href="https://www.iana.org/domains/example">More information...</a></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,2 @@
|
|||
User-agent: *
|
||||
Disallow: /
|
Loading…
Reference in New Issue