Opravdu nechápu smysl zakládání dvou serverů, když jen jeden může dělat práci dokonale. Například přidáním jednoduchého middlewaru do souboru serveru:
app.use(function(req, res, next) {
if(!req.secure) {
return res.redirect(['https://', req.get('Host'), req.url].join(''));
}
next();
});
To přesměruje jakýkoli nezabezpečený požadavek na odpovídající stránku HTTPS. Například http://example.com/
do https://example.com/
a http://example.com/foo?bar=woo
až https://example.com/foo?bar=woo
. Toto je rozhodně chování, které bych očekával. Možná byste to měli filtrovat podle hostitele, aby se přesměrovávalo pouze na domény, pro které vlastníte a nainstalujete správný certifikát.
Pokud vaše aplikace běží za jiným serverem, jako je Nginx, možná budete chtít přidat konfigurační parametr app.set('trust proxy', true)
. Nebo, ještě lépe, přimějte Nginx, aby provedl přesměrování sám, což bude efektivnější než jakákoli aplikace Node.js.
Upravit: Podle mých benchmarků join
je o něco rychlejší než +
pro zřetězení řetězců. Nic dramatického, ale každá výhra je výhrou...