Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/enhavo/enhavo-proxy
http(s) proxy for caching and loadbalancing with web interface based on varnish and nginx
https://github.com/enhavo/enhavo-proxy
cache enhavo lets-encrypt loadbalancer nginx php proxy ssl symfony varnish
Last synced: about 21 hours ago
JSON representation
http(s) proxy for caching and loadbalancing with web interface based on varnish and nginx
- Host: GitHub
- URL: https://github.com/enhavo/enhavo-proxy
- Owner: enhavo
- License: mit
- Created: 2019-08-11T13:24:17.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-01-04T21:57:11.000Z (about 2 years ago)
- Last Synced: 2024-04-14T07:30:44.405Z (10 months ago)
- Topics: cache, enhavo, lets-encrypt, loadbalancer, nginx, php, proxy, ssl, symfony, varnish
- Language: PHP
- Homepage: https://enhavo.com
- Size: 2.42 MB
- Stars: 4
- Watchers: 4
- Forks: 3
- Open Issues: 32
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![alt text](assets/enhavo/images/enhavo.svg "enhavo")
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](https://github.com/enhavo/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](assets/enhavo/images/architecture.svg "enhavo-proxy")
Run Docker
----------```bash
$ 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`
```yaml
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