Skip to content

http(s) proxy for caching and loadbalancing with web interface based on varnish and nginx

License

Notifications You must be signed in to change notification settings

enhavo/enhavo-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
Oct 10, 2019
Aug 11, 2019
Oct 10, 2019
Oct 6, 2019
Aug 11, 2019
Oct 10, 2019
Oct 6, 2019
Jan 3, 2018
Aug 12, 2019
Aug 21, 2019
Aug 12, 2019
Aug 11, 2019
Aug 11, 2019
Aug 12, 2019
Aug 12, 2019
Aug 12, 2019
Jan 3, 2018
Sep 23, 2016
Oct 6, 2019
Aug 21, 2019
Aug 19, 2019
Oct 8, 2019
Aug 19, 2019
Aug 11, 2019
Aug 19, 2019
Oct 3, 2019

Repository files navigation

alt text

Enhavo Proxy

The goal of enhavo proxy is to create a proxy with focus on load balancing and caching issue, which is easily to configure over cli and a web interface. It supports SSL with own and Let's Encrypt certificates.

Enhavo proxy is made for docker, so it's easy to install on docker hosts.

Please don't use it for production unless we release version 1.0. We can't guarantee backward compatibility and we may have still miss configuration.

Architecture

We use varnish as proxy server. Varnish can't handle ssl request by default, so we use nginx to resolve https request. We use apache only for the web interface, which is based on enhavo. The configuration is stored to a mysql database. If you apply the configuration they will be written to the filesystem and overwrite the configuration files.

alt text

Run Docker

$ docker run -d -e DATABASE_URL='mysql://root:root@mysql:3306/enhavo-proxy' --link 'mysql:mysql' -p '80:80' -p '443:443' -p '8080:8080'  enhavo/enhavo-proxy

Or copy this docker-compose.yml file to your file system and run docker-compose up -d

version: '3'
services:
  proxy:
    container_name: enhavo-proxy
    image: enhavo/enhavo-proxy
    ports:
      - "80:80"
      - "443:443"
      - "8080:8080"
    volumes:
      - '/data/enhavo-proxy/nginx:/etc/nginx'
      - '/data/enhavo-proxy/varnish:/etc/varnish'
      - '/data/enhavo-proxy/ssl:/var/ssl'
    environment:
      DATABASE_URL: mysql://root:root@mysql:3306/enhavo-proxy
  mysql:
    container_name: mysql
    image: mariadb:10.3
    environment:
      MYSQL_ROOT_PASSWORD: root
    volumes:
      - '/data/enhavo-proxy/mysql:/var/lib/mysql'

Contribution

Feel free to contribute

MIT License

This software is free to use with MIT License

About

http(s) proxy for caching and loadbalancing with web interface based on varnish and nginx

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published