2017-09-22 8 views
-1

Node.js에서 포트가 아닌 이름으로 액세스 할 수있는 서버를 만들려면 어떻게해야합니까?node.js 서버의 이름을 디렉토리 위치처럼 지정할 수 있습니까?

대신 :

https://example.com:port

이런 종류의 일 :

https://example.com/name/

+0

두 번째 경우 기본 포트 (포트 80)에서 실행 중입니다. 포트 80에서 서버를 실행하려면 승격 된 권한이 필요할 수 있지만 그 이상의 마법은 없습니다. – Frxstrem

답변

0

서버 (어떤 종류의)에만 URL의 도메인과 포트에 의해 이름을 붙일 수있다 - 그것은 경로에 전혀 이름이 지정되지 않았습니다. 브라우저는 URL을 구문 분석하고 도메인과 포트를 가져 와서 DNS에서 해당 도메인을 검색하여 IP 주소를 얻은 다음 해당 특정 IP 주소와 포트에 대한 TCP 연결을 만듭니다. 따라서, 귀하의 예제에서, 그는 다음과 같습니다

https://example.com:port 

또는 후자는 단지 브라우저가 연결할 서버를 지정하는 URL의 80 만 그 부분의 기본 포트를 사용

https://example.com 

에. 그러면 해당 경로가 해당 서버로 전송되고 서버는 요청을 받으면 해당 경로로 수행 할 작업을 결정할 수 있습니다. 말했다


, 당신은, 위의 서버에서 요청을 처리 앞으로 다음 다른 서버/포트에 해당 요청을 경로보고 것을 사용할 수있는 서버 측 도구가 있습니다. 이것은 종종 프록시 서버라고합니다. 예를 들어 https://example.com/name/에 대한 요청을 다른 호스트 (다른 ​​IP 주소와 포트로 구성 할 수 있음)로 이동하도록 구성 할 수있게 해주는 nginx (미리 빌드 된 구성 가능한 프록시)를 실행할 수 있습니다.

브라우저가 example.com (프록시)에 연결되어 /name에 대한 http 요청을 보냅니다. 프록시는 요청을 수신하고 경로를보고 다른 호스트로 요청을 전달하도록 구성한 다음 다른 호스트에 연결하고 요청을 보내고 응답을받은 다음 다시 응답을 반환합니다. 브라우저. 브라우저는이 "전달"이 배후에서 진행되고 있음을 반드시 알 수 없습니다. 그것은 요청을하고 대답을 얻습니다.