update redirect
This commit is contained in:
parent
7f2bca2fd9
commit
f69bbb3d66
13
serve.js
13
serve.js
|
@ -58,6 +58,9 @@ function createServer(port, pubdir, content, opts) {
|
||||||
|
|
||||||
var directive = { public: pubdir, content: content, livereload: opts.livereload
|
var directive = { public: pubdir, content: content, livereload: opts.livereload
|
||||||
, servername: opts.servername, expressApp: opts.expressApp };
|
, servername: opts.servername, expressApp: opts.expressApp };
|
||||||
|
var redirectApp = require('redirect-https')({
|
||||||
|
port: port
|
||||||
|
});
|
||||||
|
|
||||||
server.on('error', function (err) {
|
server.on('error', function (err) {
|
||||||
if (opts.errorPort || opts.manualPort) {
|
if (opts.errorPort || opts.manualPort) {
|
||||||
|
@ -95,13 +98,7 @@ function createServer(port, pubdir, content, opts) {
|
||||||
|
|
||||||
server.on('request', function (req, res) {
|
server.on('request', function (req, res) {
|
||||||
if (!req.socket.encrypted) {
|
if (!req.socket.encrypted) {
|
||||||
res.statusCode = 301;
|
redirectApp(req, res);
|
||||||
res.setHeader(
|
|
||||||
'Location'
|
|
||||||
, 'https://' + (req.headers.host || 'localhost')
|
|
||||||
+ (httpsPort === opts.port ? '' : ':' + opts.port)
|
|
||||||
);
|
|
||||||
res.end();
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -270,7 +267,7 @@ function run() {
|
||||||
return promise.then(function (matchingIps) {
|
return promise.then(function (matchingIps) {
|
||||||
if (matchingIps) {
|
if (matchingIps) {
|
||||||
if (!matchingIps.length) {
|
if (!matchingIps.length) {
|
||||||
console.log("Neither the attached nor external interfaces match '" + argv.servername + "'");
|
console.info("Neither the attached nor external interfaces match '" + argv.servername + "'");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
opts.matchingIps = matchingIps || [];
|
opts.matchingIps = matchingIps || [];
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
var https = require('httpolyglot');
|
||||||
|
var httpsOptions = require('localhost.daplie.com-certificates').merge({});
|
||||||
|
var httpsPort = 8443;
|
||||||
|
var redirectApp = require('redirect-https')({
|
||||||
|
port: httpsPort
|
||||||
|
});
|
||||||
|
|
||||||
|
var server = https.createServer(httpsOptions);
|
||||||
|
|
||||||
|
server.on('request', function (req, res) {
|
||||||
|
if (!req.socket.encrypted) {
|
||||||
|
redirectApp(req, res);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
res.end("Hello, Encrypted World!");
|
||||||
|
});
|
||||||
|
|
||||||
|
server.listen(httpsPort, function () {
|
||||||
|
console.log('https://' + 'localhost.daplie.com' + (443 === httpsPort ? ':' : ':' + httpsPort));
|
||||||
|
});
|
Loading…
Reference in New Issue