मैं Node.js स्थापित के साथ Amazon EC2 पर डेबियन का एक उदाहरण चला रहा हूं। यदि मैं नीचे कोड चलाता हूं:
http = require('http');
http.createServer(function (request, response){
response.writeHead(200, {'Content-Type':'text/plain'});
response.end('Hello World\n');
}).listen(80);
console.log("Running server at port 80");
मुझे आउटपुट मिलता है जो बताता है कि पोर्ट 80 पर सुनने की एक और प्रक्रिया है:
Running server at port 80
events.js:72
throw er; // Unhandled 'error' event
^
Error: listen EACCES
at errnoException (net.js:901:11)
at Server._listen2 (net.js:1020:19)
at listen (net.js:1061:10)
at Server.listen (net.js:1127:5)
at Object.<anonymous> (/home/admin/nodetests/nodetest.js:6:4)
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)
at Function.Module.runMain (module.js:497:10)
अब जब मैं यह देखने के लिए जाँच करता हूँ कि क्या कोई प्रक्रिया है (जैसा कि कुछ भी छिपा हुआ है) पोर्ट 80 का उपयोग करके सुन रहा है:
netstat -tupln
मुझे नीचे आउटपुट मिलता है, जो मुझे बताता है कि पोर्ट 80 पर कुछ भी नहीं सुन रहा है:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1667/sshd
tcp6 0 0 :::22 :::* LISTEN 1667/sshd
मुझे ध्यान देना चाहिए कि डेबियन के पास इनबाउंड नियम के रूप में 80 खुला पोर्ट है अगर इससे कोई फर्क पड़ता है।
मेरा सवाल है: मैं क्या गलत कर रहा हूं? कैसे मैं 80 पोर्ट को सुनने की प्रक्रिया की पहचान नहीं कर सकता हूं? यह डेबियन में अवरुद्ध क्यों है? कोड को सही ढंग से चलाने के लिए मुझे क्या कदम उठाने चाहिए?