Ich erstelle einen HTTPS-Server zum ersten Mal in Node, und der Code (siehe unten) funktioniert für einen zufälligen Port wie 6643, aber an Port 443 wird es nicht funktionieren. Ich erhalte diesen Fehler:Node.js https-Server: Port 443 kann nicht angehört werden - Warum?
[Debug][Server]: Initialized...
[Debug][Control Center]: Application initialized...
events.js:72
throw er; // Unhandled 'error' event
^
Error: listen EACCES
at errnoException (net.js:904:11)
at Server._listen2 (net.js:1023:19)
at listen (net.js:1064:10)
at Server.listen (net.js:1138:5)
at Object.module.exports.router (/home/ec2-user/Officeball/Versions/officeball_v0.0.5/server/custom_modules/server.js:52:5)
at Object.<anonymous> (/home/ec2-user/Officeball/Versions/officeball_v0.0.5/server/control_center.js:15:59)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
Dies ist auf einem Amazon Linux EC2-Server. Sobald ich den DNS A Name Record meiner Domain auf die IP des Servers gesetzt habe, sucht der Browser bei der Suche nach https://mydomain.com die IP meines Servers an Port 443, der angeblich der Standardport für HTTPS-Verkehr ist.
Also mein Verständnis ist, dass ich https Inhalt über den Port 443.
Was mache ich falsch dienen müssen?
Hier ist mein Server-Code:
control_center.js (init)
/* Control Center */
//DEFINE GLOBALS
preloaded = {};
//GET DIRECT WORKING PATH
var dirPath = process.cwd();
//REQUIRE CUSTOM MODULES
var debug = new (require(dirPath +
"/custom_modules/debug"))("Control Center");
var socket = require(dirPath +
"/custom_modules/socket")(4546);
// ! this is the relevant line
var server = require(dirPath + "/custom_modules/server").router(443);
//APP INITIALIZE
debug.log("Application initialized...");
server.js
/* Server */
//REQUIRE NPM MODULES
var fs = require('fs'),
https = require('https'),
url = require('url'),
path = require('path');
//GET DIRECT WORKING PATH
var dirPath = process.cwd();
//REQUIRE CUSTOM MODULES
//Snip!
var debug = new (require(dirPath +
"/custom_modules/debug"))("Server");
//Preload requests
var preload = require(dirPath +
'/custom_modules/preload').init();
//INIT MODULE
debug.log("Initialized...");
//DEFINE MODULE VARIABLES
var options = {
key: fs.readFileSync('SSL/evisiion_private_key.pem'),
cert: fs.readFileSync('SSL/evisiion_ssl_cert.pem')
};
//LISTEN FOR PATH REQUESTS
//route requests to server
module.exports.router = function(port) {
https.createServer(options, function(req, res) {
//Snip!
}).listen(port);
};
Wahrscheinlich nicht der Code, werfen Sie einen Blick [hier] (http://stackoverflow.com/questions/5004159/opening-port-80-ec2-amazon-web-services/10454688#10454688). –
@ BrendanAshworth wenn es so einfach ist, dass es weh tut ... –
nur der Grund, ich wusste, war, weil ich die gleiche Frage beantwortet habe :) auch möglicherweise mit Root-Benutzer Privilegien zu tun, wenn diese Antwort nicht behoben –