我正在尝试从托管JavaScript客户端的Apache Web服务器连接到Nodejs https服务器,但是我收到了一个错误消息:522-无法加载响应数据:找不到具有给定标识符的资源的数据
。 Apache Web服务器在与节点服务器相同的域/服务器上运行,并且这些服务器由Cloudflare代理:
- 客户端应用程序:https://www.example.com(端口443上的Apache Web服务器)
- 节点服务器:https://www.example.com:2053
两个服务都在同一台服务器/计算机上运行。 这是我启动nodejs服务器的方式:
// Certificates are the same used by apache web server in Virtual Host
// and were got from Cloud Flare Panel > SSL/TLS > Origin Server
var options = {
key: fs.readFileSync('/etc/cloudflare/example.com.key'),
cert: fs.readFileSync('/etc/cloudflare/example.com.pem'),
};
var socket = require('socket.io');
var http = require('https');
// Port 2053 was listed as a https port supported by Cloud Flare in
// https://developers.cloudflare.com/fundamentals/get-started/reference/network-ports/
var argv = require('optimist')
.usage('Usage: --port [num]')
.default({port: 2053})
.argv;
var server = http.createServer(options, function(req, res) {
});
server.listen(argv.port);
var io = socket.listen(server);
这是我如何从JavaScript客户端连接到Node.js服务器的方法:
let socket = io.connect("https://www.example.com:2053", {secure: true});
任何技巧吗? 编辑1: 如果我将节点服务器创建为http(而不是https),它可以正常工作。