mirror of
https://github.com/cytopia/devilbox.git
synced 2025-06-20 16:10:24 +00:00
Refs #480 Add HAProxy in front of Varnish for SSL offloading
This commit is contained in:
@ -14,7 +14,7 @@ putenv('RES_OPTIONS=retrans:1 retry:1 timeout:1 attempts:1');
|
|||||||
|
|
||||||
|
|
||||||
$DEVILBOX_VERSION = 'v0.15';
|
$DEVILBOX_VERSION = 'v0.15';
|
||||||
$DEVILBOX_DATE = '2019-02-23';
|
$DEVILBOX_DATE = '2019-02-27';
|
||||||
$DEVILBOX_API_PAGE = 'devilbox-api/status.json';
|
$DEVILBOX_API_PAGE = 'devilbox-api/status.json';
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -110,6 +110,14 @@
|
|||||||
*/
|
*/
|
||||||
function checkDns(vhost) {
|
function checkDns(vhost) {
|
||||||
var xhttp = new XMLHttpRequest();
|
var xhttp = new XMLHttpRequest();
|
||||||
|
var proto;
|
||||||
|
var port;
|
||||||
|
var name = vhost + '.<?php echo loadClass('Httpd')->getTldSuffix();?>'
|
||||||
|
|
||||||
|
var url = window.location.href.split("/");
|
||||||
|
var tmp = url[2].split(":");
|
||||||
|
proto = url[0];
|
||||||
|
port = tmp.length == 2 ? ':' + tmp[1] : '';
|
||||||
|
|
||||||
// Timeout after XXX seconds and mark it invalid DNS
|
// Timeout after XXX seconds and mark it invalid DNS
|
||||||
xhttp.timeout = <?php echo loadClass('Helper')->getEnv('DNS_CHECK_TIMEOUT');?>000;
|
xhttp.timeout = <?php echo loadClass('Helper')->getEnv('DNS_CHECK_TIMEOUT');?>000;
|
||||||
@ -125,12 +133,12 @@
|
|||||||
if (el_valid.innerHTML != 'WARN') {
|
if (el_valid.innerHTML != 'WARN') {
|
||||||
el_valid.innerHTML = 'OK';
|
el_valid.innerHTML = 'OK';
|
||||||
}
|
}
|
||||||
el_href.innerHTML = '<a target="_blank" href="//'+vhost+'.<?php echo loadClass('Httpd')->getTldSuffix().loadClass('Httpd')->getPort();?>">'+vhost+'.<?php echo loadClass('Httpd')->getTldSuffix().loadClass('Httpd')->getPort();?></a>' + el_href.innerHTML;
|
el_href.innerHTML = '<a target="_blank" href="'+proto+'//'+name+port+'">'+name+port+'</a>' + el_href.innerHTML;
|
||||||
} else {
|
} else {
|
||||||
//console.log(vhost);
|
//console.log(vhost);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
xhttp.open('POST', '//'+vhost+'.<?php echo loadClass('Httpd')->getTldSuffix().loadClass('Httpd')->getPort();?>/devilbox-api/status.json', true);
|
xhttp.open('POST', proto+'//'+name+port+'/devilbox-api/status.json', true);
|
||||||
xhttp.send();
|
xhttp.send();
|
||||||
|
|
||||||
// Timeout to abort in 1 second
|
// Timeout to abort in 1 second
|
||||||
|
@ -90,7 +90,7 @@ services:
|
|||||||
# Varnish
|
# Varnish
|
||||||
# -----------------------------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------------------------
|
||||||
varnish:
|
varnish:
|
||||||
image: devilbox/varnish:${VARNISH_SERVER:-6}
|
image: devilbox/varnish:${VARNISH_SERVER:-6}-0.3
|
||||||
hostname: varnish
|
hostname: varnish
|
||||||
ports:
|
ports:
|
||||||
- "${LOCAL_LISTEN_ADDR}${HOST_PORT_VARNISH:-6081}:6081"
|
- "${LOCAL_LISTEN_ADDR}${HOST_PORT_VARNISH:-6081}:6081"
|
||||||
@ -110,6 +110,31 @@ services:
|
|||||||
- php
|
- php
|
||||||
- httpd
|
- httpd
|
||||||
|
|
||||||
|
haproxy:
|
||||||
|
image: devilbox/haproxy:0.2
|
||||||
|
hostname: haproxy
|
||||||
|
ports:
|
||||||
|
- "${LOCAL_LISTEN_ADDR}${HOST_PORT_HAPROXY:-8080}:80"
|
||||||
|
- "${LOCAL_LISTEN_ADDR}${HOST_PORT_HAPROXY_SSL:-8443}:443"
|
||||||
|
networks:
|
||||||
|
app_net:
|
||||||
|
ipv4_address: 172.16.238.231
|
||||||
|
environment:
|
||||||
|
- BACKEND_ADDR=varnish
|
||||||
|
- BACKEND_PORT=6081
|
||||||
|
- DEVILBOX_UI_SSL_CN
|
||||||
|
- TLD_SUFFIX
|
||||||
|
volumes:
|
||||||
|
# Certificate Authority public key
|
||||||
|
- ${DEVILBOX_PATH}/ca:/ca:rw${MOUNT_OPTIONS}
|
||||||
|
# Mount custom mass virtual hosting
|
||||||
|
- ${HOST_PATH_HTTPD_DATADIR}:/shared/httpd:rw${MOUNT_OPTIONS}
|
||||||
|
depends_on:
|
||||||
|
- bind
|
||||||
|
- php
|
||||||
|
- httpd
|
||||||
|
- varnish
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------------------------
|
||||||
# ELK Stack
|
# ELK Stack
|
||||||
# -----------------------------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
@ -7,7 +7,7 @@ services:
|
|||||||
# Varnish
|
# Varnish
|
||||||
# -----------------------------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------------------------
|
||||||
varnish:
|
varnish:
|
||||||
image: devilbox/varnish:${VARNISH_SERVER:-6}
|
image: devilbox/varnish:${VARNISH_SERVER:-6}-0.3
|
||||||
hostname: varnish
|
hostname: varnish
|
||||||
ports:
|
ports:
|
||||||
- "${LOCAL_LISTEN_ADDR}${HOST_PORT_VARNISH:-6081}:6081"
|
- "${LOCAL_LISTEN_ADDR}${HOST_PORT_VARNISH:-6081}:6081"
|
||||||
@ -26,3 +26,28 @@ services:
|
|||||||
- bind
|
- bind
|
||||||
- php
|
- php
|
||||||
- httpd
|
- httpd
|
||||||
|
|
||||||
|
haproxy:
|
||||||
|
image: devilbox/haproxy:0.2
|
||||||
|
hostname: haproxy
|
||||||
|
ports:
|
||||||
|
- "${LOCAL_LISTEN_ADDR}${HOST_PORT_HAPROXY:-8080}:80"
|
||||||
|
- "${LOCAL_LISTEN_ADDR}${HOST_PORT_HAPROXY_SSL:-8443}:443"
|
||||||
|
networks:
|
||||||
|
app_net:
|
||||||
|
ipv4_address: 172.16.238.231
|
||||||
|
environment:
|
||||||
|
- BACKEND_ADDR=varnish
|
||||||
|
- BACKEND_PORT=6081
|
||||||
|
- DEVILBOX_UI_SSL_CN
|
||||||
|
- TLD_SUFFIX
|
||||||
|
volumes:
|
||||||
|
# Certificate Authority public key
|
||||||
|
- ${DEVILBOX_PATH}/ca:/ca:rw${MOUNT_OPTIONS}
|
||||||
|
# Mount custom mass virtual hosting
|
||||||
|
- ${HOST_PATH_HTTPD_DATADIR}:/shared/httpd:rw${MOUNT_OPTIONS}
|
||||||
|
depends_on:
|
||||||
|
- bind
|
||||||
|
- php
|
||||||
|
- httpd
|
||||||
|
- varnish
|
||||||
|
Reference in New Issue
Block a user