áááºá¹ááá¬áá« áá²áá±á¬áºáá»á¬ážá áá»áœááºá¯ááºá ááá¯ááºááá¯ááºáá±ážáá¬áá¬áá»á¬ážááœáẠááŸááááºá 2006 ááááºážááááºáááºáá²á·ááŒá®ážáááºážáá¡á¯ááºáá»á¯ááºááŸá¯ááŸá
áºáá»á¬ážáá
áºáá»áŸá±á¬ááºááœáẠconfigs ááŸáá·áº templates á¡áá»á¬ážá¡ááŒá¬ážá
á¯áá±á¬ááºážáá²á·áááºá áá« nginx ááá¯á¡áá»á¬ážááŒá®ážáá»á®ážáá»á°ážááŒá®áž hub ááŸá¬ nginx hub ááá¯áá±á¬ááºáá
áºáááºážáááºážáá²á·á
áááºáá²á·áááºá m/ show off
áá°áááºáá»ááºážááœá±á áá°ááá¯á·á¡ááœáẠááœá¶á·ááŒáá¯ážááá¯ážáááºáá±áž áááºáá¬áá
áºáᯠáá°áá±á¬ááºáá±ážááá¯á· áá±á¬ááºážááá¯áá²á·ááŒá®áž áá°ááá¯á·áá²á· áá®ážááŒá¬áž ááá°áá¬áá¯á¶á
á¶ááœá±ááᯠááœá²áá°ááá·áºá¡á
á¬áž á
áááºáááºá
á¬ážá
áá¬áá±á¬ááºážáá²á· ááá±á¬áá»ááºáá
áºáá¯ááᯠáááááá²á·áááºá á
ááºáá±á«áºááŸá configs áá»á¬ážááᯠááŒáá·áºáá»ááºááŒá®áž áá¯ááºááŸááºááẠá
áááºááá¯á·á¡ááœáẠá¡áá¬á¡á¬ážáá¯á¶ážááᯠááŒááºáááºáá±ážáááºá áá«á
ááºážá
á¬ážáá²á·áááºá ááá¯á·áá±á¬áºá wget/fetch/curl ááᯠá¡áá¯á¶ážááŒá¯á áá¬áá¬ááá¯á· ááá¯ááºááá¯áẠá¡ááºáá¯ááºáá¯ááºááẠááœáá·áºáááŒá¯áá² nginxconfig ááẠáá
áºááŸááºáááºážááᯠááá±á¬ááºáá¬ááá¯á· áá±á«ááºážáá¯ááºáá¯ááºááẠáááºážááŸááºážááá·áºá¡ááœáẠáá»áœááºá¯ááºá¡á¬áž áá±á«áááœááºáá²á·áá«áááºá áá¬á¡áááá¹áá¬ááºáá²á ááá±á¬ááºáá¬ááŸá¬ áá¬ááŒá±á¬áá·áº ááá¯á¡ááºáá¬áá²á ááœááºááá¯ážááºááá± áá¬áá¬ááŸá¬ ááá¯á¡ááºáááºá á
áááºááá¯ážáááºá ááá±á¬áá»ááºáá²á·á¡áááºážá¡áááºááá¯ááŒáá·áºááá¯á· github ááá¯ááœá¬ážáá²á·áááºá á¡á²áá«á áááºážáá¯á¶áááºážááœááᯠáŠážáááºááœá¬ážááŒá®áž ááááºá¡áá±áá²á· ááœá²áá¯ááºááá¯á· áá±á¬ááºážááá¯áá²á·áááºá á
áááºááááºá
á¬ážááẠááá±ážááŒá
áºáá«áá°áž ð
áá¯ááºáá«áááºá á¡áááºážá¡ááŒá
áºááœá±ááᯠááá°ážáááºááŸá¬ Chrome á áá¯ááºáá¯ááºááá¯ááºáá²á· áá
Ạarchive ááᯠconfigs áá²á· ááœá²áá¯ááºáá²á· áááºááŸá¬ááŒáá·áºáá²á·áááºá á¡á²áá®ááŸá¬ âblob:â áá²á·á
áá²á· ááááºá
á¬áá
áºáá¯á áá»áœááºáá±á¬á·áºááᯠá
á±á¬áá·áºáá±áááºá ââá¡áá¯ážá áááºáá±á¬ááºááŸá¯ááẠáááºážáá
áºáá»áŸá±á¬ááºááœáẠáááºááá·áºá¡áá¬ááá¯áá»áŸ ááá¯ááºáá±ážááŒá±á¬ááºáž ááŸááºážááŸááºážáááºážáááºážááŒá
áºáá±ááŒá®ááŒá
áºááŒá®ážá á¡ááŸááºááŸá¬á áááºážááẠjs á០áá¯ááºáá±á¬ááºááŒááºážááŒá
áºáááºá á¡ááŸááºááŸá¬á zip archive ááᯠclientá browser ááŸáá·áº javascript ááá¯ááºááá¯ááºááá¯ááºáá±ážáá«áááºá á¡á²áá«ááœá±á á¡ááŸááá¬ážááŸá¬ ááá±á¬áá»ááºáá
áºáá¯ááŒá
áºáááºá á¡áá»áá¯á·ááᯠhtml á
á¬áá»ááºááŸá¬á¡ááŒá
Ạááá¯ážááŸááºážá
áœá¬ ááááºážáááºážááá¯ááºáááºá áááºážááẠá¡áá¯ááºááŒá
áºáááá·áºáááº) á€áááºááŸá¬ á¡ááœááºáááºá
áá¬áá±á¬ááºážááŒá®áž á
áááºáááºá
á¬ážá
áá¬áá±á¬ááºážááá·áº ááŒá±ááŸááºážáá»ááºáá
áºáá¯ááŒá
áºáá±á¬áºáááºážá á¡ááŸááºááááºáá±á¬á· á€ááá±á¬áá»ááºááᯠáááºáá®ážáá²á·ááá·áºá¡ááœáẠáá¬áá¬áá»á¬ážáááºááŸááºááŒááºážá¡ááœáẠá¡ááœááºá¡áááºáááŒá±ááŸáá«á ááá±á¬ááºáá¬ááŒáá·áº áá¯ááºáá¯ááºáá¬ážáá±á¬ ááŸááºáááºážááᯠáá±á«ááºážáá¯ááºáá¯ááºááŒá®áž 2019 áá¯ááŸá
áºááœáẠnc... ááᯠá¡áá¯á¶ážááŒá¯á áá¬áá¬ááá¯á· ááœáŸá²ááŒá±á¬ááºážáá«á áááŸááá¬áá±á¬ config ááᯠáá¬áá¬ááá¯á· ááá¯ááºááá¯ááºáá±á«ááºážáá¯ááºáá¯ááºááẠáááºážáááºážááŸá¬ááẠáá»áœááºá¯ááºááá¯ááºááá¯áẠáááºááŸááºáá¬áááºáá±ážáá²á·áá«áááºá
ááá±á¬áá»ááºááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒá®ážáá±á¬ááºá áá«á·ááœá±ážáá»ááºá
áá¬ááœá±á áá¬áá²ááá¯áá¬ááᯠá
áááºááœá±ážáá±á¬áá²á·áááºá ááá±á¬áá»ááºááẠáá±á¬ááºááœááºá០áááºážá
ááºáá±á¬ ááŸá±á·áá¯á¶ážááœáẠááŸááá±ááá·áºááá·áº á¡ááŒá±á¡áá±á០áááœáŸá²áááŸá±á¬áẠááá¯áá±á¬ááŒá±á¬áá·áº á¡áá¯ááºááŸá¬ ááŸá¯ááºááœá±ážáá«áááºá áá¯ááºáá«áááºá á¡ááá¯ážááŸááºážáá¯á¶ážááŒá±ááŸááºážáá»ááºááá±á¬á· direct links ááœá±ááᯠá¡áá¯á¶ážááŒá¯ááŒá®áž configs áá²á· archive áá
áºáá¯áááºáá®ážááá¯á· á¡áááºážá¡ááŒááºáá¯ááºááá¯ááºážáá¬áá«á
ááááºáá±á¬á· ááœá±ážáá»ááºá
áá¬ááœá± á¡áá»á¬ážááŒá®ážáááŸááá²á·áá«áá°ážá ááá¯áááááá»áá»ááŒá±á¬áááẠáá
áºáá¯áá² áááááá¬áááºá áá»áœááºá¯ááºááá¯á·ááẠááœááºáááá·áºáá»á¬ážááᯠá
áá
áºááá·áºááœááºážáááºááŸáá·áº áá
áºááŸááºáááºážáá
áºáá¯ááá°ááẠáá¬áá¬ááœááºááá¯ážááºááá¯á· áá°ážáá°ááá¯ááºáá±á¬ ááá·áºááºáá
áºáá¯ááᯠááá°áááºááá¯á¡ááºáá«áááºá
ááááºáá
ẠááŸááºáááºážááá¯ááºááŸá á
á¬áá¬ážááá¯ááºá¡áá»á¬ážá¡ááŒá¬ážááẠá¡áááºážáááºá¡áá±ážáá»áááºááŸáááŒá®áž á
á¬áá¬ážá¡á áá®ááá¯ááá¯ááºá¡áááºážáááºááŸááááºá áááá¬áááºááŸá¬ážáá±á¬ááŒá±ááŸááºážáá»ááºááŸá¬ áá¯ááºáá¯ááºáá¬ážáá±á¬ zip archive á០base64 string ááá¯ááá°ááŒá®áž console á¡ááœááºážááŸá command ááŒáá·áºáá¬áá¬áá±á«áºááœááºááŸáá
ááºááŒá¬ážáá¶ááŒá¬ážáá¶áá²ááá¯á·áá
áºáá»áááºááŒá
áºáááºá
echo 'base64string' | base64 --decode > config.zip
á€áá°áá®áá±á¬ zip ááá¯ááºááá¯áá»áœááºá¯ááºááá¯á·áááºáá®ážááá¯ááºáááºá
AngularJS ááœááºáá±ážáá¬ážáá²á·áááºá á
á¬áá±ážáá°ááẠreactive js framework ááá¯áááœá±ážáá»ááºáá«ááááºááá·áºáá¯ááºááá®ááá¯áá®áá¬ááá¯ááá¯á¡ááºáááºááá¯áá»áœááºá¯ááºá
áááºáá°ážáááºáááá«á ááá¯á·áá±á¬áº á€á¡áá¬á¡á¬ážáá¯á¶ážááẠVueJS ááœáẠáááºáá»áŸ ááá¯ážááŸááºážááŒá®áž ááá¯ááá¯ááŸááááºááᯠá¡ááŒáá·áºá¡á á
áááºáá°ážááŒáá·áºááá¯ááºáááºáá á€á¡áá¬ááẠáá¯á¶ážáááœá²ááŒá¬ážááŒá¬ážáá¬ážáá±á¬ á¡ááŒá±á¬ááºážá¡áá¬áá
áºáá¯ááŒá
áºáá±á¬áºáááºážá
ááá±á¬áá»ááºáááºážááŒá
áºáá»á¬ážááœáẠzip archive ááá¯áá¯ááºáá±ážáááºáááºážáááºážááá¯áá»áœááºá¯ááºááá¯á·ááœá±á·ááŒááºáááº-
$scope.downloadZip = function() {
var zip = new JSZip();
var sourceCodes = $window.document.querySelectorAll('main .file .code.source');
for (var i = 0; i < sourceCodes.length; i++) {
var sourceCode = sourceCodes[i];
var name = sourceCode.dataset.filename;
var content = sourceCode.children[0].children[0].innerText;
if (!$scope.isSymlink() && name.match(/^sites-available//)) {
name = name.replace(/^sites-available//, 'sites-enabled/');
}
zip.file(name, content);
if (name.match(/^sites-available//)) {
zip.file(name.replace(/^sites-available//, 'sites-enabled/'), '../' + name, {
unixPermissions: parseInt('120755', 8),
});
}
}
zip.generateAsync({
type: 'blob',
platform: 'UNIX',
}).then(function(content) {
saveAs(content, 'nginxconfig.io-' + $scope.getDomains().join(',') + '.zip');
});
gtag('event', $scope.getDomains().join(','), {
event_category: 'download_zip',
});
};
á á¬ááŒáá·áºááá¯ááºááᯠá¡áá¯á¶ážááŒá¯á á¡áá¬á¡á¬ážáá¯á¶ážááẠááá¯ážááŸááºážáá«áááºá ááœá²á·á ááºážááŸá¯ááá¯ááºáá»á¬ážááᯠáá±áá¬áá»ááá·áºáá±áá¬ááœáẠáá áºáá áºáᯠáááºáá®ážáá¬ážáááºá áá áºááŸááºáááºážááᯠáááºáá®ážááŒá®ážáá±á¬ááºá js ááẠáááºážááᯠá á¬ááŒáá·áºááá¯ááºááᯠá¡áá¯á¶ážááŒá¯á ááá±á¬ááºáá¬ááá¯á· áá±ážááá¯á·áááºá :
saveAs(content, 'nginxconfig.io-' + $scope.getDomains().join(',') + '.zip');
á¡ááŒá±á¬ááºážá¡áá¬ááẠzip archive ááááẠblob object ááŒá áºáááºá
áá±á¬ááºážááŒá®á áá«áá¯ááºá áá¬ááŸááá¬á áá°á·áá±ážá áááŒá¬ážááá¯ááºááᯠááá·áºááŒá®áž ááŸáááºááá¯ááºáá¬áá²á· ááá¬áá²á· zip archive ááᯠbrowser ááŸá¬ áááááºážáá² base64 áá¯ááºááᯠááá°ááá¯ááºáá«á áááºážáááºážáá±á¬áẠáá±á¬á·ááŒá®ážáááºá downloadZip áá áºáá¯áááºážá¡á á¬áž áááºážáááºáž á áᯠááá²á·áááºá
$scope.downloadZip = function() {
generateZip(function (content) {
saveAs(content, 'nginxconfig.io-' + $scope.getDomains().join(',') + '.zip');
});
gtag('event', $scope.getDomains().join(','), {
event_category: 'download_zip',
});
};
$scope.downloadBase64 = function() {
generateZip(function (content) {
var reader = new FileReader();
reader.readAsDataURL(content);
reader.onloadend = function() {
var base64 = reader.result.replace(/^data:.+;base64,/, '');
// в пеÑеЌеММПй base64 как Ñаз МÑжМÑй ЌМе zip аÑÑ
Ов в вОЎе base64 ÑÑÑПкО
}
});
gtag('event', $scope.getDomains().join(','), {
event_category: 'download_base64',
});
};
áááºáááááŒá¯ááááá·áºá¡ááá¯ááºážá áá»áœááºá¯ááºááẠzip archive ááá»áá¯ážáááºááᯠáá®ážááá·áº generateZip áááºážáááºážááá¯á· ááœáŸá±á·ááá¯ááºáá«áááºá áááºážááẠAngularJS ááŒá áºááŒá®áž á á¬áá±ážááá¬ááá¯ááºááá¯ááºá ááŒááºáá±á«áºááŒááºážáá»á¬ážááᯠá áœá²ááá¯ááºáá¬ážááŒá®áž ááááá»á¬ážááŒáá·áº áááºážááᯠá¡áá±á¬ááºá¡áááºááá±á¬áºáá²á·áá«á downloadZip ááẠá¡ááœááºáá áºáá¯á¡ááŒá ẠSaveA ááᯠáááºáááºáá¯ááºáá±á¬ááºáá²á·ááŒá®ážá downloadBase64 ááẠá¡áááºážáááºááœá²ááŒá¬ážááá·áºá¡áá¬áá áºáá¯ááᯠáá¯ááºáá±á¬ááºáá²á·áááºá áá»áœááºá¯ááºááá¯á·áá¶ html5 ááŒáá·áº áá±á¬ááºáá¬áá±á¬ FileReader á¡áá¬ááá¹áá¯áá áºáá¯ááᯠáá»áœááºá¯ááºááá¯á· áááºáá®ážááŒá®áž á¡áá±á¬áºáá±áž ááŒá®ážáá±ááŒá®ááŒá áºáááºá á¡áá¯á¶ážááŒá¯áááºá áá áºáá»áááºáááºážááœááºá áááºááá·áºá¡áá¬ááẠblob áá áºáá¯á០base64 á á¬ááŒá±á¬ááºážááᯠááŒá¯áá¯ááºááá¯ááºááẠááá¯á·ááá¯áẠáááºážááẠDataURL á á¬ááŒá±á¬ááºážáá áºáᯠááŒá¯áá¯ááºááá¯ááºáá±á¬áºáááºáž áááºážááẠáá»áœááºá¯ááºááá¯á·á¡ááœáẠá¡ááœááºá¡áá±ážááŒá®ážáá±á¬ááŒá±á¬áá·áºá DataURL ááœáẠáá»áœááºá¯ááºááá¯á· ááá¯á¡ááºáááºáá»á¬áž á¡ááá¡áá» áá«áááºáá«áááºá áá«ááœá±á¡á¬ážáá¯á¶ážááᯠááŒá¬ážáá¶áá²ááá·áºááá¯á· ááŒáá¯ážá á¬ážáá²á·á¡áá« áááºááá¯á áá¶ááá¯ážáááºážáááºážá áá«á·ááᯠá á±á¬áá·áºááŒáá¯áá±áááºá á á¬áá±ážáá°ááẠááá±á¬áá»ááºááœáẠá á¬ááŒáá·áºááá¯ááºááᯠá¡áá¯á¶ážááŒá¯áá²á·áááºá ááœá±ážáá»ááºáá¬ážáá±á¬á á¬áá¬ážááá¯á¡ááŒá±áá¶á flash á¡áá¬ááá¹áá¯áá»á¬ážááá«áá² clipboard ááŸáá·áºá¡áá¯ááºáá¯ááºááá¯ááºá á±áá±á¬á á¡á ááá¯ááºážááœááºá áá»áœááºá¯ááºááẠáá»áœááºá¯ááºá base64 ááᯠdisplay áá«ááá·áº ááŒááºá ááºáá áºáá¯ááœáẠááá·áºááẠáá¯á¶ážááŒááºáá²á·áááºá ááá¯á·áá±á¬áº á€ááá á¹á ááœáẠáá»áœááºá¯ááºá áááºážááᯠááá áºáá¯ááºáá±á«áºááœáẠáááá·áºááá¯ááºáá±á¬ááŒá±á¬áá·áºá ááœá²ááœááºááŒááºáž áááŸááá«á ááá¯á·ááŒá±á¬áá·áº display:none; áá«áá¯ááºáá²á·áááºá
position: absolute;
z-index: -1;
opacity: 0;
áááºážááẠáá»áœááºá¯ááºá¡á¬áž ááŸá áºáá¯á áá¯á¶ážá¡á¬áž ááŒááºááœááºážá០áá»á±á¬ááºáá¬ážááá¯ááºá á±ááŒá®áž áááºážááᯠá á¬áá»ááºááŸá¬áá±á«áºááœáẠá¡ááŸááºáááẠáá¬ážáá²á·ááá¯ááºá á±áá«áááºá áá«ááá¯áááºáá±á¬á· á¡áá¯ááºááŒá®ážááœá¬ážáá«ááŒá®á áá»áœááºá¯ááºááá¯ááºááᯠááŸáááºááá¯ááºáá±á¬á¡áá«á á€áá²á·ááá¯á·áá±á¬ á á¬ááŒá±á¬ááºážááᯠááŒá¬ážáá¶ááœáẠáá¬ážááŸááá«áááº-
echo 'base64string' | base64 --decode > config.zip
áá»áœááºá¯ááºááẠáá¬áá¬áá±á«áºááŸá ááœááºááá¯ážááºáá²ááá¯á· ááá¯ážááá¯ážáá°ážááá·áºááá¯ááºáááºááŸáá·áº áá»ááºááŒááºážááẠáá
áºááŸááºáááºážááᯠáááºáá¶áááŸááá²á·áááºá
á¡ááŸááºáá«áá²á áá»áœááºáá±á¬áº á
á¬áá±ážáá°áá¶ áá±á¬ááºážááá¯áá»ááºáá
áºáᯠáá±ážááá¯á·áá²á·áááºááá¯áá±á¬á·... ááá±á¬áá»ááºááẠá¡áááºáááºá áááºááŒáœáááºá á
á¬áá±ážáá°áá¶á០á¡ááºááááºáá»á¬ážááᯠááŒáá·áºááá¯ááŒá®áž ááá¯ááºááá¯ááºááá¯áẠááŸááááº) á
áááºáááºá
á¬ážáá°áá»á¬ážá¡ááœáẠá€áá±áá¬ááœááºá ááá±á¬áá»ááºááŸáá·áº áá°ááá¯ááºááá¯áẠáá«ááŒááºáááºáá¬ážáááº/ááá·áºáá¬ážáááºááᯠáááºááŒááºááá¯ááºááẠá
á¡á¬ážáá¯á¶ážáá² áá»á±á¬áºááœáŸááºááá¯ážáááºááŒáá«á
á±á)
source: www.habr.com
