비공개 네트워크의 Node.js 호스팅 웹사이트를 위한 사용자 정의 도메인

비공개 네트워크의 Node.js 호스팅 웹사이트를 위한 사용자 정의 도메인

나는 나 자신에게 학습 과제를 내주었습니다. 내 홈 네트워크에 액세스할 수 있는 Node.js 서버에서 호스팅할 멋진 웹사이트를 만드는 것입니다. 내 기본 시스템은 Windows 7을 실행하고 있으며 이 웹 사이트에 사용자 지정 도메인을 제공하여 다른 장치에서 쉽게 액세스할 수 있도록 하고 싶습니다.

mydomain에 추가하기 위해 호스트 파일을 편집했습니다. 127.0.0.1이제 http://mydomain:8080동일한 시스템에서 작동하지만 다른 장치에서 액세스할 수 없습니다( 와 동일하므로 localhost다른 장치에서 사용할 수 없다는 의미입니다). 이제 내 네트워크 IP 주소를 정적으로 만든 다음 해당 IP를 호스트 파일의 "mydomain"에 매핑하는 방법이 필요할 수도 있다고 생각하고 있습니다.

이것이 사용자 정의 도메인에 액세스할 수 있도록 하는 가장 좋은 방법입니까, 아니면 IP 주소를 동적으로 유지할 수 있는 Node.js/Express(프레임워크)/HTTP를 통해 JavaScript를 사용하는 솔루션이 있습니까? 프록시 사용에 대해 읽었지만 이로 인해 내 서버에서 예상치 못한 동작이 발생할 수 있습니까?

이상적으로는 포트를 입력할 필요 없이 다음과 같은 것을 사용하는 것을 선호합니다.http://mydomain

Node.js를 os.networkinterfaces()사용할 수 있습니다. 이를 통해 네트워크 IP를 반복하고 반환할 수 있습니다. 어쩌면 네트워크 IP를 사용자 정의 도메인에 매핑하는 방법이 필요할 수도 있습니다.

답변1

문제에 대한 몇 가지 해결책이 있습니다.

  1. 일부 SOHO 라우터는 컴퓨터의 IP를 정적으로 설정하고 DNS 레코드를 생성할 수 있는 DNS 기능을 제공합니다.
  2. 대부분의 최신 OS는 개인 네트워크 내에 .local있는 주소를 제공합니다. machinename.local그런 다음 Node.js를 실행하고 주소를 사용하여 .local호스팅 시스템을 확인할 수 있습니다.

포트 80에서 Node.js를 실행하려면 함수 .listen.listen(80).

var http = require('http');

http.createServer(function (req, res) {
 res.writeHead(200, {'Content-Type': 'text/plain'});
 res.end('Hello World\n');
}).listen(80, "127.0.0.1");

console.log('Server running at http://127.0.0.1:80/');

관련 정보