Fixed sitemap, www redirect, renew cert

This commit is contained in:
zeldaroot 2019-10-11 22:01:59 +03:00
parent 41f14a8de2
commit dbef2208da
9 changed files with 114 additions and 149 deletions

View file

@ -46,7 +46,7 @@ post_crontabs() {
&& [ -d "/home/${CP_DOMAIN}/config/production/nginx/ssl.d/live/${CP_DOMAIN}/" ]; then
echo -e "\n" >>/etc/crontab
echo "# ----- ${CP_DOMAIN}_ssl --------------------------------------" >>/etc/crontab
echo "0 23 * * * root docker run -it --rm -v /home/${CP_DOMAIN}/config/production/nginx/ssl.d:/etc/letsencrypt -v /home/${CP_DOMAIN}/config/production/nginx/letsencrypt:/var/lib/letsencrypt -v /home/${CP_DOMAIN}/config/production/nginx/cloudflare.ini:/cloudflare.ini certbot/dns-cloudflare renew --dns-cloudflare --dns-cloudflare-credentials /cloudflare.ini --quiet --post-hook \"docker exec -d nginx nginx -s reload\" >>/home/${CP_DOMAIN}/log/https_\$(date '+%d_%m_%Y').log 2>&1" >>/etc/crontab
echo "0 23 * * * root docker run -it --rm -v /home/${CP_DOMAIN}/config/production/nginx/ssl.d:/etc/letsencrypt -v /home/${CP_DOMAIN}/config/production/nginx/letsencrypt:/var/lib/letsencrypt -v /home/${CP_DOMAIN}/config/production/nginx/cloudflare.ini:/cloudflare.ini certbot/dns-cloudflare renew --dns-cloudflare --dns-cloudflare-credentials /cloudflare.ini --quiet >>/home/${CP_DOMAIN}/log/https_\$(date '+%d_%m_%Y').log 2>&1; docker exec -d nginx nginx -s reload" >>/etc/crontab
echo "# ----- ${CP_DOMAIN}_ssl --------------------------------------" >>/etc/crontab
fi
}

View file

@ -108,9 +108,10 @@ server {
proxy_max_temp_file_size 0;
proxy_next_upstream error timeout http_500 http_502 http_503 http_504;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_pass http://example.com;
}
@ -133,9 +134,10 @@ server {
proxy_max_temp_file_size 0;
proxy_next_upstream error timeout http_500 http_502 http_503 http_504;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_pass http://example.com;
}
@ -146,9 +148,10 @@ server {
proxy_max_temp_file_size 0;
proxy_next_upstream error timeout http_500 http_502 http_503 http_504;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_pass http://example.com;
}

View file

@ -26,7 +26,7 @@
<script src="/themes/default/public/admin/js/all.min.js"></script>
<style>
html{height:100%;min-height:100%;margin:0;padding:0}body{position:relative;height:100%;min-height:100%;margin:0;padding:0;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:20px}#error-container{height:100%;min-height:100%;width:100%;background-image: url("/themes/default/public/admin/images/404.jpg");background-size:cover;} #error-box{height:100%;min-height:100%;width:380px;padding:60px 40px 40px} header h1{width:100%;float:left;font-size:80px;font-weight:700;line-height:80px;margin:5px 0} header h2{width:100%;float:left;font-size:16px;font-weight:400;margin:0} .error-content{float:left;width:100%;margin:30px 0} .breadcrumb{float:left;width:100%;margin:30px 0 0} .breadcrumb a:hover{text-decoration:underline}
html{height:100%;min-height:100%;margin:0;padding:0}body{position:relative;height:100%;min-height:100%;margin:0;padding:0;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:20px}#error-container{height:100%;min-height:100%;width:100%;background-image: url("/themes/default/public/admin/images/404.jpg");background-size:cover;}#error-box{height:100%;min-height:100%;width:380px;padding:60px 40px 40px} header h1{width:100%;float:left;font-size:80px;font-weight:700;line-height:80px;margin:5px 0} header h2{width:100%;float:left;font-size:16px;font-weight:400;margin:0}.error-content{float:left;width:100%;margin:30px 0;text-align:center}.breadcrumb{float:left;width:100%;margin:30px 0 0}.breadcrumb a:hover{text-decoration:underline}
</style>
</head>

View file

