Docker image of Nginx Proxy with Basic Auth
Branch: master
Clone or download
dtan4 Merge pull request #7 from dtan4/exec-nginx
Start Nginx process by exec command
Latest commit 4e258ca Sep 28, 2017
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
files Start Nginx process by exec command Sep 28, 2017
.dockerignore Initial commit Feb 9, 2017
Dockerfile Make proxy_read_timeout configuable Sep 28, 2017
LICENSE Write README Feb 9, 2017
README.md Add :8090/nginx_status endpoint for monitoring Sep 28, 2017
docker-compose.yml Add :8090/nginx_status endpoint for monitoring Sep 28, 2017

README.md

Docker image of Nginx Proxy with Basic Auth

Docker Repository on Quay

Simple HTTP Proxy with Basic Authentication

       w/ user:pass   +------------------------+      +-------------+
User ---------------> | nginx-basic-auth-proxy | ---> | HTTP Server |
                      +------------------------+      +-------------+

Run

$ docker run \
    --rm \
    --name nginx-basic-auth-proxy \
    -p 8080:80 \
    -p 8090:8090 \
    -e BASIC_AUTH_USERNAME=username \
    -e BASIC_AUTH_PASSWORD=password \
    -e PROXY_PASS=https://www.google.com \
    -e SERVER_NAME=proxy.dtan4.net \
    -e PORT=80 \
    quay.io/dtan4/nginx-basic-auth-proxy

Access to http://localhost:8080 , then browser asks you username and password.

You can also try complete HTTP-proxy example using Docker Compose. hello-world web application cannot be accessed without authentication.

$ docker-compose up
# http://localhost:8080/
# - Username: username
# - Password: password

Endpoint for monitoring

:8090/nginx_status returns the metrics of Nginx.

$ curl localhost:8090/nginx_status
Active connections: 1
server accepts handled requests
 8 8 8
Reading: 0 Writing: 1 Waiting: 0

Environment variables

Required

Key Description
BASIC_AUTH_USERNAME Basic auth username
BASIC_AUTH_PASSWORD Basic auth password
PROXY_PASS Proxy destination URL

Optional

Key Description Default
SERVER_NAME Value for server_name directive example.com
PORT Value for listen directive 80
CLIENT_MAX_BODY_SIZE Value for client_max_body_size directive 1m
PROXY_READ_TIMEOUT Value for proxy_read_timeout directive 60s
WORKER_PROCESSES Value for worker_processes directive auto

Author

Daisuke Fujita (@dtan4)

License

MIT License