Descoberta recente
Com o IIS configurado de volta à porta 80
, quando coloco http://localhost/
o computador WHS, a página de aviso "Há um problema com o certificado de segurança deste site". Se eu "continuar" de qualquer maneira, esse URL será exibido https://localhost/Remote/logon?ReturnUrl=%2fremote
em um Acesso via Web Remoto do Windows Home Server 2011 para username
e password
. Agora, não me lembro com certeza, mas não acredito que originalmente apenas http://localhost/
tenhamos trazido essa questão. No entanto, parece que isso pode afetar qualquer tentativa de acessar o host local (não importa a porta).
Qual pode ser realmente o principal problema
Oh, os meandros da rede! Uma coisa que me incomodava era o motivo pelo qual dois sites "apareciam" parcialmente e os outros não. Em seguida, executar o rastreamento NET do Firebug me revelou que meu principal problema é que meu ISP está atuando como proxy DNS e, é claro, não está encontrando meus sites de teste. Mas ele faz encontrar os dois sites que são ao vivo no www.
(não test.
) endereço, e parece servir-se aqueles, mas as imagens são bloqueados porque (presumo) que criaram blocos para acessar os arquivos de imagem se não da www.
para o site em particular.
Isso explica o mistério das imagens que não são exibidas (espere por localhost:8080
ligação direta ) e o comportamento estranho de encontrar "parcialmente" esses dois locais específicos dos cinco sites.
Agora preciso descobrir como configurar corretamente meu roteador ou um arquivo proxy para redirecionar para o meu computador WHS. Estou no serviço de internet via satélite Wildblue, pois estou fora da área de qualquer conexão de serviço mais rápida. Eles têm um arquivo "otimizador" (não sei se é visível para todos ou não; se não, é basicamente o mesmo que esta versão ), que posso modificar e colocar no meu sistema local para obter o que eu preciso, mas não sei exatamente o que preciso fazer lá.
Se alguém tiver alguma sugestão sobre a modificação desse arquivo ou sobre como configurar meu roteador Linksys E1200 para evitar o envio ao proxy se for um site local, esse pode ser o primeiro (e possivelmente o último) passo para resolver meus problemas.
Código representativo com base nas recomendações da harrymc ... ainda não está funcionando
Porta do IIS definida como :90
.
httdp
Arquivo:
Listen *:80
ServerName localhost:80
vhosts
Arquivo:
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>
Atualização anterior: O que eu acreditava ser o problema principal (pode ser um problema secundário)
Como faço para o Windows Home Server (executando o IIS) encaminhar URLs de host local específicos para a porta, 8080
para que o Apache (não o IIS) em execução na mesma máquina atenda à solicitação para servir a página?
O c:\Windows\System32\drivers\etc\hosts
arquivo foi alterado (veja abaixo), mas presumo que isso não tenha nada a ver com o redirecionamento para uma nova porta. O IIS, também presumo, está captando a test.whatever
solicitação de URL específica na porta 80
e roteando para seu próprio host local na mesma porta.
Eu baixei o Application Request Routing de uma dica em um site que encontrei na pesquisa, mas, ao analisá-lo, não tenho certeza se isso ajudará ou não (minha esperança era configurar algum encaminhamento baseado em URL para a porta 8080
por ele). Eu sou um web designer, não um assistente de rede. Então, como tudo isso funciona é algo ilusório para mim.
Uma possível direção a seguir
Com base neste link (encontrado depois de pesquisar mais com base no primeiro comentário do erikxiv abaixo), tentei o seguinte no IIS como uma reescrita de URL:
Regra de saída:
Correspondência: .*
(parecia testar bem)
Condições:
Corresponder a qualquer um ... (estes pareciam testar a correspondência de padrões)
{HTTP_HOST} Matches the Pattern test\.site1\.net
{HTTP_HOST} Matches the Pattern test\.site2\.net
{HTTP_HOST} Matches the Pattern test\.site3\.com
Ação de reescrita:
http://localhost:8080/{R:0} (it would not let me put R:1 like the example)
Mas parece que ainda não há encaminhamento!
As informações abaixo estão agora em segundo plano, por trás da nova solicitação acima.
Informações de fundo
Recentemente, mudei uma área de trabalho antiga que estava executando o Windows XP para ser um Windows Home Server (2011). O computador antigo também era o host dos sites de teste locais em execução na instalação do Apache. Fazendo uma pesquisa, revelou que executar o Apache em uma máquina WHS não seria tão difícil quanto eu pensava (muitos sites dizem que o IIS do WHS e Apache causaria problemas, mas alguns que eu encontrei não mencionaram problemas se configurados corretamente - (basicamente, verifique se não há conflito de portas).
Então, instalei um WAMP (versão de 64 bits) no computador WHS e alterei as configurações no httpd
arquivo de configuração do Apache para escutar na porta, 8080
para que não houvesse conflito com o IIS. Eu configurei meu arquivo de host virtual como no computador XP, apenas com a mudança de porta também.
Basicamente, tudo parecia estar funcionando bem (no entanto, consulte a atualização), exceto ...
A edição (original)
Enquanto as páginas dos sites locais ficam bem, e todos os css e javascript estão funcionando, todos os arquivos de imagem não são exibidos . As informações do caminho estão corretas, como evidenciado ao clicar com o botão direito e selecionar View Image Info
(no Firefox ... a propósito, as imagens não são exibidas em nenhum navegador, portanto, não é um bug do navegador).
O que eu notei, no entanto, é que a Type
caixa de informações da imagem está sendo exibida text/html
, em vez de PNG Image
ou JPEG Image
etc. Esta é a informação abaixo onde mostra as informações do caminho (endereço) - nessa seção, ele reconhece que o próprio arquivo é de Type
um Image
ou de Background
.
Mas, apesar desse fato, parece que, em vez de reconhecer o tipo mime correto (presumo) da imagem no html (na verdade, o hpml gerado pelo php), ele está tentando processar a imagem (seja um img
elemento ou um css background-image
) como texto e, portanto, não me dá nada! Mas não consigo descobrir o porquê. O mime
arquivo que controla os tipos MIME do Apache está correto. As páginas têm os seguintes cabeçalhos ...
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
... mas eles não devem estar causando o problema (eles não estavam sendo executados no XP nem no site ativo).
Então, estou buscando pensamentos sobre:
- Minha análise do tipo mime está sendo o problema correto (com base na atualização, provavelmente não)?
- Onde mais posso procurar que possa estar causando o problema e como corrigi-lo? Ainda poderia haver um conflito com o IIS no WHS e, em caso afirmativo, o que? Poderia ser algo no php (isso parece improvável), e se sim, o que? O que mais posso verificar no Apache?
Informações atualizadas (com mais problemas [relacionados?])
Fazendo um pouco mais de confusão, cheguei à conclusão de que pelo menos parte do problema parece ser a mudança de porta :8080
. Primeiro, percebi que nem tudo estava bem como pensei em acessar todos os meus sites. Eu tenho essa representação no meu c:\Windows\System32\drivers\etc\hosts
arquivo:
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
E esta representação no meu vhosts
arquivo 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>
Aqui está o comportamento : site1
e site4
estão aparecendo, mas sem imagens. Os outros três não aparecem, mas cedem Network Error (dns_unresolved_hostname)
.
No entanto, se eu acessar o primeiro site nos vhosts na máquina WHS usando localhost:8080
na url, em seguida, as imagens não aparecem , e qualquer que seja o local é o primeiro no meu arquivo vhosts também aparece (que se espera); no entanto, faz isso mesmo que não fosse anteriormente (por isso, se eu passar site2
para a primeira posição, ele começará a "trabalhar" por localhost:8080
chamada).
Sei que meus arquivos de imagem estão retornando um erro 403
( corrigido, originalmente eu disse 404 ) quando acessado via test.site4.com
sintaxe no URL, e suspeito que minhas imagens estejam aparecendo como text/html
porque os arquivos estão retornando esse erro (por isso não acho que é um problema do tipo mime agora, tanto por não encontrar as imagens). Mas o mais estranho é que os caminhos estão corretos e os arquivos sem imagem (javascript e css) estão surgindo bem.
Então, na minha opinião, talvez pareça algo com o switch de porta 8080
. Meus problemas agora são:
- Por que meus arquivos hosts e vhosts não estão encontrando corretamente todos os sites (há algum outro arquivo que preciso modificar em um Windows Home Server)?
- Nesses sites, por que as imagens não são encontradas especificamente (com o erro 403, isso é "proibido", acredito, o que não faz sentido se os outros arquivos nas pastas do site estão sendo autorizados a acessar)?
- Por que o
localhost:8080
acesso funciona, não importa em relação às duas primeiras questões?
Algumas informações adicionais
Foi feita uma solicitação para eu publicar arquivos de log. No entanto, descobri que não havia logs ocorrendo, exceto (parece) naqueles casos em que eu havia acessado via localhost:8080
chamada direta para o site "padrão".
Então, eu desliguei os serviços WAMP, fui para os URLs e descobri o mesmo comportamento de quando o WAMP estava em execução. Isso parece indicar que o IIS ainda está controlando os nomes de domínio, em vez de o Apache buscá-los ( alguém pode confirmar minha suposição lá? ) , E, portanto, o problema pode ser algo ainda em obter o controle próprio para o servidor WAMP.