@ -26,7 +26,7 @@
<script src="/themes/default/public/admin/js/all.min.js"></script>
<style>
html{height:100%;min-height:100%;margin:0;padding:0}body{position:relative;height:100%;min-height:100%;margin:0;padding:0;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:20px}#error-container{height:100%;min-height:100%;width:100%;background-image: url("/themes/default/public/admin/images/404.jpg");background-size:cover;} #error-box{height:100%;min-height:100%;width:380px;padding:60px 40px 40px} header h1{width:100%;float:left;font-size:80px;font-weight:700;line-height:80px;margin:5px 0} header h2{width:100%;float:left;font-size:16px;font-weight:400;margin:0} .error-content{float:left;width:100%;margin:30px 0} .breadcrumb{float:left;width:100%;margin:30px 0 0} .breadcrumb a:hover{text-decoration:underline}
html{height:100%;min-height:100%;margin:0;padding:0}body{position:relative;height:100%;min-height:100%;margin:0;padding:0;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:20px}#error-container{height:100%;min-height:100%;width:100%;background-image: url("/themes/default/public/admin/images/404.jpg");background-size:cover;}#error-box{height:100%;min-height:100%;width:380px;padding:60px 40px 40px} header h1{width:100%;float:left;font-size:80px;font-weight:700;line-height:80px;margin:5px 0} header h2{width:100%;float:left;font-size:16px;font-weight:400;margin:0}.error-content{float:left;width:100%;margin:30px 0;text-align:center}.breadcrumb{float:left;width:100%;margin:30px 0 0}.breadcrumb a:hover{text-decoration:underline}
</style>
</head>

View file

@ -26,7 +26,7 @@
<script src="/themes/default/public/admin/js/all.min.js"></script>
<style>
html{height:100%;min-height:100%;margin:0;padding:0}body{position:relative;height:100%;min-height:100%;margin:0;padding:0;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:20px}#error-container{height:100%;min-height:100%;width:100%;background-image: url("/themes/default/public/admin/images/404.jpg");background-size:cover;} #error-box{height:100%;min-height:100%;width:380px;padding:60px 40px 40px} header h1{width:100%;float:left;font-size:80px;font-weight:700;line-height:80px;margin:5px 0} header h2{width:100%;float:left;font-size:16px;font-weight:400;margin:0} .error-content{float:left;width:100%;margin:30px 0} .breadcrumb{float:left;width:100%;margin:30px 0 0} .breadcrumb a:hover{text-decoration:underline}
html{height:100%;min-height:100%;margin:0;padding:0}body{position:relative;height:100%;min-height:100%;margin:0;padding:0;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:20px}#error-container{height:100%;min-height:100%;width:100%;background-image: url("/themes/default/public/admin/images/404.jpg");background-size:cover;}#error-box{height:100%;min-height:100%;width:380px;padding:60px 40px 40px} header h1{width:100%;float:left;font-size:80px;font-weight:700;line-height:80px;margin:5px 0} header h2{width:100%;float:left;font-size:16px;font-weight:400;margin:0}.error-content{float:left;width:100%;margin:30px 0;text-align:center}.breadcrumb{float:left;width:100%;margin:30px 0 0}.breadcrumb a:hover{text-decoration:underline}
</style>
</head>

View file

@ -26,7 +26,7 @@
<script src="/themes/default/public/admin/js/all.min.js"></script>
<style>
html{height:100%;min-height:100%;margin:0;padding:0}body{position:relative;height:100%;min-height:100%;margin:0;padding:0;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:20px}#error-container{height:100%;min-height:100%;width:100%;background-image: url("/themes/default/public/admin/images/404.jpg");background-size:cover;} #error-box{height:100%;min-height:100%;width:380px;padding:60px 40px 40px} header h1{width:100%;float:left;font-size:80px;font-weight:700;line-height:80px;margin:5px 0} header h2{width:100%;float:left;font-size:16px;font-weight:400;margin:0} .error-content{float:left;width:100%;margin:30px 0} .breadcrumb{float:left;width:100%;margin:30px 0 0} .breadcrumb a:hover{text-decoration:underline}
html{height:100%;min-height:100%;margin:0;padding:0}body{position:relative;height:100%;min-height:100%;margin:0;padding:0;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:20px}#error-container{height:100%;min-height:100%;width:100%;background-image: url("/themes/default/public/admin/images/404.jpg");background-size:cover;}#error-box{height:100%;min-height:100%;width:380px;padding:60px 40px 40px} header h1{width:100%;float:left;font-size:80px;font-weight:700;line-height:80px;margin:5px 0} header h2{width:100%;float:left;font-size:16px;font-weight:400;margin:0}.error-content{float:left;width:100%;margin:30px 0;text-align:center}.breadcrumb{float:left;width:100%;margin:30px 0 0}.breadcrumb a:hover{text-decoration:underline}
</style>
</head>

