728x90

Node.js의 프레임워크인 Express를 알아보고자

AWS의 EC2서비스에 우분투18으로 인스턴스를 추가하고 Express설치를 했다.

 

근데 테스트해봐야지 하고 브라우저에서 'http://인스턴스아이피:3000'을 아무리 호출해도 접근이 되지 않는 문제가 발생했다.

'뭐가 문제지..'하고 EC2의 보안설정도 확인하고 ufw도 확인하고 iptables도 다 확인했는데 도무지 접근이 안되었다..

혼자서 끙끙대다가 회사의 인프라팀장님께 도움을 받았는데 문제의 원인은 소스코드에 있었다.

app.js의 소스코드는 아래와 같았는데

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
	  res.statusCode = 200;
	  res.setHeader('Content-Type', 'text/plain');
	  res.end('Hello World\n');
});

server.listen(port, hostname, () => {
	  console.log(`Server running at http://${hostname}:${port}/`);
});

여기서 문제가 발생하게 되었던 부분은 'hostname'쪽이었다.

hostname을 '127.0.0.1'이 아니라 인스턴스의 eth0아이피로 설정해주니 외부에서 접근이 되며 해결이 되었다.

 

-----------------------------------------------------------------------------------------------

착오가 있었다.

express를 설치했는데 접근이 되지 않았던 문제가 아니었다.

위의 소스코드는 node.js로 hello world를 표시하는 웹서버 코드였다.

그냥 익스프레스를 설치하니 따로 호스트네임을 설정하지 않아도 바로 접근이 되었다.

휴우..ㅋㅋㅋㅋ

728x90

+ Recent posts