¿Por qué no se puede visitar mi blog con dirección IP?

¿Por qué no se puede visitar mi blog con dirección IP?

Construyo WordPress en Wisdom.host22.com/wp, se puede visitar wisdom.host22.com/wpen Firefox.

ingrese la descripción de la imagen aquí

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

La dirección IP del dominio es 31.170.160.189 según el resultado del ping.

No se puede visitar para ingresar 31.170.160.189/wp en Firefox, ¿por qué? Cuando ingrese 31.170.160.189/wpen Firefox, la URL saltará a http://error404.000webhost.com/,why?

ingrese la descripción de la imagen aquí

Respuesta1

Su aplicación de WordPress es probablemente uno entre muchos sitios web alojados en host22.com.

Hay un servidor web que escucha en IP 31.170.160.189y sirve la suya y todas las demás páginas.

Si el servidor es consultado directamente por su IP, ¿cómo se supone que sabe qué sitio web servir? La IP no pertenece exclusivamente a tu subdominio. Como resultado, se le redirigirá a una 404 NOT FOUNDpágina.

Cuando lo consulta un nombre de host adecuado como wisdom.host22.com, sabe qué hacer, porque el nombre de host es parte de la solicitud HTTP que realiza el navegador. Servir contenido dependiendo del encabezado de la solicitud es una técnica común generalmente denominada "Host virtual". De esta manera, el servidor web puede proporcionar muchos sitios web diferentes desde la misma dirección IP.

Puedes probar la diferencia de comportamiento desde la línea de comando.

Primero, solicitemos el recurso /wpdel servidor web y enviemos su dirección IP como 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

Como era de esperar, el servidor responde entregando una 404página.

Ahora haz lo mismo, pero Hostconfigurando correctamente tu subdominio.

$ 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

Esta vez, el servidor puede cumplir (código de estado 200 OK) y sirve su página de inicio de WordPress.

El netcatcomando abre una conexión con el servidor en el puerto 80. Luego, la solicitud (la echoparte) se envía al servidor. HTTP es un protocolo de texto plano. Puedes simplemente "hablar" con el servidor.

Respuesta2

Cuando envía una solicitud HTTP a un servidor, se incluye una línea de host; cuando Apache la recibe, la envía a cualquier host virtual que se haya definido para esa dirección, como se explica aquí:

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

Entonces, si en el servidor que creó hay un host virtual para Wisdom.host22.com, escribir el nombre del host lo llevará allí, pero escribir la IP lo llevará al host virtual predeterminado, que en este caso parece no estar definido.

Espero que esto haya ayudado.

información relacionada