mirror of
https://github.com/cytopia/devilbox.git
synced 2024-12-21 21:57:47 +00:00
REL-0.9 Properly check client-side DNS via ajax CSR calls
This commit is contained in:
parent
d6fd9d1cda
commit
83ab3d8758
@ -26,6 +26,9 @@
|
||||
VirtualDocumentRoot /shared/httpd/%-2+/htdocs/
|
||||
php_admin_value auto_prepend_file /opt/bin/fix-virtual-docroot.php
|
||||
|
||||
# Devilbox API endpoint
|
||||
Alias "/devilbox-api" "/var/www/default/api/devilbox-api"
|
||||
|
||||
<Directory "/shared/httpd/*/htdocs/">
|
||||
DirectoryIndex index.php index.html
|
||||
|
||||
|
@ -26,6 +26,9 @@
|
||||
VirtualDocumentRoot /shared/httpd/%-2+/htdocs/
|
||||
php_admin_value auto_prepend_file /opt/bin/fix-virtual-docroot.php
|
||||
|
||||
# Devilbox API endpoint
|
||||
Alias "/devilbox-api" "/var/www/default/api/devilbox-api"
|
||||
|
||||
<Directory "/shared/httpd/*/htdocs/">
|
||||
DirectoryIndex index.php index.html
|
||||
|
||||
|
@ -19,13 +19,20 @@ server {
|
||||
try_files $uri $uri/ /index.php;
|
||||
}
|
||||
|
||||
# PHP FPM
|
||||
location ~ \.php?$ {
|
||||
# Devilbox API endpoint
|
||||
location ~ /devilbox-api/ {
|
||||
root /var/www/default/api/;
|
||||
index status.json;
|
||||
|
||||
# Required for DNS checking
|
||||
# Allow cross-domain requests to this domain
|
||||
# Used to validate if client DNS is setup correctly
|
||||
if ( $http_origin ~* (https?://(localhost|127\.0\.0\.1|httpd)$) ) {
|
||||
add_header "Access-Control-Allow-Origin" "$http_origin";
|
||||
}
|
||||
}
|
||||
|
||||
# PHP FPM
|
||||
location ~ \.php?$ {
|
||||
|
||||
# PHP.INI:
|
||||
# ---------------------------
|
||||
|
@ -19,13 +19,20 @@ server {
|
||||
try_files $uri $uri/ /index.php;
|
||||
}
|
||||
|
||||
# PHP FPM
|
||||
location ~ \.php?$ {
|
||||
# Devilbox API endpoint
|
||||
location ~ /devilbox-api/ {
|
||||
root /var/www/default/api/;
|
||||
index status.json;
|
||||
|
||||
# Required for DNS checking
|
||||
# Allow cross-domain requests to this domain
|
||||
# Used to validate if client DNS is setup correctly
|
||||
if ( $http_origin ~* (https?://(localhost|127\.0\.0\.1|httpd)$) ) {
|
||||
add_header "Access-Control-Allow-Origin" "$http_origin";
|
||||
}
|
||||
}
|
||||
|
||||
# PHP FPM
|
||||
location ~ \.php?$ {
|
||||
|
||||
# PHP.INI:
|
||||
# ---------------------------
|
||||
|
1
.devilbox/www/api/devilbox-api/status.json
Normal file
1
.devilbox/www/api/devilbox-api/status.json
Normal file
@ -0,0 +1 @@
|
||||
{"success":"true"}
|
@ -98,48 +98,48 @@
|
||||
*/
|
||||
function checkDns(vhost) {
|
||||
var xhttp = new XMLHttpRequest();
|
||||
// Timeout after 1 seconds and mark it invalid DNS
|
||||
xhttp.timeout = <?php echo loadClass('Docker')->getEnv('DNS_CHECK_TIMEOUT');?> * 100;
|
||||
|
||||
var el_valid = document.getElementById('valid-' + vhost);
|
||||
var el_href = document.getElementById('href-' + vhost);
|
||||
var error = this.responseText;
|
||||
// Timeout after XXX seconds and mark it invalid DNS
|
||||
xhttp.timeout = <?php echo loadClass('Docker')->getEnv('DNS_CHECK_TIMEOUT');?>000;
|
||||
|
||||
xhttp.onreadystatechange = function(e) {
|
||||
var el_valid = document.getElementById('valid-' + vhost);
|
||||
var el_href = document.getElementById('href-' + vhost);
|
||||
var error = this.responseText;
|
||||
|
||||
if (this.readyState == 4 && this.status == 200) {
|
||||
clearTimeout(xmlHttpTimeout);
|
||||
el_valid.className += ' bg-success';
|
||||
el_valid.innerHTML = 'OK';
|
||||
el_href.innerHTML = '<a target="_blank" href="http://'+vhost+'.<?php echo loadClass('Php')->getTldSuffix().$Docker->getPort();?>">'+vhost+'.<?php echo loadClass('Php')->getTldSuffix().$Docker->getPort();?></a>';
|
||||
} else {
|
||||
//console.log(vhost);
|
||||
}
|
||||
}
|
||||
xhttp.ontimeout = function(e) {
|
||||
xhttp.open('GET', 'http://'+vhost+'.<?php echo loadClass('Php')->getTldSuffix();?>/devilbox-api/status.json', true);
|
||||
xhttp.send();
|
||||
// Timeout to abort in 1 second
|
||||
var xmlHttpTimeout=setTimeout(ajaxTimeout, <?php echo loadClass('Docker')->getEnv('DNS_CHECK_TIMEOUT');?>000);
|
||||
function ajaxTimeout(e){
|
||||
var el_valid = document.getElementById('valid-' + vhost);
|
||||
var el_href = document.getElementById('href-' + vhost);
|
||||
var error = this.responseText;
|
||||
|
||||
el_valid.className += ' bg-danger';
|
||||
el_valid.innerHTML = 'ERR';
|
||||
el_href.innerHTML = 'No DNS record found: <code>127.0.0.1 '+vhost+'.<?php echo loadClass('Php')->getTldSuffix();?></code>';
|
||||
}
|
||||
//xhttp.abort = function(e) {
|
||||
// el_valid.className += ' bg-danger';
|
||||
// el_valid.innerHTML = 'ERR';
|
||||
// el_href.innerHTML = 'No DNS record found: <code>127.0.0.1 '+vhost+'.<?php echo loadClass('Php')->getTldSuffix();?></code>';
|
||||
//}
|
||||
xhttp.open('GET', 'http://'+vhost+'.<?php echo loadClass('Php')->getTldSuffix();?>', true);
|
||||
xhttp.send();
|
||||
// Timeout to abort in 1 second
|
||||
var xmlHttpTimeout=setTimeout(ajaxTimeout, <?php echo loadClass('Docker')->getEnv('DNS_CHECK_TIMEOUT');?>100);
|
||||
function ajaxTimeout(){
|
||||
xhttp.ontimeout();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
var vhosts = document.getElementsByName('vhost[]');
|
||||
|
||||
for (i = 0; i < vhosts.length; i++) {
|
||||
updateStatus(vhosts[i].value);
|
||||
}
|
||||
|
||||
})();
|
||||
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
Loading…
Reference in New Issue
Block a user