socket.io를 사용할 수 있도록 nodejs를 제공하는 하위 도메인을 설정합니다. 나는 https를 통해 페이지를 서비스하고 있으며 제대로 작동하려면 서버가 있습니다. 페이지가 게재됩니다. 그것은 문제가 아닙니다. 문제는 소켓을 클라이언트에 연결하려고 할 때입니다. 나는 이것을 잠시 동안 풀려고 노력해 왔으며, 여기있는 많은 유능한 사람들이 나를 도울 수 있다고 확신합니다. Nodejs 서버 https가 실행 중이지만 소켓이 연결되지 않음 (net :: ERR_CONNECTION_TIMED_OUT)
이
내 사이트 https://reward.cshive.com오류 메시지입니다 내가 얻을 :
클라이언트 측
var socket = io.connect('https://reward.cshive.com:3000');
서버 측
const https = require('https');
var fs = require('fs');
const options = {
key: fs.readFileSync('/etc/letsencrypt/live/reward.cshive.com/privkey.pem'),
cert: fs.readFileSync('/etc/letsencrypt/live/reward.cshive.com/cert.pem')
};
var app = https.createServer(options, (req, res) => {
fs.readFile(__dirname + '/served.html',
function (err, data) {
if (err) {
res.writeHead(500);
console.log('Error loading page');
return res.end('Error loading page');
}
console.log('--Connection');
res.writeHead(200);
res.end(data);
});
})
var server = app.listen(3000, function(err) {
if (err) {
console.log(err);
} else {
console.log("Listening on port 3000");
}
});
var io = require('socket.io').listen(server);
'페이지가 게재되었습니다'라고 말하면 어떤 페이지를 의미합니까? 처음에는 코드 (serve.html 파일의)에서 언급 한 페이지를 의미한다고 가정했지만 액세스 할 수있는 것 같지 않습니다. 포트 3000에서 어떤 응답도 얻을 수 없으므로 프록시 나 방화벽 문제에서부터 서버가 실행되지 않는 간단한 작업까지있을 수 있습니다. – skirtle
죄송합니다. 더 명확히해야합니다. 내 말은 노드가 serve.h 파일을 제공한다는 것입니다. 나는 "노드 server.js"를하지 않을 때 nginx로부터 "502 bad gateway"를 얻었 기 때문에 이것을 알고있다. 내가 사이트에서 사용할 수있는 위치 블록에있는 포트 3000을 통해 요청을 허용하도록 proxy_pass를 설정했습니다. 내가 도움이된다면 학교에서 돌아올 때 설정을 추가 할 것입니다. 그러나 방화벽으로 무엇을 의미합니까? 어느 것? –
나는 그것을 직접 시도하지는 않았지만 이것은 포트 3000에서 노드를 세계에 직접 노출하려고 시도하는 것보다 nginx를 통해 모든 것을 프록시하는 것이 유용 할 것 같다. https://gist.github.com/uorat/10b15a32f3ffa3f240662b9b0fefe706 – skirtle