View file

@ -30,8 +30,9 @@ module.exports = function(lookup) {
config.random &&
config.homepage &&
config.subdomain &&
config.domain === host &&
config.domain !== config.homepage
config.domain !== config.homepage &&
(config.domain === host ||
(config.subdomain !== 'www.' && 'www.' + config.domain === host))
) {
return res.redirect(302, '//' + config.homepage);
}

View file

@ -48,7 +48,7 @@ function allSitemap(options, callback) {
var render = {};
render.sitemaps = [];
var categories = CP_structure.categories('year', movies);
var categories = CP_structure.categories('year', movies, options);
var y = new Date().getFullYear() + '';
@ -115,7 +115,7 @@ function allSitemap(options, callback) {
* Getting the data to render one sitemap page.
*
* @param {String} type
* @param {String} year
* @param {number} year
* @param {Object} options
* @param {Callback} callback
*/
@ -132,7 +132,6 @@ function oneSitemap(type, year, options, callback) {
: getCategories('year', function(err, render) {
return err ? callback(err) : callback(null, render);
});
break;
case config.urls.genre:
getCategories('genre', function(err, render) {
return err ? callback(err) : callback(null, render);
@ -169,12 +168,6 @@ function oneSitemap(type, year, options, callback) {
});
}
/**
* Get types.
*
* @param {Callback} callback
*/
function getTypes(callback) {
var render = {};
render.urls = [];
@ -203,13 +196,6 @@ function oneSitemap(type, year, options, callback) {
callback(null, render);
}
/**
* Get categories.
*
* @param {String} category
* @param {Callback} callback
*/
function getCategories(category, callback) {
var query = {};
query[category] = '!_empty';
@ -222,7 +208,7 @@ function oneSitemap(type, year, options, callback) {
var render = {};
render.urls = [];
var categories = CP_structure.categories(category, movies);
var categories = CP_structure.categories(category, movies, options);
for (var year in categories) {
if (categories.hasOwnProperty(year)) {
@ -254,7 +240,7 @@ function oneSitemap(type, year, options, callback) {
var render = {};
render.urls = [];
CP_get.contents({}, 500, function(err, contents) {
CP_get.contents({}, 500, 1, true, options, function(err, contents) {
if (err) return callback(err);
var render = {};
@ -288,45 +274,53 @@ function oneSitemap(type, year, options, callback) {
* Get movies.
*
* @param {String} year
* @param {Callback} callback
* @param {function(*=, *=): *} callback
*/
function getMovies(year, callback) {
CP_get.movies({ year: year }, 2525, function(err, movies) {
if (options.debug) {
options.debug.detail.push({
type: 'sitemapMovies',
duration: new Date() - options.debug.duration.current + 'ms'
});
options.debug.duration.current = new Date();
}
if (err) return callback(err);
if (movies && movies.length) {
var render = {};
render.urls = [];
for (var i = 0; i < movies.length; i++) {
if (
!config.urls.noindex ||
!(movies[i].url.indexOf('/' + config.urls.noindex + '/') + 1)
) {
render.urls[render.urls.length] = {
loc: movies[i].url,
lastmod:
movies[i].custom && movies[i].custom.lastmod
? movies[i].custom.lastmod.substr(0, 10)
: ''
};
}
CP_get.movies(
{ year: year },
2525,
'kinopoisk-vote-up',
1,
true,
options,
function(err, movies) {
if (options.debug) {
options.debug.detail.push({
type: 'sitemapMovies',
duration: new Date() - options.debug.duration.current + 'ms'
});
options.debug.duration.current = new Date();
}
callback(null, render);
} else {
callback(null, { urls: [] });
if (err) return callback(err);
if (movies && movies.length) {
var render = {};
render.urls = [];
for (var i = 0; i < movies.length; i++) {
if (
!config.urls.noindex ||
!(movies[i].url.indexOf('/' + config.urls.noindex + '/') + 1)
) {
render.urls[render.urls.length] = {
loc: movies[i].url,
lastmod:
movies[i].custom && movies[i].custom.lastmod
? movies[i].custom.lastmod.substr(0, 10)
: ''
};
}
}
callback(null, render);
} else {
callback(null, { urls: [] });
}
}
});
);
}
}

View file

@ -107,28 +107,18 @@ router.get('/:level1?/:level2?/:level3?/:level4?', function(req, res, next) {
renderData(err, render);
});
/**
* Get render.
*
* @param {Callback} callback
*/
function getRender(callback) {
return config.cache.time
? getCache(function(err, render) {
return err ? callback(err) : callback(null, render);
})
: getSphinx(function(err, render) {
return err ? callback(err) : callback(null, render);
});
if (config.cache.time) {
getCache(function(err, render) {
return callback(err, render);
});
} else {
getSphinx(function(err, render) {
return callback(err, render);
});
}
}
/**
* Get cache.
*
* @param {Callback} callback
*/
function getCache(callback) {
CP_cache.get(urlHash, function(err, render) {
if (err) return callback(err);
@ -141,12 +131,6 @@ router.get('/:level1?/:level2?/:level3?/:level4?', function(req, res, next) {
});
}
/**
* Get sphinx.
*
* @param {Callback} callback
*/
function getSphinx(callback) {
switch (template) {
case 'movie':
@ -220,7 +204,7 @@ router.get('/:level1?/:level2?/:level3?/:level4?', function(req, res, next) {
break;
case 'category':
if (typeof req.query.random !== 'undefined' && modules.random.status) {
return category.random(level1, level2, options, function(err, url) {
category.random(level1, level2, options, function(err, url) {
if (err) {
callback(err);
} else if (!url) {
@ -229,17 +213,18 @@ router.get('/:level1?/:level2?/:level3?/:level4?', function(req, res, next) {
return res.redirect(302, url);
}
});
} else {
category.one(
level1,
level2,
parseInt(level3),
sorting,
options,
function(err, render) {
callback(err, render);
}
);
}
category.one(
level1,
level2,
parseInt(level3),
sorting,
options,
function(err, render) {
callback(err, render);
}
);
break;
case 'categories':
category.all(level1, options, function(err, render) {
@ -248,7 +233,7 @@ router.get('/:level1?/:level2?/:level3?/:level4?', function(req, res, next) {
break;
case 'content':
if (typeof req.query.random !== 'undefined' && modules.random.status) {
return content.random(req.params.level2, options, function(err, url) {
content.random(req.params.level2, options, function(err, url) {
if (err) {
callback(err);
} else if (!url) {
@ -257,30 +242,33 @@ router.get('/:level1?/:level2?/:level3?/:level4?', function(req, res, next) {
return res.redirect(302, url);
}
});
} else {
content.one(
req.params.level2,
parseInt(level3),
sorting,
options,
function(err, render) {
callback(err, render);
}
);
}
content.one(
req.params.level2,
parseInt(level3),
sorting,
options,
function(err, render) {
callback(err, render);
}
);
break;
case 'contents':
content.all(tag, options, function(err, render) {
callback(err, render);
});
break;
case 'desktop/sitemap':
return level2
? sitemap.one(level2, level3, options, function(err, render) {
callback(err, render);
})
: sitemap.all(options, function(err, render) {
callback(err, render);
});
case 'sitemap':
if (level2) {
sitemap.one(level2, level3, options, function(err, render) {
callback(err, render);
});
} else {
sitemap.all(options, function(err, render) {
callback(err, render);
});
}
break;
case 'index':
if (
@ -288,34 +276,26 @@ router.get('/:level1?/:level2?/:level3?/:level4?', function(req, res, next) {
modules.random.status &&
modules.random.data.menu
) {
return content.random(modules.random.data.menu, options, function(
err,
url
) {
content.random(modules.random.data.menu, options, function(err, red) {
if (err) {
callback(err);
} else if (!url) {
} else if (!red) {
callback(config.l.notFound);
} else {
return res.redirect(302, url);
return res.redirect(302, red);
}
});
} else {
index.data(options, function(err, render) {
callback(err, render);
});
}
index.data(options, function(err, render) {
callback(err, render);
});
break;
default:
callback(config.l.notFound);
}
}
/**
* Parse URL.
*
* @return {String}
*/
function parseUrl() {
var parts = req.originalUrl.split('?');
@ -352,12 +332,6 @@ router.get('/:level1?/:level2?/:level3?/:level4?', function(req, res, next) {
return CP_decode.text(url);
}
/**
* Set template.
*
* @return {String}
*/
function setTemplate() {
switch (level1) {
case config.urls.noindex:
@ -391,13 +365,6 @@ router.get('/:level1?/:level2?/:level3?/:level4?', function(req, res, next) {
}
}
/**
* Render data.
*
* @param {Object} err
* @param {Object} render
*/
function renderData(err, render) {
if (err) {
console.log('[routes/website.js]', url);