我已经从app.zerossl.com下载了一个SSL证书,并将其放置在与主节点脚本相同的目录中;并已使用此代码进行安装。
var fs = require('fs');
let options = {
cert: fs.readFileSync(__dirname + '/certificate.crt'),
ca: fs.readFileSync(__dirname + '/ca_bundle.crt'),
key: fs.readFileSync(__dirname + '/private.key')
};
我用于运行服务器的配置如下:
var express = require('express');
var app = express();
var server = require('https').createServer(options, app);
var io = require('socket.io')(server);
现在,我在XAMPP上运行MYSQL和PHP,端口设置为1337。在我的调制解调器中,我已将DMZ设置为计算机/服务器的内部IP地址。当我尝试通过Internet访问我的域时,出现错误。 (假定我的Node JS服务器没有发送任何数据,ERR_EMPTY_RESPONSE)。
现在,当我使用地址栏进入网站的https版本时,它会出现警告,然后重定向到我的XAMPP服务器。该端口未在地址栏上设置,因此我不确定为什么将其重定向到XAMPP服务器。
我想知道为什么我的SSL不起作用,为什么当我放置https时将其重定向到XAMPP服务器而不使用NodeJS服务器?
答案 0 :(得分:0)
由于您正在运行两台服务器和一个公共入口点,因此您将需要使用nginx之类的东西才能从您的外部IP访问这两者。
XAMPP可能比快递服务器优先,这就是为什么要去那里。
注意:如果要使用HTTPS,请确保添加路由器规则以利用端口443。
这里有一些有关如何将两个服务器托管在一起的文档。在这种情况下,它是两个网站,但是您可以更改它以使其适用于一个网站和一个后端服务器,因为这是专门用于路由到不同的端口的。
注意:您可以跳过server_name,而只需在每个配置中添加转发端口。这样,您的xampp可以有一个转发到1337的端口,而对于快递服务器则有另一个端口。