nginx-appliance
所属分类:Linux/Unix编程
开发工具:Shell
文件大小:4KB
下载次数:0
上传日期:2015-01-17 03:41:59
上 传 者:
sh-1993
说明: 可编程Nginx容器
(A programmable Nginx container)
文件列表:
Dockerfile (778, 2015-01-17)
LICENSE (0, 2015-01-17)
SPONSORS (0, 2015-01-17)
default.json (870, 2015-01-17)
docker.include (41, 2015-01-17)
examples (0, 2015-01-17)
examples\balancer_server.json (115, 2015-01-17)
examples\balancer_upstream.json (111, 2015-01-17)
start (357, 2015-01-17)
# Nginx Appliance
A generic Nginx Docker container that you can configure at runtime via HTTP API. It was built using [Configurator](https://github.com/progrium/configurator), which means soon it will also integrate with various configuration stores (Consul, Etcd, ...).
It also means you can make a programmable appliance like this for any open source utility... but let's focus on Nginx for now.
## Getting the container
The container is available on the Docker Index:
$ docker pull progrium/nginx
## Using the container
#### Getting the welcome page
$ docker run -d -p 8000:80 progrium/nginx
$ curl localhost:8000
Okay, that's maybe a little too trivial. The default Nginx config, big deal.
#### Configure Nginx into a reverse proxy
You've done this before. But have you done it like this?
$ docker run -d -p 8000:80 -p 9000:9000 progrium/nginx
Add an upstream called `app` that points to `tired.com:80`:
$ curl -d '{"upstream": {"app": {"server": {"tired.com:80": null}}}}' localhost:9000/v1/config/http
Turn the default server into a proxy to `app`:
$ curl -d '{"server": [{"listen": 80, "location": {"/": {"proxy_pass": "http://app"}}}]}' localhost:9000/v1/config/http
*Now* hit that port 8000:
$ curl localhost:8000
You re-programmed the Nginx appliance with curl.
#### Configure Nginx to serve your static files
Run with a volume mount to a location like `/static`:
$ docker run -d -p 8000:80 -p 9000:9000 -v /your/files:/static progrium/nginx
Reconfigure the default server to use `/static` as the root and turn on autoindex:
$ curl -d '{"root": "/static", "autoindex": true}' localhost:9000/v1/config/http/server/0
See your files:
$ curl localhost:8000/
#### Working with the Nginx configuration
See the current configuration:
$ docker run -d -p 8000:80 -p 9000:9000 progrium/nginx
$ curl localhost:9000/v1/config/
See a subset or specific value of that Nginx configuration:
$ curl localhost:9000/v1/config/http/server_names_hash_bucket_size
Change that value:
$ curl -d '{"server_names_hash_bucket_size": 128}' localhost:9000/v1/config/http
See the full REST API and experiment...
#### See the actual rendered Nginx configuration being used
$ curl localhost:/v1/render
#### Hook up your Nginx appliance to a configuration store
Coming soon. Pull your custom config from Consul, have your HTTP changes stored there, and...
#### Use configuration macros to pull more data from your config store
Coming soon. Make your configuration dynamic with macros that reference config store values:
{
...
"http": {
"server_names_hash_bucket_size": {"$value": "/consul/path/to/value"}
...
}
...
}
Values are watched and cause the Nginx configuration to change in real-time.
#### Iteration and conditionals with macros
Coming soon. The embedded macro language supports all your standard templating functionality.
#### AND MORE...
Get the idea?
## Sponsor
This project was made possible thanks to [DigitalOcean](http://digitalocean.com).
## License
BSD
近期下载者:
相关文件:
收藏者: