我一直在尝试为我正在开发的node.js项目设置HTTPS。我基本上按照node.js文档中的示例进行操作:
// curl -k https://localhost:8000/
var https = require('https');
var fs = require('fs');
var options = {
key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),
cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem')
};
https.createServer(options, function (req, res) {
res.writeHead(200);
res.end("hello world\n");
}).listen(8000);
现在,当我执行
curl -k https://localhost:8000/
我明白了
hello world
作为预期结果。但如果我执行
curl -k http://localhost:8000/
我得到
curl: (52) Empty reply from server
回顾起来,这种方式似乎很显然可以生效,但与此同时,最终访问我项目的人不会输入 https://yadayada,我希望所有流量在访问网站时都是 https。
我该如何让 node(以及我正在使用的 Express 框架)将所有传入流量交接给 https,无论是否指定了 https?我还没有找到任何有关这一点的文档。或者假设在生产环境中,node前面有个用于处理这种重定向的程序(例如nginx)吗?
这是我第一次涉足 Web 开发,请原谅我的无知。