Descubrimiento reciente
Con IIS configurado de nuevo en el puerto 80
, cuando lo conecto en http://localhost/
la computadora WHS, me da la página de advertencia "Hay un problema con el certificado de seguridad de este sitio web". Si "Continúo" de todos modos, esta url aparece https://localhost/Remote/logon?ReturnUrl=%2fremote
para un Acceso web remoto de Windows Home Server 2011 para un username
y password
. Ahora, no puedo recordar con certeza, pero no creo que originalmente solo haya http://localhost/
sacado a relucir este problema. Sin embargo, parece que esto podría afectar cualquier intento de acceder a localhost (sin importar el puerto).
¿Cuál puede ser realmente el problema principal?
¡Oh, las complejidades de las redes! Una cosa que me molestaba era por qué dos de los sitios aparecerían "parcialmente" y los otros no. Luego, ejecutar el seguimiento NET de Firebug me reveló que mi problema principal es que mi ISP está actuando como proxy DNS y, por supuesto, no está encontrando mis sitios de prueba. Pero lo hace encontrar los dos sitios que son en vivo en el www.
(no test.
electrónico), y parece servir a aquellos, pero las imágenes se bloquean debido a que (supongo) He creado bloques para acceder a los archivos de imagen si no desde el www.
de la sitio particular.
Eso explica el misterio de las imágenes que no se muestran (espere en una localhost:8080
llamada directa ) y el extraño comportamiento de encontrar "parcialmente" esos dos de los cinco sitios específicos.
Ahora necesito descubrir cómo configurar correctamente mi enrutador o un archivo proxy para redirigirlo a mi computadora WHS. Estoy en el servicio de Internet satelital Wildblue, ya que estoy fuera del área de conexiones de servicio más rápidas. Tienen un archivo "optimizador" (no sé si es visible para todos o no, si no, es básicamente lo mismo que esta versión ), que puedo modificar y poner en mi sistema local para lograr lo que necesito, pero no estoy seguro de lo que necesito hacer allí.
Si alguien tiene alguna sugerencia sobre cómo modificar ese archivo o cómo configurar mi enrutador Linksys E1200 para evitar enviarlo al proxy si es un sitio local, entonces ese puede ser el primer (y posiblemente el último) paso para resolver mis problemas.
Código representativo basado en las recomendaciones de harrymc ... todavía no funciona
Puerto IIS establecido en :90
.
httdp
archivo:
Listen *:80
ServerName localhost:80
vhosts
archivo:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName localhost
ProxyRequests off
ProxyPass / http://127.0.0.1:90/
ProxyPassReverse / http://127.0.0.1:90/
</virtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site1.net/httpdocs"
ServerName test.site1.net
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site2.net/httpdocs"
ServerName test.site2.net
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site3.com/httpdocs"
ServerName test.site3.com
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site4.com/httpdocs"
ServerName test.site4.com
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site5.com/httpdocs"
ServerName test.site5.com
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
Actualización anterior: lo que creía que era el problema principal (puede ser un problema secundario)
¿Cómo hago para que Windows Home Server (que ejecuta IIS) reenvíe URL localeshost específicas al puerto 8080
para que Apache (no IIS) que se ejecuta en la misma máquina recoja la solicitud para servir la página?
El c:\Windows\System32\drivers\etc\hosts
archivo ha sido cambiado (ver más abajo), pero supongo que no tiene nada que ver con el redireccionamiento a un nuevo puerto. IIS, también supongo, está recogiendo la test.whatever
solicitud de URL particular en el puerto 80
y enrutando a su propio host local en el mismo puerto.
Descargué el Enrutamiento de solicitud de aplicación de un consejo en un sitio que encontré al investigar, pero al mirarlo, no estoy seguro de si ayudará o no (mi esperanza era configurar algún reenvío basado en URL para portarlo 8080
). Soy un diseñador web, no un asistente de red. Entonces, cómo funciona todo esto es algo difícil de entender para mí.
Una posible dirección para ir
Basado en este enlace (encontrado después de buscar más basado en el primer comentario de erikxiv a continuación) Intenté lo siguiente en IIS como una reescritura de URL:
Regla de salida:
Partido: .*
(parecía probar bien)
Condiciones:
Match Any of ... (estos parecían probar que la coincidencia de patrones está bien)
{HTTP_HOST} Matches the Pattern test\.site1\.net
{HTTP_HOST} Matches the Pattern test\.site2\.net
{HTTP_HOST} Matches the Pattern test\.site3\.com
Acción de reescritura:
http://localhost:8080/{R:0} (it would not let me put R:1 like the example)
¡Pero parece que todavía no hay reenvío!
La información a continuación ahora es todo el trasfondo de la nueva solicitud anterior.
Información de fondo
Recientemente cambié un escritorio antiguo que ejecutaba Windows XP para que fuera un Windows Home Server (2011). La vieja computadora también era el anfitrión de sitios de prueba locales que se ejecutaban en una instalación de Apache. Investigar un poco reveló que ejecutar Apache en una máquina WHS no sería tan difícil como pensé al principio (muchos sitios dicen que el IIS de WHS y Apache causaría problemas, pero algunos que encontré no mencionaron ningún problema si se configuran correctamente) Básicamente, asegúrese de que no haya conflicto de puertos).
Así que instalé un WAMP (versión de 64 bits) en la computadora WHS, y cambié la configuración en el httpd
archivo de configuración de Apache para escuchar en el puerto 8080
para que no haya conflicto con IIS. Configuré mi archivo de host virtual como en la computadora XP, solo con el cambio de puerto también.
Básicamente, todo parecía estar funcionando bien (sin embargo, ver actualización), excepto ...
El problema (original)
Si bien las páginas de los sitios locales se abren bien, y todos los CSS y JavaScript están funcionando, no se muestran todos los archivos de imagen . La información de la ruta es correcta como se evidencia haciendo clic derecho y seleccionando View Image Info
(en Firefox ... por cierto, las imágenes no se muestran en ningún navegador, por lo que no es un error del navegador).
Sin embargo, lo que noté es que Type
se muestra el cuadro de información de la imagen text/html
, en lugar de PNG Image
o JPEG Image
etc. Esto se encuentra en la información a continuación, donde muestra la información de la ruta (dirección): en esa sección, reconoce que el archivo en sí mismo es de Type
cualquiera de los dos Image
o Background
.
Pero a pesar de ese hecho, parece que en lugar de reconocer el tipo mime correcto (supongo) de la imagen dentro del html (en realidad, html generado por php), en su lugar está tratando de procesar la imagen (ya sea un img
elemento o un css background-image
) como texto, y así no me da nada! Pero no puedo entender por qué. El mime
archivo que controla los tipos mime de Apache es correcto. Las páginas tienen los siguientes encabezados ...
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
... pero no deberían estar causando el problema (no lo hicieron cuando se ejecutaban en XP, ni tampoco en el sitio en vivo).
Entonces estoy buscando pensamientos sobre:
- ¿Mi análisis de mime-type es el problema correcto (basado en la actualización, probablemente no)?
- ¿Dónde más puedo mirar que podría estar causando el problema y cómo corregirlo? ¿Podría seguir siendo un conflicto con IIS en el WHS, y si es así, qué? ¿Podría haber algo en el php (esto parece poco probable), y si es así, qué? ¿Qué más puedo comprobar en Apache?
Información actualizada (con más problemas [relacionados?])
Haciendo un poco más de juego, he llegado a la conclusión de que al menos parte del problema parece ser el cambio a puerto :8080
. Primero, me di cuenta de que no todo estaba tan bien como pensaba en llegar a todos mis sitios. Tengo esta representación en mi c:\Windows\System32\drivers\etc\hosts
archivo:
127.0.0.1 localhost
127.0.0.1 test.site1.net
127.0.0.1 test.site2.net
127.0.0.1 test.site3.com
127.0.0.1 test.site4.com
127.0.0.1 test.site5.com
Y esta representación en mi vhosts
archivo apache :
NameVirtualHost *:8080
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site1.net/httpdocs"
ServerName test.site1.net
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site2.net/httpdocs"
ServerName test.site2.net
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site3.com/httpdocs"
ServerName test.site3.com
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site4.com/httpdocs"
ServerName test.site4.com
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site5.com/httpdocs"
ServerName test.site5.com
</VirtualHost>
Aquí está el comportamiento : site1
y site4
están apareciendo, pero sin imágenes. Los otros tres no aparecen en absoluto, pero dan Network Error (dns_unresolved_hostname)
.
Sin embargo, si accedo al primer sitio en los dominios virtuales en la máquina mediante el uso de WHS localhost:8080
en la url, entonces las imágenes no aparecen , y lo que es el sitio por primera vez en mi archivo de host virtual también muestra arriba (que se espera); sin embargo, lo hace incluso si era uno que anteriormente no lo haría (así que si me muevo site2
a la primera posición, comienza a "funcionar" a través de una localhost:8080
llamada).
Sé que mis archivos de imagen devuelven un error 403
( corregido, originalmente dije 404 ) cuando se accede a través de la test.site4.com
sintaxis en la url, y sospecho que mis imágenes se muestran text/html
porque los archivos están devolviendo ese error (así que no lo creo es un problema de tipo mimo ahora, tanto como un fracaso para encontrar las imágenes). Pero lo extraño es que las rutas son correctas, y los archivos que no son de imagen (javascript y css) están funcionando bien.
Entonces, en mi opinión, parece que tal vez sea algo con el cambio de puerto 8080
. Mis problemas ahora son:
- ¿Por qué mis archivos de hosts y vhosts no encuentran correctamente todos los sitios (¿hay algún otro archivo que deba modificar en un Windows Home Server)?
- En esos sitios para los que funciona, ¿por qué no se encuentran específicamente las imágenes (con el error 403, eso está "prohibido", creo, lo que no tiene sentido si se permite el acceso a los otros archivos en las carpetas del sitio web)?
- ¿Por qué funciona el
localhost:8080
acceso sin importar qué en relación con los dos primeros problemas?
Alguna información adicional
Se hizo una solicitud para que publique archivos de registro. Sin embargo, descubrí que no había registros, excepto (parece) en aquellos casos en que había accedido a través de la localhost:8080
llamada directa al sitio "predeterminado".
Así que apagué los servicios de WAMP, fui a la url y descubrí el mismo comportamiento que cuando WAMP se estaba ejecutando. Esto parecería indicar que IIS todavía está controlando los nombres de dominio, en lugar de que Apache los recoja ( ¿alguien puede confirmar mi suposición allí? ) , Y por lo tanto, el problema puede ser algo que todavía tiene que ver con el control del servidor WAMP.