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.
Respuestas:
¿Quizás tiene un archivo .htaccess que hace que las imágenes se sirvan como texto / html?
fuente
.htaccess
archivos, y ninguno tiene unForceType
código.Si puede proporcionar sus archivos access.log (al menos un par de líneas que muestran el estado 404 de las solicitudes de imágenes), podremos verificar qué sale mal. Sospecho que simplemente podría ser un problema de nombre de dominio, o su sitio puede usar rutas absolutas para imágenes (solo adivinando ...) que apache maneja incorrectamente
fuente
localhost
acceso directo . Así que apagué todo el servidor WAMP y descubrí que estaba obteniendo los mismos resultados. Lo que parece indicar que Apache no está manejando las solicitudes para comenzar, pero IIS sí.El hilo IIS redirigir a Apache contiene una solución muy simple, que va en la dirección opuesta a la suya.
El autor de la última entrada dice que las redirecciones en IIS son demasiado limitadas para hacer el trabajo.
Usando su solución, configuraría IIS para recibir solicitudes de otro puerto que no sea 80, por ejemplo 90. Luego ponga Apache como el receptor para los puertos 80 y 8080, con una redirección del puerto 80 al puerto 90. Apache aparentemente logra hacerlo lo que IIS no puede
fuente
ourdomain.dom
es algo específico de mi computadora o no (o es solo un nombre arbitrario, ya que estaba tratando con subdominios ... ¿debería ser el míolocalhost
?). Además, en el primer enlace, elour.ip.addess
enrutamiento a IIS será el mismo para el servidor Apache, ya que están en la misma computadora (solo un puerto diferente). Eso no debería causar problemas, ¿verdad?Como lo ha rastreado hasta un problema de DNS, el resultado básico es que necesita un servidor DNS local que pueda configurar. También menciona un enrutador Linksys E1200 y Windows Home Server, por lo que puede adoptar dos enfoques.
Primero, puede considerar ejecutar un firmware de terceros (por ejemplo, DD-WRT, OpenWRT, Tomato) en su enrutador. El que tiene está usando un chipset Broadcom y debe tener una memoria flash adecuada; DD-WRT lo enumera como compatible. Mi mayor preocupación es que, de alguna manera, la comunidad de firmware de enrutadores de terceros parece haberse desarrollado hasta el punto en que es como tratar de ejecutar Linux a principios de los años 90. Puede intentar buscar en los foros para encontrar lo que necesita, pero no confíe en la base de datos del enrutador en el sitio DD-WRT porque lo dirigirá a las cosas incorrectas. En general, esta opción no me llena de confianza, y a menos que tenga un segundo enrutador disponible, no estoy seguro de poder recomendarlo a menos que le guste ajustar este tipo de cosas.
En segundo lugar, puede RDP en WHS y encender el servidor DNS como se describe en este hilo del foro. Enfoque básico, RDP en, Panel de control, Agregar o quitar programas, Agregar o quitar componentes de Windows (botón), seleccione la casilla de verificación Servidor DNS, vuelva a salir. Lo que no estoy seguro es si obtienes la consola de administración de DNS con esto, y no tengo un cuadro WHS para probarlo. Si obtienes esa consola, estará en Herramientas administrativas / DNS. Para usarlo como lo desee, deberá agregar nuevas zonas de reenvío; para el tipo de cosas que está haciendo, agregaría una zona para cada host (por ejemplo, agregue una zona para www.samplesite.whatever) y luego agregue una entrada de registro A sin nombre especificado, lo que lo convertirá en el valor predeterminado para eso zona. El otro enfoque sería agregar una zona para el sitio de muestras. Lo que sea, luego agregar registros A nombrados (por ejemplo, "www" o "correo"), pero eso puede terminar bloqueando cosas que no desea bloquear. La zona más específica evita que afecte cosas que no desea redirigir. Luego, señalará todos sus sistemas en este cuadro como el servidor DNS. De manera predeterminada, esto hará su propia resolución de DNS externo sin pasar por alto los servidores DNS de su ISP; si desea usarlos como la siguiente etapa, puede especificar sus direcciones como Reenviadores en las propiedades del servidor DNS (haga clic con el botón derecho y busque).
Tercero, si la opción Dos no funciona y la opción Uno lo asusta, puede configurar una caja de Linux internamente y configurarla como un servidor DNS. Hay muchas instrucciones sobre cómo hacerlo; una búsqueda rápida apareció en este artículo de Mark Kolich que parece ser instrucciones decentes para hacer exactamente eso. Si está tan inclinado, esto también puede ofrecerle los recursos que necesita para experimentar con alojamiento basado en Linux (a menos que esté haciendo un desarrollo basado en Windows, por ejemplo .NET o similar).
Esta comparación de servidores DNS de Wikipedia también puede ser útil. Cabe destacar que Simple DNS Plus (comercial), Posadis (gratis, obsoleto? 2004), MaraDNS (gratis, sin interfaz gráfica de usuario, vale la pena mirar) y Unbound (gratis, tiene descargas binarias de Windows, no buscó más) . Todo esto debería ejecutarse en Windows.
fuente
C:\Windows\System32\drivers\etc
archivo ya era el que modifiqué, sin embargo, todavía no parece que se esté recogiendo en cuanto a la definición de mis sitios locales. El artículo parece indicar que el archivo se usa de64-bit
forma nativa y32-bit
por redireccionamiento. ¿Cómo podría afectar esto a mi instalación de Apache y por quélocalhost
se ignora para mis sitios locales?necesitas tener
antes
</VirtualHost>
de permitir.algo como esto
uso 192.168.1.100:80 para iis y 192.168.1.200:8080 para apache en el Protocolo de Internet v4 La configuración de IPv4 (Configuración avanzada de IP) tiene 2 IP de clase C 192.168.1.100 y agrego 192.168.1.200 esto también ayuda en SEO debido a la clase Direcciones IP de C para 2 sitios web diferentes vinculados entre sí.
fuente