왜 내 블로그는 IP 주소로 방문할 수 없나요?

왜 내 블로그는 IP 주소로 방문할 수 없나요?

나는 Wisdom.host22.com/wp에 WordPress를 구축했는데, wisdom.host22.com/wpFirefox에서 방문할 수 있습니다.

여기에 이미지 설명을 입력하세요

ping wisdom.host22.com
PING wisdom.host22.com (31.170.160.189) 56(84) bytes of data.
64 bytes from 31.170.160.189: icmp_seq=1 ttl=46 time=307 ms

ping 결과 해당 도메인의 IP 주소는 31.170.160.189 입니다.

Firefox에서 31.170.160.189/wp를 입력하여 방문할 수 없습니다. 이유는 무엇입니까? Firefox에 입력하면 31.170.160.189/wpURL이 다음으로 이동합니다. http://error404.000webhost.com/,why?

여기에 이미지 설명을 입력하세요

답변1

귀하의 WordPress 애플리케이션은 아마도 에서 호스팅되는 많은 웹사이트 중 하나일 것입니다 host22.com.

31.170.160.189IP를 수신 하고 귀하의 페이지와 다른 모든 페이지를 제공하는 웹 서버가 있습니다 .

서버가 IP로 직접 쿼리되는 경우 어떤 웹 사이트를 제공할지 어떻게 알 수 있습니까? IP는 귀하의 하위 도메인에만 속하지 않습니다. 결과적으로 페이지로 리디렉션됩니다 404 NOT FOUND.

와 같은 적절한 호스트 이름으로 쿼리하면 wisdom.host22.com호스트 이름이 브라우저가 수행하는 HTTP 요청의 일부이기 때문에 무엇을 해야 할지 알 수 있습니다. 요청 헤더에 따라 콘텐츠를 제공하는 것은 일반적으로 "가상 호스트"라고 하는 일반적인 기술입니다. 이런 방식으로 웹서버는 동일한 IP 주소에서 다양한 웹사이트를 제공할 수 있습니다.

명령줄에서 동작의 차이를 시험해 볼 수 있습니다.

/wp먼저 웹 서버에서 리소스를 요청 하고 해당 IP 주소를 다음과 같이 보냅니다 Host.

$ echo -e "GET /wp/ HTTP/1.1\nHost: 31.170.160.189\n" | netcat 31.170.160.189 80
HTTP/1.1 302 Found
Date: Sun, 11 Oct 2015 09:05:30 GMT
Server: Apache
Location: http://error404.000webhost.com/?
Content-Length: 216
Connection: close
Content-Type: text/html; charset=iso-8859-1

예상대로 서버는 404페이지를 제공하여 응답합니다.

이제 동일한 작업을 수행하되 Host하위 도메인을 올바르게 설정 하세요.

$ echo -e "GET /wp/ HTTP/1.1\nHost: wisdom.host22.com\n" | netcat 31.170.160.189 80
HTTP/1.1 200 OK
Date: Sun, 11 Oct 2015 09:08:50 GMT
Server: Apache
X-Powered-By: PHP/5.2.17
X-Pingback: http://wisdom.host22.com/wp/xmlrpc.php
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

이번에는 서버가 이를 준수 200 OK하고(상태 코드) WordPress 홈페이지를 제공할 수 있습니다.

netcat명령은 포트 80에서 서버에 대한 연결을 엽니다. 그런 다음 요청(부분 echo)이 서버로 전송됩니다. HTTP는 일반 텍스트 프로토콜입니다. 서버와 "대화"만 하면 됩니다.

답변2

HTTP 요청을 서버에 보낼 때 호스트 라인이 포함되어 있습니다. Apache가 이를 수신하면 여기에 설명된 대로 해당 주소에 대해 정의된 가상 호스트로 보냅니다.

https://serversforhackers.com/configuring-apache-virtual-hosts

따라서 생성한 서버에 지혜.host22.com에 대한 가상 호스트가 있는 경우 호스트 이름을 입력하면 해당 호스트로 이동하지만 IP를 입력하면 기본 가상 호스트로 이동하게 되는데, 이 경우 정의되지 않은 것 같습니다.

이것이 도움이 되었기를 바랍니다.

관련 정보